如何利用H3C模拟器进行Netconf基础学习与实操练习?

摘要:Netconf简介 NETCONF(Network Configuration Protocol,网络配置协议)是一种基于 XML 的网络管理协议,它提供了一种可编程的、对网络设备进行配置和管理的方法。用户可以通过该协议设置参数、获取参数值
Netconf简介 NETCONF(Network Configuration Protocol,网络配置协议)是一种基于 XML 的网络管理协议,它提供了一种可编程的、对网络设备进行配置和管理的方法。用户可以通过该协议设置参数、获取参数值、获取统计信息等。 NETCONF 报文使用 XML 格式,具有强大的过滤能力,而且每一个数据项都有一个固定的元素名称和位置,这使得同一厂商的不同设备具有相同的访问方式和结果呈现方式,不同厂商之间的设备也可以经过映射 XML 得到相同的效果,这使得它在第三方软件的开发上非常便利,很容易开发出在混合不同厂商、不同设备的环境下的特殊定制的网管软件。在这样的网管软件的协助下,使用 NETCONF 功能会使网络设备的配置管理工作,变得更简单更高效。 为什么需要Netconf 简单来说就是传统CLI命令行工具是用于人-机交互的,SNMP适合于机-机交互,但功能,安全各方面都难以满足现代网络自动化的需求。 相关介绍可以参考我的博文[AI 时代,传统网络运维人员的转型指南]。 Netconf结构 NETCONF 协议采用了分层结构,分成四层:内容层、操作层、RPC(Remote Procedure Call,远程调用)层和通信协议层。 安全传输层提供了客户端和服务器之间的通信路径。NETCONF 协议可以使用任何符合基本要求的传输层协议承载。 消息层提供一种简易的不依赖于传输层,生成 RPC 和通知消息框架的通信协议。 操作层定义一组基本的操作,作为 RPC 的调用方法,可以使用 XML 编码的参数调用这些方法。 内容层由管理数据内容的数据模型定义。目前主流的数据模型有 Schema 模型、YANG 模型等。 Netconf报文格式 NETCONF 命令必须符合 XML 语言的基本格式,格式遵循 RFC 4741。 NETCONF 报文分为请求和应答报文两种。NETCONF 请求和应答报文的格式有所不同。 执行 NETCONF 请求前,需要先校验 NETCONF 报文的数据合法性。如果校验失败,则会向客户端报错。其中,数据合法性校验通过 XML Schema 的方式完成。 Netconf请求格式 客户端把 RPC 请求封装在一个 rpc元素内,发送给服务器。 ;服务器把请求处理的结果封装在一个 rpc-reply元素内,回应给客户端。 <?xml version="1.0" encoding="utf-8"?> <rpc message-id =”101” xmlns=”urn:ietf:params:xml:ns:netconf:base:1.0”> <operation> </rpc> 其中的operation你可以替换为你想要的操作集。例如查看设备上所有的端口信息 <?xml version="1.0" encoding="utf-8"?> <rpc message-id ="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get-bulk> <filter type="subtree"> <Ifmgr xmlns="http://www.h3c.com/netconf/data:1.0-Ifmgr"> <Interfaces> <Interface/> </Interfaces> </Ifmgr> </filter> </get-bulk> </rpc> NETCONF over SOAP 略。 如何使用netconf 在CLI命令行界面使用 在CLIL界面,用户视图下,直接输入xml即可进行XML视图,将合法的NETCONF报文直接拷贝、粘贴到命令行提示符处执行,即可实现对设备的配置和管理。 在XML视图下进行NETCONF配置时,NETCONF报文最后需要添加“]]>]]>”结束符,否则设备无法识别。 不要手动输出,请在文本编辑器里编写完成,然后复制粘贴。 不过并不推荐你这么用,因为最适合人机交互的还是传统的命令行,你只需要知晓这个功能即可,或者测试使用。 使用第三方工具 SSH配置工具:NETCONF Browser等 Python和ncclient。 netconf支持的连接方式 以H3C设备为例,支持以下方式,其他各家品牌也都差不多。
阅读全文