Невозможно получить доступ к 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.

0 ответов

Другие вопросы по тегам