千家信息网

NETCONF配置CISCO XE(csr1000v)初体验

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,1、有用的链接Model Driven Network Automation with IOS-XEhttps://www.ciscolive.com/c/dam/r/ciscolive/emea/d
千家信息网最后更新 2025年02月23日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安全错误 数据库的锁怎样保障安全 秦皇岛软件开发工程师 广东软件开发待遇怎么样 武汉众乐商通网络技术公司 海康cvr存储服务器系统安装 中国海关进出口企业数据库 广州百悦互联网科技有限公司 学校网络安全字 越秀区质量网络技术开发价格多少 北京文岩远航网络技术有限公司 戴尔服务器预测海啸 数据库的外键使用 幻塔应该玩哪个服务器 数据库改表名卡住了 监控网络技术员是做什么的 网络安全模式不显示桌面 崇明区通用软件开发服务厂家直销 街机捕鱼游戏软件开发 5g手机网络安全形势 江北直销软件开发公司电话 全国网络安全周宣传活动 汽车数据达式数据库 简述关于网络安全的要求 日本网络安全人才战略 网络安全道德品德 数据库检查约束的关键词 怎么看网域服务器是假的 西湖论剑第三届网络安全大赛 orecal数据库导出数据 关于网络安全在我身边的绘画 阳泉展厅触控拍照软件开发公司
0