Невозможно получить доступ к netconf, используя paramiko
Я новичок в Python и изучаю модуль Paramiko. Я хочу получить доступ (используя NETCONF) к моему маршрутизатору с помощью модуля paramiko.
Ниже приведен код, который я пытаюсь:
import paramiko
import socket
ROUTER_IP='192.168.2.101'
USERNAME='test'
PASSWORD='test'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
CLOSE = """
<rpc>
<close-session/>
</rpc>"""
SOFT_ADD = "***RPC Operations***"
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.connect((ROUTER_IP, 830))
trans = paramiko.Transport(socket)
trans.connect(username=USERNAME, password=PASSWORD)
#CREATE CHANNEL FOR DATA COMM
ch = trans.open_session()
name = ch.set_name('netconf')
#Invoke NETCONF
ch.invoke_subsystem('netconf')
#SEND COMMAND
ch.send(SOFT_ADD)
#Recieve data returned
data = ch.recv(2048)
while data:
data = ch.recv(1024)
print data,
if data.find('</rpc-reply>') == 0:
#We have reached the end of reply
ch.send(CLOSE)
ch.close()
trans.close()
socket.close()
Но я получаю следующую ошибку каждый раз, когда пытаюсь.
Traceback (most recent call last):
File "ssh_netconf_temp.py", line 34, in <module>
socket.connect((ROUTER_IP, 830))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused
Маршрутизатор имеет простую конфигурацию ssh, ACL или порт не заблокированы. Я могу установить сессию netconf без Python.