让华为设备跟上自动化的步伐,学会Python配置NETCONF,运维不再难!

在当今数字化时代,网络设备的自动化管理已经成为了不可或缺的趋势。对于华为设备的运维人员来说,学会利用Python配置NETCONF已经成为提高工作效率、降低运维成本的必备技能。本文将介绍如何利用PythonNETCONF来实现华为设备的自动化配置,让运维工作变得更加高效、简便。

什么是NETCONF?

NETCONF(Network Configuration Protocol)是一种网络设备配置协议,它采用XML格式来描述配置信息,并通过安全的SSH连接来传输数据。相比传统的CLI(命令行界面)配置,NETCONF具有更强大、更灵活的配置能力,可以实现对设备的批量配置和管理。

NETCONF网络架构

NETCONF基本网络架构如下图所示,整套系统必须包含至少一个NMS(Network Management System)作为整个网络的网管中心,NMS运行在NMS服务器上,对设备进行管理。

NETCONF报文格式

一个完整的NETCONF请求报文结构如下图所示:

NETCONF请求报文由三部分组成,以及各字段含义如所示:

  • Message:消息层,为RPC报文提供一个简单的,独立的传输帧机制。客户端把RPC请求封装在一个元素内,服务器把请求处理的结果封装在元素内,回应给客户。
  • Operations:操作层,定义了一组基本NETCONF协议操作,被带有基于XML编码参数的RPC方法调用。
  • Content:管理对象层,定义了配置数据模型,目前主流的数据模型有YANG模型等

为什么选择Python?

Python作为一种简洁而强大的编程语言,广泛应用于自动化领域。利用Python编写的脚本可以轻松地与各种设备进行交互,并实现自动化的配置和管理。结合PythonNETCONF,可以实现对华为设备的高效自动化管理。

如何学习Python配置NETCONF?

搭建网络环境

这里采用华为的ENSP模拟器,并采用CE设备模拟环境。使用拓扑如下图:
拓扑环境

  • 将本地电脑和ENSP的设备进行交接,桥接配置如下图所示:

  • 配置交换机的IP地址,关键配置如下:
<X_T1_AGG1>system-view immediately 
[X_T1_AGG1]sysname X_T1_AGG1
[X_T1_AGG1]interface Vlanif 1
[X_T1_AGG1-Vlanif1]ip add 192.168.56.10 24
[X_T1_AGG1-Vlanif1]q
[X_T1_AGG1]interface g1/0/0
[X_T1_AGG1-GE1/0/0]undo shutdown 
  • 测试本机与CE设备的连通性,通过ping命令测试,如下图:

  • 配置CE设备SSH远程登录,关键配置如下:
    • 创建SSH登录账号,并设置权限
[X_T1_AGG1-aaa]local-user dev_user password cipher Huawei@123
Info: A new user is added.
[X_T1_AGG1-aaa]local-user dev_user service-type ssh 
[X_T1_AGG1-aaa]local-user dev_user  level 3
[X_T1_AGG1-aaa]undo  local-user policy security-enhance  // 禁止第一次登录修改密码策略
[X_T1_AGG1-aaa]undo  local-user policy password change   // 禁止第一次登录修改密码策略
[X_T1_AGG1-aaa]q 
[X_T1_AGG1]netconf 
[X_T1_AGG1-netconf]protocol inbound ssh port 830
  • 在CE设备上配置SSH用户的认知方式和服务类型:
[X_T1_AGG1]ssh user dev_user 
Info: Succeeded in adding a new SSH user.
[X_T1_AGG1]ssh user dev_user authentication-type password
[X_T1_AGG1]ssh user dev_user service-type stelnet snetconf 
  • 配置VTY用于登录方式,及开启stelent服务
[X_T1_AGG1]user-interface vty 0 4
[X_T1_AGG1-ui-vty0-4]authentication-mode aaa 
[X_T1_AGG1-ui-vty0-4]protocol inbound all 
[X_T1_AGG1-ui-vty0-4]user privilege level 3
  • 测试SSH是否正常登录。如下图展示,SSH成功登录。

安装相关库

首先,需要安装PythonNETCONF库,例如ncclient。可以通过pip来进行安装:

pip install ncclient
2. 编写Python脚本

接下来,编写Python脚本来实现对华为设备的配置。以下是一个简单的示例脚本,用于连接到设备并配置接口IP地址:

from ncclient import manager

# 设备信息
hostname = '192.168.56.10'
username = 'dev_user'
password = 'Huawei@123'

# NETCONF连接
with manager.connect(host=hostname, username=username,hostkey_verify=False, password=password, port=830, device_params={'name': 'huawei'}) as m:

    # 构建XML配置
    interface_xml = """
<config>
      <ethernet xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <ethernetIfs>
          <ethernetIf operation="merge">
            <ifName>GE1/0/2</ifName>
            <l2Enable>disable</l2Enable>
          </ethernetIf>
        </ethernetIfs>
      </ethernet>
      <ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <interfaces>
          <interface operation="merge">
            <ifName>Loopback0</ifName>
            <ifDescr>Config by NETCONF</ifDescr>
            <ifmAm4>
              <am4CfgAddrs>
                <am4CfgAddr operation="create">
                  <subnetMask>255.255.255.255</subnetMask>
                  <addrType>main</addrType>
                  <ifIpAddr>1.1.1.1</ifIpAddr>
                </am4CfgAddr>
              </am4CfgAddrs>
            </ifmAm4>
          </interface>
        </interfaces>
      </ifm>
    </config>
    """

    # 应用配置
    m.edit_config(target='running', config=interface_xml)
    print("配置成功!")

上述XML的内容主要做了两件事情:

  • GE1/0/2接口二层的功能关闭
  • 配置Loopback0配置IP地址为1.1.1.1

关于XML的语法可以查看netconf的官网,从官网上了解到对华为设备主要支持两种类型。如下图:

3. 运行脚本

保存以上代码为configure_huawei.py,然后在命令行中运行该脚本,即可实现对华为设备的自动化配置。

python configure_huawei.py

执行成功后,会返回如下信息,如下图:

运行成功后,查看交换机设备的配置,已经生效了,如下图:

结语

通过学习Python配置NETCONF,华为设备的运维工作变得更加高效、简便。利用自动化配置,可以大大减少手工操作的工作量,提高运维人员的工作效率,同时降低了配置错误的风险。让我们一起跟上自动化的步伐,让华为设备的管理变得更加轻松!

参考文档:

H3C 使用NETCONF配置设备操作指导书-6W103-新华三集团-H3C
https://support.huawei.com/enterprise/zh/doc/EDOC1100335707/877aa431#ZH-CN_TOPIC_0000001564122049
Huawei_Netconf_Ncclient - 张贺贺呀 - 博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/580024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈大数据时代下的电商风控||电商数据API接口

抢抢抢&#xff01;最后1天&#xff0c;双十一直播活动来啦&#xff01;抢直播专属优惠…… 视频号 随着大数据时代的兴起&#xff0c;互联网电商风控已经从无风控、人工抽取规则为主的简易规则模型发展到当前基于大数据的风控。与金融风控不同&#xff0c;互联网电商风控呈现出…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-3

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

红米K40手机刷机详解

了解什么是卡刷、什么是线刷 卡刷&#xff0c;就是把系统包放到你手机的SD卡&#xff0c;这一步&#xff0c;不用手机解BL锁&#xff0c;不用root&#xff0c;直接小米助手下载就可以刷。线刷就是用数据线连接电脑&#xff0c;通过XiaoMiFlash直接刷到手机&#xff0c;这一步权…

K8S深度解析:从入门到精通的全方位指南

目录 一、Kubernetes简介 二、Kubernetes的核心作用 三、Kubernetes架构图例 四、Kubernetes核心概念 Harbor仓库概述&#xff1a; Master----管理组件&#xff1a; API Server&#xff08;集群之心&#xff09;&#xff1a; Scheduler&#xff08;调度大师&…

27.统一网关Gateway-路由断言工厂

在配置文件中写的断言规则只是字符串&#xff0c;这些字符串会被Predicate Factory读取并处理&#xff0c;转变为路由判断的条件。 例如&#xff1a;Path /user/** 是按照路劲匹配&#xff0c;这个规则是由 org.springframework.cloud.gateway.handler.predicate.PathRouteP…

磨煤机液压油站比例放大器

液压系统为磨辊提供随负荷变化而变化的碾压力&#xff0c;其大小由比例溢流阀根据负荷变化的指令信号来控制液压系统的压力来实现。指令信号一般情况下是由给煤机取出的。高压油泵站安装在靠近磨煤机的基础上&#xff0c;加载油缸和蓄能器安装在磨煤机上&#xff0c;三个带蓄能…

Vue入门到关门之计算属性与监听属性

一、计算属性 1、什么是计算属性 计算属性是基于其它属性计算得出的属性&#xff0c;就像Python中的property&#xff0c;可以把方法/函数伪装成属性&#xff0c;在模板中可以像普通属性一样使用&#xff0c;但它们是基于响应式依赖进行缓存的。这意味着只有在依赖的响应式数…

【进阶六】Python实现SDVRPTW(需求拆分)常见求解算法——禁忌搜索+模拟退火算法(TS+SA)

基于python语言&#xff0c;采用经典禁忌搜索&#xff08;TS&#xff09;模拟退火&#xff08;SA&#xff09;对 带硬时间窗的需求拆分车辆路径规划问题&#xff08;SDVRPTW&#xff09; 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整2.1 需求拆分2.2 需求拆分后的服务时…

手机验证码认证轻松搞定,MemFire Cloud 助力应用开发

在当今移动互联网时代&#xff0c;手机验证码认证已成为众多应用必不可少的身份验证方式。然而&#xff0c;对于开发者来说&#xff0c;手机验证码认证的后端工作往往是一项繁琐且耗时的任务。MemFire Cloud提供了一套即用型解决方案&#xff0c;开发者可以轻松解决手机验证码认…

枚举(enum)/共用体(union)/结构体(struct)---详解

前言 C语言包含内置类型和自定义类型。 其实C语言中有内置类型&#xff0c;包含&#xff1a;char,short,int,long,long long,float,double,long double ,这些是C语言本身支持的现成的类型。 但仅仅只有内置类型是远远不够的&#xff0c;在描述一个复杂对象是无法使用内置类型来…

einsum 表达式

Einsun 简介 ein 就是爱因斯坦的ein&#xff0c;sum就是求和。einsum就是爱因斯坦求和约定&#xff0c;其实作用就是把求和符号省略。 B torch.einsum("ij->i", A) einsum接收的第一个参数为einsum表达式&#xff0c;-> 符号就相当于要把->前面的张量变…

求三个字符数组最大者(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>int main() {//初始化变量值&#xff1b;int i 0;char str[3][20];char string[20];//循环输入3个字符…

软件测试笔记_习题_面经

软件测试------按测试阶段划分有几个阶段? 单元测试、集成测试、系统测试、验收测试 软件测试------按是否查看源代码划分有几种测试方法? 黑盒、白盒、灰盒 软件测试------按是否运行划分有几种测试方法? 静态测试、动态测试 软件测试------按是否自动化划分有几种测试方…

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time 问题描述解决办法方式一方式二 小结 问题描述 在Android应用开发过程中&#xff0c;经常需要自定义控件&#xff0c;并且定义控件的属性&#xff0c;方便灵活的修改控件的显示样式&#xff0c;提…

生成对抗网络的无载体信息隐藏算法简介

一、研究背景 随着互联网技术的广泛应用和移动智能设备的快速普及&#xff0c;人们有了更多的途径传播和获取信息。每天海量的数据以视频、音频、图像、文字等各类形式在互联网中产生&#xff0c;这为人们的生活带来了极大的便利&#xff0c;但同时也引起了人们对信息泄露的担…

从零入门区块链和比特币(第三期)

欢迎来到我的区块链与比特币入门指南&#xff01;如果你对区块链和比特币感兴趣&#xff0c;但不知道从何开始&#xff0c;那么你来对地方了。本博客将为你提供一个简明扼要的介绍&#xff0c;帮助你了解这个领域的基础知识&#xff0c;并引导你进一步探索这个激动人心的领域。…

【yolov8算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测】

yolo算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测 1. yolo算法裂缝检测-汽车车身凹陷-抓痕检测-汽车车身损伤检测2. yolo房屋墙面路面裂缝-发霉-油漆脱落-渗水-墙皮脱落检测3. 水泥墙面裂缝检测 YOLOv8算法是一种先进的目标检测技术&#xff0c;它基于YOLO系列算法的改进…

卓越体验的秘密武器:评测ToDesk云电脑、青椒云、天翼云的稳定性和流畅度

大家好&#xff0c;我是猫头虎。近两年随着大模型的火爆&#xff0c;我们本地环境常常难以满足运行这些大模型的硬件需求。因此&#xff0c;云电脑平台成为了一个理想的解决方案。今天&#xff0c;我将介绍并评测几款主流云电脑产品&#xff1a;ToDesk云电脑、天翼云电脑和青椒…

基于 SpringCloud 的在线交易平台乐优商城的设计与实现(四)

第 4 章 数据库设计 4.1 数据库设计原则 4.2.数据库概念结构设计 4.3 数据库表设计 4.4.本章小结 前面内容请移步 基于 SpringCloud 的在线交易平台乐优商城的设计与实现&#xff08;三&#xff09; 相关免费源码资源 乐优商城 第 4 章 数据库设计 4.1 数据库设计原…

现代永磁同步电机控制原理pdf及全套matlab仿真模型

现代永磁同步电机控制原理pdf及matlab仿真模型。全书包含SVPWM, DTC, Lun, smo, EKF, HFI等经典控制算法。将书中10章节涉及到的模型复原搭建模型。 模型获取链接&#xff1a;现代永磁同步电机控制原理pdf及全套matlab仿真模型