我正在尝试使用Netconf.This在IOS-XR (Cisco)上进行基本操作,包括最初设置一个netconf连接,如下所示: ssh 主机名 -p 830 -s
一旦连接成功,路由器就会返回如下所示的内容(Hello)
<?xml version=”1.0″ encoding=”UTF-8″?><hello><capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
<capability>urn:ietf:params:netconf:capability:writeable-running:1.0</capability>
<capability>urn:ietf:params:netconf:capability:startup:1.0</capability>
<capability>urn:ietf:params:netconf:capability:url:1.0</capability>
<capability>urn:cisco:params:netconf:capability:notification:1.0</capability>
</capabilities><session-id>1731357996</session-id></hello>]]>]]然后,我向路由器发送一个问候,如下所示:
<?xml version=”1.0″ encoding=”UTF-8″?>
<hello>
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
</capabilities>
</hello>]]>]]>但是,在这之后没有响应,如果我尝试执行更多的操作,连接将得到closed.Can,您可以确认我在哪里出错/为什么会发生这种情况?
发布于 2016-09-08 10:05:12
XR可能需要NETCONF 1.1。如果启用调试,您可能会在日志中找到类似的内容:
RP/0/RSP0/CPU0:Sep 8 09:47:27.513 : netconf[1120]: ERR: NC: Error, Capability urn:ietf:params:netconf:base:1.1 not found
RP/0/RSP0/CPU0:Sep 8 09:47:27.513 : netconf[1120]: ERR: NC: Hello message validation failed
RP/0/RSP0/CPU0:Sep 8 09:47:27.514 : netconf[1120]: ERR: NC: Callback handling decoded data returned error: 'Netconf server' detected the 'warning' condition 'NC_ERRCODE_REQ_INVALID'
RP/0/RSP0/CPU0:Sep 8 09:47:27.514 : netconf[1120]: ERR: NC: Decoding of incoming NETCONF data failed: 'Netconf server' detected the 'warning' condition 'NC_ERRCODE_REQ_INVALID'
RP/0/RSP0/CPU0:Sep 8 09:47:27.514 : netconf[1120]: ERR: NC: Failed to handle SSH IPC message: 'Netconf server' detected the 'warning' condition 'NC_ERRCODE_REQ_INVALID', msg:166df16c, session:200fe198因此,在hello中添加1.1支持(我也用名称空间限定hello ):
<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
<capability>urn:ietf:params:netconf:base:1.1</capability>
</capabilities>
</hello>不过,我建议您使用一个库来讨论NETCONF,就像Python的ncclient一样。文中不推荐NETCONF1.0中使用的帧格式(以]]>]]>结束消息),并在1.1中引入了一种新的分组帧机制。您需要知道消息的长度,所以使用lib比手动执行要容易得多。
此外,看看您的XR设备所宣布的功能,您似乎正在运行一个相当旧的版本。6.0是可用的,并提供了一套相当不错的杨模块,请参阅http://plajjan.github.io/Cisco-IOS-XR-6-0-and-YANG/
https://networkengineering.stackexchange.com/questions/34576
复制相似问题