千家信息网

NETCONF配置CISCO XE(csr1000v)初体验

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1、有用的链接Model Driven Network Automation with IOS-XEhttps://www.ciscolive.com/c/dam/r/ciscolive/emea/d
千家信息网最后更新 2026年10月31日NETCONF配置CISCO XE(csr1000v)初体验

1、有用的链接

Model Driven Network Automation with IOS-XE

https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2018/pdf/LTRCRT-2700.pdf

Configure NETCONF/YANG and Validate Example for Cisco IOS XE 16.x Platforms

https://www.cisco.com/c/en/us/support/docs/storage-networking/management/200933-YANG-NETCONF-Configuration-Validation.html

Programmability Configuration Guide, Cisco IOS XE Everest 16.6.x

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/166/b_166_programmability_cg/configuring_yang_datamodel.html

yang-explorer

https://github.com/CiscoDevNet/yang-explorer

YangModels

https://github.com/YangModels

2、安装yang-explorer

准备:

MAC、Linux(不支持windows)

python 2.7

pip软件管理器

浏览器带flash plugin(推荐chrome)

//pip install --upgrade pip

//yum install python-virtualenv

//yum install graphviz

a、更改pip源

mkdir ~/.pip

vi ~/.pip/pip.conf

[global]

index-url = https://pypi.tuna.tsinghua.edu.cn/simple

[install]

trusted-host = mirrors.aliyun.com

yum install python2-pip python-virtualenv graphviz -y

依赖组件:

yum install libxml2-devel libxslt-devel python-devel zlib-devel gcc git -y

git clone https://github.com/CiscoDevNet/yang-explorer.git

b、安装

cd yang-explorer/

bash setup.sh

省略。。。。。。。

Successfully built ydk-models-cisco-ios-xr

Installing collected packages: ydk-models-cisco-ios-xr

Successfully installed ydk-models-cisco-ios-xr-6.2.1

Installing dependencies .. done

Setting up initial database ..

Warning: Setting up database as root, this is not recommended.

Alternatively you can re-run this script as non-root

to setup database without root privilege.

Do you want to continue as root ? (n/N) y //初始化数据库

Creating data directories ..

Creating database ..

Operations to perform:

Synchronize unmigrated apps: staticfiles, messages, explorer

Apply all migrations: admin, contenttypes, auth, sessions

Synchronizing apps without migrations:

Creating tables...

Creating table explorer_collection

Creating table explorer_userprofile

Creating table explorer_deviceprofile

Running deferred SQL...

Installing custom SQL...

Running migrations:

Rendering model states... DONE

Applying contenttypes.0001_initial... OK

Applying auth.0001_initial... OK

Applying admin.0001_initial... OK

Applying contenttypes.0002_remove_content_type_name... OK

Applying auth.0002_alter_permission_name_max_length... OK

Applying auth.0003_alter_user_email_max_length... OK

Applying auth.0004_alter_user_username_opts... OK

Applying auth.0005_alter_user_last_login_null... OK

Applying auth.0006_require_contenttypes_0002... OK

Applying sessions.0001_initial... OK

Creating default users ..

Copying default models ..

Setup completed..

Use start.sh to start yang-explorer server

安装完成。

c、修改配置文件并运行yang-exporer

[root@desk yang-explorer]# cd server/static/

[root@desk static]# vi YangExplorer.html

var swfVersionStr = "16.0.0";

// To use express install, set to playerProductInstall.swf, otherwise the empty string.

var xiSwfUrlStr = "expressInstall.swf";

var flashvars = {};

flashvars.host = '192.168.0.87'; //修改监听地址和端口

flashvars.port = '8088';

[root@desk static]# cd ..

[root@desk server]# cd ..

[root@desk yang-explorer]# vi start.sh

#!/usr/bin/env bash

HOST='192.168.0.87'

PORT='8088'

# set timeout value for ncclient

export NCCLIENT_TIMEOUT=90

[root@desk yang-explorer]# ls

default-models docs env.sh LICENSE README.md requirements.txt server setup.sh start.sh v YangExplorer

[root@desk yang-explorer]# ./start.sh

Activating virtualenv ..

Starting YangExplorer server ..

Use http://192.168.0.87:8088/static/YangExplorer.html

Performing system checks...

System check identified no issues (0 silenced).

July 17, 2019 - 15:22:46

Django version 1.8.3, using settings 'server.settings'

Starting development server at http://192.168.0.87:8088/

Quit the server with CONTROL-C.

打开浏览器:

http://192.168.0.87:8088/static/YangExplorer.html

3、导入YangModels

点击Login

username:guest

password:guess

Subscript

4、配置XE路由器

XE3(config)#netconf-yang //主要配置

Cisco-IOS-XE-native----->native --->interface --->GigabitEthernet name

ip---->address-choice

检查

XE3#sh ip inter b

Interface IP-Address OK? Method Status Protocol

GigabitEthernet1 192.168.0.29 YES DHCP up up

GigabitEthernet2 10.1.1.1 YES other administratively down down

GigabitEthernet3 unassigned YES unset administratively down down

XE3#sh ip inter b

Interface IP-Address OK? Method Status Protocol

GigabitEthernet1 192.168.0.29 YES DHCP up up

GigabitEthernet2 10.1.1.1 YES other up up

GigabitEthernet3 unassigned YES unset administratively down down

产生python文件:

"""

Netconf python example by yang-explorer (https://github.com/CiscoDevNet/yang-explorer)

Installing python dependencies:

> pip install lxml ncclient

Running script: (save as example.py)

> python example.py -a 192.168.0.29 -u yoyoo -p yoyoo123 --port 830 //执行python的方法

"""

import lxml.etree as ET

from argparse import ArgumentParser

from ncclient import manager

from ncclient.operations import RPCError

payload = """

2

10.1.1.1

255.255.255.0

"""

if __name__ == '__main__':

parser = ArgumentParser(description='Usage:')

# script arguments

parser.add_argument('-a', '--host', type=str, required=True,

help="Device IP address or Hostname")

parser.add_argument('-u', '--username', type=str, required=True,

help="Device Username (netconf agent username)")

parser.add_argument('-p', '--password', type=str, required=True,

help="Device Password (netconf agent password)")

parser.add_argument('--port', type=int, default=830,

help="Netconf agent port")

args = parser.parse_args()

# connect to netconf agent

with manager.connect(host=args.host,

port=args.port,

username=args.username,

password=args.password,

timeout=90,

hostkey_verify=False,

device_params={'name': 'csr'}) as m:

# execute netconf operation

try:

response = m.edit_config(target='running', config=payload).xml

data = ET.fromstring(response)

except RPCError as e:

data = e._raw

# beautify output

print(ET.tostring(data, pretty_print=True))

配置 文件 浏览器 浏览 地址 数据 数据库 方法 有用 端口 组件 路由 路由器 软件 链接 准备 推荐 支持 检查 监听 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 科技平台互联网 河南真二互联网科技有限公司 上海挚品互联网科技 互联网科技大会 济南和联互联网科技有限公司 互联网科技公司的市场部门 新华互联网科技2019 互联网教育科技公司vipkid 成都铂石互联网科技做什么的 搜狐科技互联网 恒生互联网科技指数跳水 燊美集互联网科技有限公司 企晟互联网信息科技有限公司 用友工业互联网科技发展 科技赋能视角下互联网保险发展 互联网科技新闻 互联网科技职业技能培训学校 互联网科技创新方面的资料 广州全民伙伴互联网科技有限公司 互联网科技公司怎么样 互联网科技媒体 鑫亿盛互联网科技 互联网科技缩写 互联网科技公司做什么 科技赋能互联网健康 萌小萌互联网科技河南有限公司 唯美互联网科技 银川新华互联网科技学校原画 广东猫王互联网科技有限公司电话
0