首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NETCONF命名空间

NETCONF命名空间
EN

Network Engineering用户
提问于 2022-12-16 10:52:44
回答 2查看 128关注 0票数 3

我试图通过NETCONF从一个IOS-XE设备中提取信息。

我使用两种不同的方法来实现这一点,并且不能在使用另一种方法的同时复制一种方法的成功:

成功的NETCONF通信

使用Cisco的YANG Suite,我可以制作NETCONF RPC调用,将它们发送到IOS-XE设备,并得到适当的回复。例如,我希望获得GigabitEthernet1接口的操作状态GigabitEthernet1。YANG Suite说,它向设备发送了以下RPC:

代码语言:javascript
复制
Sending:

#360

  
    
      
        
          GigabitEthernet1
          
        
      
    
  


##

杨套房从这个装置中接收到:

代码语言:javascript
复制
        GigabitEthernet1
        up

正如我们所看到的,该设备支持urn:ietf:params:xml:ns:yang:ietf-interfaces命名空间,并支持从/rpc/getfilter/interfaces-state/interface/oper-status/获得一个问题。

当请求设备的接口列表时,YANG Suite发送以下RPC:

代码语言:javascript
复制

到目前一切尚好。

在IOS-XE CLI上做一些奇怪的事情

然而,在CLI上,IOS表示它既不支持urn:ietf:params:xml:ns:yang:ietf-interfaces名称空间,也不支持/rpc/getfilter/interfaces-state/interface/oper-status/

代码语言:javascript
复制
R1#show netconf schema
New Name Space 'urn:ietf:params:xml:ns:netconf:base:1.0'
 [0, 1] required
   [0, 1] required
...

上面的输出显示,IOS设备支持的唯一模式是'urn:ietf:params:xml:ns:netconf:base:1.0'命名空间。

或者:

代码语言:javascript
复制
R1#show netconf schema | include ||interface
   [0, 1] required
       [0, 1] required
       [0, 1] required
R1#

NETCONF在SSHv2上不工作

当我试图在XML树之外发送任何RPC时(如show netconf schema over SSHv2中所见),它会失败。下面,我尝试通过本机NETCONF将YANG套件发送到设备上的RPC发送给设备,结果完全不同:

代码语言:javascript
复制
]]>]]>

对IOS-XE的答复:

代码语言:javascript
复制
    rpc
    
    unknown-element
    
    error
    
    
      interfaces-state
      
    
  
]]>]]>

我们可以看到,IOS说:“听着,我不知道你在谈论/rpc/get/filter/interfaces-state/时在说什么,interfaces-state不在我的XML树中。”

我认为IOS不知道(或支持) urn:ietf:params:xml:ns:yang:ietf-interfaces名称空间,这也是它不知道树的interfaces-state部分的原因。是的,在SSHv2上的NETCONF的初次问候语中,IOS-XE公然告诉我:看,我只知道很少的名称空间:

代码语言:javascript
复制
    urn:ietf:params:netconf:base:1.0
    
    urn:ietf:params:netconf:capability:writeable-running:1.0
    
    urn:ietf:params:netconf:capability:startup:1.0
    
    urn:ietf:params:netconf:capability:url:1.0
    
    urn:cisco:params:netconf:capability:pi-data-model:1.0
    
    urn:cisco:params:netconf:capability:notification:1.0
    
  
  3375721824
  
]]>]]>

上面列出的功能与杨套房提供的功能相去甚远。

注意:我在与SSH和YANG Suite连接时使用相同的用户名/密码,因此我认为这与权限无关:

代码语言:javascript
复制
R1#show runn | include netconf
username netconf privilege 15 password 0 netconf
netconf ssh
netconf-yang
netconf-yang feature candidate-datastore

问题

  1. 我做错了什么?为什么我不能让IOS-XE给我一个基于SSHv2的NETCONF接口列表,就像它应该能够做到的那样(当YANG Suite对本地NETCONF提出同样的问题时)?
  2. 在IOS中,NETCONF之上的SSHv2实现是否有可能支持本地NETCONF实现所支持的更少的命名空间?
EN

回答 2

Network Engineering用户

发布于 2022-12-26 21:07:24

所以,我似乎遇到了一个关于IOS-XE的众所周知的问题。我在网上找到的最好的文档是IPspace:https://blog.ipspace.net/2017/04/netconf-agents-on-cisco-ios-xe-16x.html

IOS(至少16.3版)在其代码中有两个独立的NETCONF实现和子系统。我不知道他们的名字是什么,但为了我的目的,我会把他们称为遗产和正确的。除了我在这里的使用之外,这些标签没有任何意义,我在其他地方也没有看到它们。下面我列出了每个版本的主要特点:

传统NETCONF实现

  • 使用netconf ssh命令启用
  • 监听TCP端口22 (在netconf子系统)
  • 可以使用debug netconf all命令进行调试。
  • 支持非常有限数量的NETCONF名称空间(~6)
  • 一旦在IOS-XE上启用了遗留的NETCONF实现,您就可以使用ssh username@10.0.0.1 -s netconf连接到它。
  • 将响应RPC调用,即使客户端不使用hello消息发送其功能。
  • 可以使用show netconf命令查看有关状态和状态的信息。
  • 记录在SSHv2 2上的NETCONF

适当的NETCONF实现

  • 使用netconf-yang命令启用
  • 监听TCP端口830 (在netconf子系统)
  • 不能调试
  • 支持大量的NETCONF名称空间(在100年代)
  • 一旦在IOS-XE上启用了适当的NETCONF实现,就可以使用ssh username@10.0.0.1 -p 830 -s netconf连接到它。
  • 除非客户端发送带有hello消息的功能,否则将不响应RPC调用。实际上,如果来自客户端的第一条消息不是hello,则实现将重置会话。
  • 可以使用show netconf-yang命令查看有关状态和状态的信息。
  • 记录在为思科IOS XE 16.X平台配置NETCONF/YANG

最后,我犯了三个错误,造成了我的问题:

  1. 我在IOS设备上使用netconf ssh命令启用了遗留的NETCONF实现。
  2. 我使用错误的SSH命令连接到IOS XE设备上的NETCONF。我忘记了-p 830选项,因此SSH客户端连接到默认的SSH端口(TCP端口22)。
  3. 我期望遗留的NETCONF实现与正确的NETCONF实现相同。

从思科的文档来看,似乎思科将这两种实现称为“基于SSHv2的NETCONF”和"NETCONF/YANG“。请注意,这两个实现都运行在SSHv2上,而且都是基于YANG模型的。

票数 2
EN

Network Engineering用户

发布于 2022-12-17 01:02:55

Cisco NETCONF使用SSH在端口830上传输。当使用netconf-yang命令启用NETCONF时,将启用SSH。我不相信您可以首先运行SSH,然后跨此连接使用NETCONF。与NETCONF连接使用SSH。

思科有几个关于这方面的文档,例如有一个数据检索示例的为Cisco IOS XE 16.X平台配置NETCONF/YANG

票数 1
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/80891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档