所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

S1720, S2700, S5700, S6720 V200R012(C00&C20) 配置指南-设备管理

本文档介绍了设备管理的配置,具体包括查看设备状态、 硬件管理、 堆叠配置、 SVF配置、 云管理、 PoE配置、 监控口配置、 OPS配置、 节能管理、 信息中心配置、 故障管理配置、 NTP配置、 以太时钟同步配置、 PTP配置。
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
配置通过用户自定义命令行监测关键路由变化示例

配置通过用户自定义命令行监测关键路由变化示例

组网需求

图8-3所示,用户通过远程网络对Switch进行管理,希望能够使用自定义的命令监测关键路由的变化,在关键路由变化的时候,触发日志通知,及时感知路由变更。

图8-3  配置通过用户自定义命令行监测关键路由变化组网图

配置思路

采用如下的配置思路:
  1. 配置接口的IP地址作为设备的管理IP地址。

  2. 制作Python脚本climuti.pyroute_track.py,自定义监测关键路由的变化的命令,并在关键路由变化时打印日志。

  3. 通过IP地址10.2.1.1/24远程登录设备,上传Python脚本至Switch,安装脚本climuti.py

  4. 配置Python脚本助手。

操作步骤

  1. 配置接口的IP地址作为设备的管理IP地址

    # 配置接口所属VLAN。

    <HUAWEI> system-view
    [HUAWEI] sysname Switch
    [Switch] vlan batch 10
    [Switch] interface gigabitethernet 0/0/1
    [Switch-GigabitEthernet0/0/1] port link-type trunk
    [Switch-GigabitEthernet0/0/1] port trunk allow-pass vlan 10
    [Switch-GigabitEthernet0/0/1] quit

    # 配置接口的IP地址。

    [Switch] interface vlanif 10
    [Switch-Vlanif10] ip address 10.2.1.1 24
    [Switch-Vlanif10] quit
    [Switch] quit

  2. 制作Python脚本

    # 制作Python脚本climuti.pyroute_track.py,分别实现以下功能:
    • 脚本climuti.py用来自定义命令routetrack,使能关键路由变化的监测功能,同时安装脚本route_track.py

      说明:

      通过ops.cli.subscribe订阅的命令行,建议不要与Python脚本文件同名,避免无法对Python脚本文件进行拷贝、删除等操作。

    • 脚本route_track.py用来监测关键路由变化,路由变化时,输出日志。

  3. 上传Python脚本并安装

    # 通过IP地址10.2.1.1/24远程登录设备,将PC上的Python脚本上传到Switch上。上传文件的具体配置请参见S1720, S2700, S5700, S6720 V200R012(C00&C20) 配置指南-基础配置》中的“文件管理”。

    # 在Switch上安装Python脚本。

    <Switch> ops install file climuti.py

  4. 配置Python脚本助手

    # 配置Python脚本助手,注册climuti.py脚本中的命令行事件,等待事件触发。

    <Switch> system-view
    [Switch] ops
    [Switch-ops] script-assistant python climuti.py
    [Switch-ops] quit
    [Switch] quit

  5. 验证配置结果

    # 上述配置完成后,可以执行自定义命令routetrack启动关键路由变化的监测,在设备flash:/$_user/目录下查看route_track.py脚本是否安装成功。

    <Switch> routetrack
    <Switch> cd $_user
    <Switch> dir
    Directory of flash:/$_user/                                                       
                                                                                    
      Idx  Attr     Size(Byte)  Date        Time       FileName                     
        0  -rw-          1,672  Mar 22 2018 14:29:33   climuti.py              
        1  -rw-          2,000  Mar 22 2018 14:29:57   climuti.pyc             
        2  -rw-            441  Mar 22 2018 14:31:00   route_track.py              
        3  -rw-            891  Mar 22 2018 14:31:03   route_track.pyc             
                                                                                    
    1,927,468 KB total available (387,044 KB free)
    说明:

    .pyc文件是Python脚本文件编译后得到的文件。是否生成.pyc文件,与对应的Python脚本是否安装成功无关,因此无需关注.pyc文件。

    .pyc文件不能单独删除。通过ops uninstall file命令卸载对应的Python脚本时,.pyc文件会自动删除。

    # 打开日志开关,当监测到关键路由发生变化时,设备会自动输出日志。

    <Switch> system-view
    [Switch] info-center enable
    [Switch] quit
    <Switch> terminal monitor
    <Switch> terminal logging
    <Switch>
    Mar 28 2018 14:29:17+08:00 Switch %%01OPSA/2/SCRIPT_LOG: OPS: Syslog: The important route changed. (user="route_track.py", session=964036020).

配置文件及脚本示例

  • Switch的配置文件

    #
    sysname Switch
    #
    vlan batch 10
    #
    interface Vlanif10
     ip address 10.2.1.1 255.255.255.0
    #
    interface GigabitEthernet0/0/1
     port link-type trunk
     port trunk allow-pass vlan 10
    #
    ops
     script-assistant python climuti.py
     script-assistant python route_track.py
    #
    return
    说明:

    输入routetrack命令触发climuti.py脚本中订阅的事件后,配置文件中才会出现script-assistant python route_track.py命令。

  • climuti.py脚本示例

    # -*- coding: utf-8 -*-
    import ops         # 导入ops模块
    import sys         # 导入sys模块
    import os          # 导入os模块
    # 订阅处理函数
    def ops_condition (ops):
    	# 自定义命令行routetrack
    	value1, err_str1 = ops.cli.subscribe("cli1", "routetrack", enter=True)
    	# 自定义命令行no routetrack
    	value2, err_str2 = ops.cli.subscribe("cli2", "no routetrack", enter=True)
    	# 组合事件,输入命令行routetrackno routetrack
    	value10, err_str10 = ops.correlate("cli1 or cli2")
    	return 0
    # 工作处理函数
    def ops_execute (ops):
    	# 获取系统环境变量_cli_input,表示用户输入的命令
    	key, value = ops.environment.get("_cli_input")
    	# 判断用户输入命令行routetrack时,执行以下步骤
    	if key == "routetrack":
    		# 打开命令行通道
    		handle, err_desp = ops.cli.open()
    		# 执行ops install file route_track.py命令安装route_track.py脚本
    		result, n11, n21 = ops.cli.execute(handle,"ops install file route_track.py")
    		# 执行system-view命令进入系统视图
    		result, n11, n21 = ops.cli.execute(handle,"system-view")
    		# 执行ops命令进入OPS视图
    		result, n11, n21 = ops.cli.execute(handle,"ops")
    		# 执行script-assistant python route_track.py命令配置route_track.py的脚本助手
    		result, n11, n21 = ops.cli.execute(handle,"script-assistant python route_track.py")
    		# 关闭命令行通道
    		result = ops.cli.close(handle)
    	# 判断用户输入命令行no routetrack时,执行以下步骤
    	elif key == "no routetrack":
    		# 打开命令行通道
    		handle, err_desp = ops.cli.open()
    		# 执行system-view命令进入系统视图
    		result, n11, n21 = ops.cli.execute(handle,"system-view")
    		# 执行ops命令进入OPS视图
    		result, n11, n21 = ops.cli.execute(handle,"ops")
    		# 执行undo script-assistant python route_track.py命令删除route_track.py的脚本助手
    		result, n11, n21 = ops.cli.execute(handle,"undo script-assistant python route_track.py")
    		# 执行quit命令退回到系统视图
    		result, n11, n21 = ops.cli.execute(handle,"quit")
    		# 执行quit命令退回到用户视图
    		result, n11, n21 = ops.cli.execute(handle,"quit")
    		# 执行ops uninstall file route_track.py命令卸载route_track.py脚本
    		result, n11, n21 = ops.cli.execute(handle,"ops uninstall file route_track.py")   
    		# 关闭命令行通道
    		result = ops.cli.close(handle)
    	else:
    		return 1
    	return 0
    
  • route_track.py脚本示例

    # -*- coding: utf-8 -*-
    import ops         # 导入ops模块
    import sys         # 导入sys模块
    import os          # 导入os模块
    # 订阅处理函数
    def ops_condition (ops):
    	# 监测10.20.1.0/24网段的OSPF路由的变更
    	value, err_str = ops.route.subscribe("route1", "10.20.1.0", maskLen=24, optype="modify", protocol="ospf")
    	return 0
    # 工作处理函数
    def ops_execute (ops):
    	# 记录自定义的Critical级别的用户日志,提示路由变更
    	status, err_log = ops.syslog("Syslog: The important route changed.", "critical", "syslog")
    	return 0
    
翻译
下载文档
更新时间:2018-12-24

文档编号:EDOC1100038438

浏览量:34742

下载量:2049

平均得分:
本文档适用于这些产品
相关版本
相关文档
Share
上一页 下一页