什么是Yang ?

Yang是一种基于标准的数据建模语言,它是定义数据模型的语言,而不是数据语言;通俗点可以理解为SNMP中的MIB文件,主要用于创建设备配置请求或操作的数据请求

什么是Netconf ?

Netconf可以理解为当下的网络工程师,你让他干啥,他就给你干啥,你让他配置或者查看某些信息都可以;
Netconf使用XML数据格式,使用SSH通信,默认端口830

环境准备

本文以Cisco设备CSR1000v为例,服务器使用Ubuntu18.04.1;关于在服务器上YangExplorer怎么搭建,这里不再赘述,那玩意挺难搭建的,按官方的操作步骤,70%的成功几率

1、Cisco CSR设备上的操作

  1. 配置用户名和密码
CSR_1(config)#username admin privilege 15 password 0 admin
  1. 开启SSH登陆
CSR_1(config)#ip domain name alex.com
CSR_1(config)#crypto key generate rsa modulus 1024
CSR_1(config)#line vty 0 4
CSR_1(config-line)#login local
CSR_1(config-line)#transport input all
  1. 开启Netconf
CSR_1(config)#netconf ssh
CSR_1(config)#netconf-yang CSR_1(config)#ip http server
CSR_1(config)#ip http authentication local
CSR_1(config)#ip http secure-server
  1. 查看Netconf配置
CSR_1#show netconf-yang statistics CSR_1#show platform software yang-management process
confd            : Running
nesd             : Running
syncfd           : Running
ncsshd           : Running
dmiauthd         : Running
nginx            : Running
ndbmand          : Running
pubd             : Running
  1. 在服务器上测试Netconf服务是否ok
alex@Strive:~$ ssh -s admin@10.32.133.138 -p 830 netconf

2、服务器上的操作

  1. 开启YangExplorer并通过浏览器登陆

  2. 创建设备模板

  3. 测试连通性

    连接OK

  4. 将下载好的Yang文件上传至服务器,通过本地方式导入yang模型

root@Strive:/home/alex# cd yang-explorer/
root@Strive:/home/alex/yang-explorer# source v/bin/activate
(v) root@Strive:/home/alex/yang-explorer# cd server/
(v) root@Strive:/home/alex/yang-explorer/server# python2 manage.py bulkupload --user guest --dir /home/alex/yang-master/yang-1/
依次将本次使用到的yang文件进行编译上传

根据使用的设备以及版本导入对应的设备和版本yang文件
注意一定要按以下顺序加载编译yang文件,因为这其中牵扯到了依赖模块

  1. 登陆YangExplorer进行订阅

OK,以上,是我们的前戏

通过Netconf获取设备配置信息

  1. 在设备上创建一个环回口的IP地址
CSR_1(config)#interface loopback 0
CSR_1(config-if)#ip address 1.1.1.1 255.255.255.255
CSR_1(config-if)#description alex-test
  1. 在YangExplorer上Get设备接口信息
<rpc-reply message-id="urn:uuid:c6bdde36-56e0-4e46-af6a-23baca53db19" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><data><interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"><interface><name>GigabitEthernet1</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><enabled>true</enabled><ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/><ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/></interface><interface><name>GigabitEthernet2</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><enabled>false</enabled><ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/><ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/></interface><interface><name>GigabitEthernet3</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><enabled>false</enabled><ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/><ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/></interface><interface><name>Loopback0</name><description>alex-test</description><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:softwareLoopback</type><enabled>true</enabled><ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"><address><ip>1.1.1.1</ip><netmask>255.255.255.255</netmask></address></ipv4><ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/></interface></interfaces></data>
</rpc-reply>
  1. Get接口的State信息
<rpc-reply message-id="urn:uuid:43347368-9233-4d1d-bfdc-ced014ec5b85" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><data><interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"><interface><name>Control Plane</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:other</type><admin-status>up</admin-status><oper-status>up</oper-status><last-change>2021-01-20T06:04:45.000057+00:00</last-change><if-index>0</if-index><phys-address>00:00:00:00:00:00</phys-address><speed>10240000000</speed><statistics><discontinuity-time>2021-01-20T06:03:09.000089+00:00</discontinuity-time><in-octets>0</in-octets><in-unicast-pkts>0</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>0</out-octets><out-unicast-pkts>0</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>GigabitEthernet1</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><admin-status>up</admin-status><oper-status>up</oper-status><last-change>2021-01-20T06:05:09.000677+00:00</last-change><if-index>1</if-index><phys-address>00:0c:29:68:20:ea</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2021-01-20T06:03:09.000089+00:00</discontinuity-time><in-octets>8890262</in-octets><in-unicast-pkts>76656</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>2194041</out-octets><out-unicast-pkts>4909</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>GigabitEthernet2</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><admin-status>down</admin-status><oper-status>down</oper-status><last-change>2021-01-20T06:05:06.000394+00:00</last-change><if-index>2</if-index><phys-address>00:0c:29:68:20:f4</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2021-01-20T06:03:09.000088+00:00</discontinuity-time><in-octets>4242</in-octets><in-unicast-pkts>44</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>770</out-octets><out-unicast-pkts>7</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>GigabitEthernet3</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type><admin-status>down</admin-status><oper-status>down</oper-status><last-change>2021-01-20T06:05:06.000399+00:00</last-change><if-index>3</if-index><phys-address>00:0c:29:68:20:fe</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2021-01-20T06:03:09.000088+00:00</discontinuity-time><in-octets>3882</in-octets><in-unicast-pkts>38</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>770</out-octets><out-unicast-pkts>7</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>Loopback0</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:softwareLoopback</type><admin-status>up</admin-status><oper-status>up</oper-status><last-change>2021-01-20T09:34:09.000082+00:00</last-change><if-index>6</if-index><phys-address>00:1e:e6:ea:05:00</phys-address><speed>8192000000</speed><statistics><discontinuity-time>2021-01-20T06:03:09.000088+00:00</discontinuity-time><in-octets>0</in-octets><in-unicast-pkts>0</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>0</out-octets><out-unicast-pkts>0</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface></interfaces-state></data>
</rpc-reply>
  1. 获取设备Hostname
<rpc-reply message-id="urn:uuid:be566484-7cdf-4e63-929a-da7ca3d100be" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><data><native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native"><hostname>CSR_1</hostname></native></data>
</rpc-reply>
  1. 获取用户配置信息
<rpc-reply message-id="urn:uuid:e59b6312-06db-463e-bb72-31c9b5f25cf9" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><data><native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native"><username><name>admin</name><privilege>15</privilege><password><encryption>0</encryption><password>admin</password></password></username></native></data>
</rpc-reply>

通过Netconf下发设备配置信息

  1. 通过Netconf在交换机上创建用户名alex 等级10 密码alex666

  2. 在交换机上查看配置

  3. 通过Netconf在交换机上创建Loopback 1 IP地址为6.6.6.6/32
    Cisco-IOS-XE-native/interface目录
    Cisco-IOS-XE-native/interface/Loopback/ip目录

  4. 在交换机上查看IP地址

通过Netconf配置OSPF

拓扑环境
通过Netconf,下发配置使得两台设备之间建立OSPF

  1. 两台设备配置IP地址以及Netconf
CSR_1(config)#username admin privilege 15 password 0 adminCSR_1(config)#ip domain name alex.com
CSR_1(config)#crypto key generate rsa modulus 1024
CSR_1(config)#line vty 0 4
CSR_1(config-line)#login local
CSR_1(config-line)#transport input allCSR_1(config)#netconf ssh
CSR_1(config)#netconf-yang CSR_1(config)#ip http server
CSR_1(config)#ip http authentication local
CSR_1(config)#ip http secure-server
CSR_2(config)#username admin privilege 15 password 0 adminCSR_2(config)#ip domain name alex.com
CSR_2(config)#crypto key generate rsa modulus 1024
CSR_2(config)#line vty 0 4
CSR_2(config-line)#login local
CSR_2(config-line)#transport input allCSR_2(config)#netconf ssh
CSR_2(config)#netconf-yang CSR_2(config)#ip http server
CSR_2(config)#ip http authentication local
CSR_2(config)#ip http secure-server
  1. 查看设备配置

  2. 在YangExplorer上测试连通性

  3. 通过YangExplorer配置Loopback接口IP地址(以CSR_1为例)

  4. 通过YangExplorer配置G2接口IP地址(以CSR_1为例)

  5. 此时IP地址已经配置上去了,但是端口还没有开启。开启端口(以CSR_1为例)

  6. 以同样的方法配置CSR_2,这里不再赘述

  7. 通过Netconf下发OSPF配置(以CSR_1为例)
    Cisco-IOS-XE-native/interface/目录

    Cisco-IOS-XE-native/router/目录

  8. 在设备上查看配置

  9. 在设备上查看OSPF邻居信息

  10. 通过Netconf查看你路由表

<rpc-reply message-id="urn:uuid:e8e6754d-1505-468f-9c8d-83513e36e097" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><data><routing-state xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"><routing-instance><ribs><rib><routes><route><destination-prefix>0.0.0.0/0</destination-prefix><route-preference>254</route-preference><metric>254</metric><next-hop><outgoing-interface/><next-hop-address>10.32.133.254</next-hop-address></next-hop><source-protocol>static</source-protocol><active/></route><route><destination-prefix>1.1.1.1/32</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>Loopback0</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route><route><destination-prefix>10.32.132.0/23</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>GigabitEthernet1</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route><route><destination-prefix>10.32.133.138/32</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>GigabitEthernet1</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route><route><destination-prefix>12.1.1.0/24</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>GigabitEthernet2</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route><route><destination-prefix>12.1.1.1/32</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>GigabitEthernet2</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route></routes></rib></ribs></routing-instance><routing-instance><ribs><rib><routes><route><destination-prefix>192.168.1.4/30</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>LIIN0</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route><route><destination-prefix>192.168.1.6/32</destination-prefix><route-preference>0</route-preference><metric>0</metric><next-hop><outgoing-interface>LIIN0</outgoing-interface><next-hop-address>0.0.0.0</next-hop-address></next-hop><source-protocol>direct</source-protocol><active/></route></routes></rib></ribs></routing-instance></routing-state></data>
</rpc-reply>
  1. 保存配置

Cisco YangExplorer 与 Netconf相关推荐

  1. NETCONF配置CISCO XE(csr1000v)初体验

    1.有用的链接 Model Driven Network Automation with IOS-XE https://www.ciscolive.com/c/dam/r/ciscolive/emea ...

  2. Json格式的netconf转成NormalizedNode

    背景: 之前发过一篇文章 将NetConf转成NormalizedNode对象及NormalizedNode对象转回NetConf(序列化与反序列化) 请参考该文章的背景 该文章的不足之处在于 无论j ...

  3. 将NetConf转成NormalizedNode对象及NormalizedNode对象转回NetConf(序列化与反序列化)

    背景 我们可以在管理设备的时候可以通过netconf来管理,yangtools给我们提供了一个很好地工具.可以将netconf加载到NormalizedNode对象当中.这样我们就能够通过操控Norm ...

  4. 通过思科构造局域网_从Cisco DNA中心的管理的和设置的非结构Catalyst 9800无线局域网控制器...

    Introduction 此条款提供一个配置示例示例关于怎样通过Cisco DNA中心添加,管理和设置非结构Catalyst 9800无线局域网控制器. Prerequisites Catalyst ...

  5. 面向园区网的全数字化网络架构 - Cisco DNA介绍

    面向园区网的全数字化网络架构 - DNA:DigitalNetwork Architecture 是一种由软件驱动.可扩展的开放式架构,可加速并简化企业网络的运营. 特性: ● 虚拟化 - 网络虚拟化 ...

  6. Cisco VPP(1) 简介

    一.简介 VPP全称Vector Packet Processing,是Cisco2002年开发的商用代码. 2016年2月11号,Linux基金会创建FD.io项目.Cisco将VPP代码的开源版本 ...

  7. Netconf资料收集

    Netconf和Yang的资料已经工具下载 http://netconfcentral.org/ Yuma netconfd Manual https://yuma123.org/wiki/index ...

  8. 转 从SNMP到NETCONF

    转https://www.jianshu.com/p/ef527ae15c40 通信协议变迁 SNMP最早由IETF在20世纪80年代晚期(1980s)开发,一直被用来做为网络设备的监控(如告警.性能 ...

  9. 《跟菜鸟学Cisco UC部署实战》-第 1 章 规划-课件(一共12章,免费)

    链接:https://pan.baidu.com/s/1RiIphSUG5dsbPPqWaynHjQ 提取码:xjp9 复制这段内容后打开百度网盘手机App,操作更方便哦 <跟菜鸟学Cisco ...

最新文章

  1. linux error log 换行,日志提示
  2. 我所理解的MVCMVPMVVM
  3. mysql数据库同步 debug
  4. reactjs通过lazy函数配合import函数动态加载路由组件
  5. ndows live id怎么登陆,手机如何注册和使用Windows Live ID帐号
  6. 建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)
  7. python 物联网开发板_物联网学什么开发板好?
  8. leetcode1276. 不浪费原料的汉堡制作方案(贪心)
  9. 第九节:基于MVC5+AutoFac+EF+Log4Net的基础结构搭建
  10. 03_Influxdb数据库的简单操作
  11. Benefits of SIMD Programming | SIMD的优势
  12. 90%做tiktok运营都存在的误区?
  13. html语言format,HTML 文本格式化
  14. PowerShell: 如何使用powershell处理Excel
  15. java的输入输出流
  16. VB.NET2010 编程实现Word双面打印
  17. 思科交换机配置链路聚合
  18. DirectX游戏开发之3D角色动起来(上)
  19. 文件夹中所有图片合成视频
  20. 【Unity】3D模型或粒子渲染在UI上层

热门文章

  1. 仓山区工业机器人_山西艾默生充电模块HD22005多少钱【电科电气】
  2. 为微信公众平台加入搜索周围地方的功能
  3. 硬盘数据丢失了怎么办
  4. 敏捷其实很简单3---敏捷方法之scrum
  5. 解决谷歌人机验证 (reCAPTCHA) 显示错误或空白的问题 (电脑端+手机端)
  6. 注册kaggle人机验证没有验证码
  7. foreach 共享图书馆共享图书柜,家庭社区图书共享平台,共享图书运行模式
  8. 文献阅读-ICRA2020-自由运动下用于术中组织特征描述的自动组织扫描
  9. anybody 运行出现文档注释错误,寻求大神解答??
  10. 深化服务成工业品电商角逐新焦点