一种自动化专线中继割接方法及装置与流程

    专利2022-07-07  129

    本发明涉及专线割接配置领域,尤其是一种自动化专线中继割接方法及装置。
    背景技术
    ::目前运营商网络中存在多种业务接入专线,例如互联网专线、vpn专线和pon接入专线等,随着用户规模的日益扩大,经常需要对网络设备进行扩容或升级替换,这也就意味着要对专线进行迁移和割接,而割接配置步骤较多,且根据接入模式、业务种类、设备厂家和专线类别的不同,参数也需要随之进行调整。现实中,采用人工操作模式不仅效率低下,易误操作且操作繁复,操作日志难于收集和追溯,因此急需一种集约化和自动化的手段来保证割接配置的准确性、有效性和高效性。技术实现要素:为解决人工操作模式存在的问题,本发明提供一种自动化专线中继割接方法及装置,实现对专线中继割接的自动化管理,支持多种中继割接场景,大大提升了中继割接的操作效率。为实现上述目的,本发明采用下述技术方案:在本发明一实施例中,提出了一种自动化专线中继割接方法,该方法包括:工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程。进一步地,工单数据包括:源/目标设备端口信息:源/目标a/b端设备和源/目标a/b端端口;其他信息:割接vlan、源中继标签、目标中继标签和割接备注。进一步地,同设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置并保存;删除源端口配置数据;在目标端口上配置源端口对应的专线信息。进一步地,跨设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置;登录目标端设备;构建目标端新装配置下发指令;在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息。进一步地,构建配置下发指令,包括:工单管理模块发起配置下发调用请求;配置下发模块调用配置命令模板进行配置;配置命令模板根据工单参数按设备厂家、源/目标端和是否跨厂家对配置下发命令进行分析和构建;执行构建好的命令序列,并返回执行结果。在本发明一实施例中,还提出了一种自动化专线中继割接装置,该装置包括:工单数据录入保存模块,工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;比较源a端和目标a端模块,用于比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;比较源b端和目标b端模块,用于比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程。进一步地,工单数据包括:源/目标设备端口信息:源/目标a/b端设备和源/目标a/b端端口;其他信息:割接vlan、源中继标签、目标中继标签和割接备注。进一步地,同设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置并保存;删除源端口配置数据;在目标端口上配置源端口对应的专线信息。进一步地,跨设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置;登录目标端设备;构建目标端新装配置下发指令;在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息。进一步地,构建配置下发指令,包括:工单管理模块发起配置下发调用请求;配置下发模块调用配置命令模板进行配置;配置命令模板根据工单参数按设备厂家、源/目标端和是否跨厂家对配置下发命令进行分析和构建;执行构建好的命令序列,并返回执行结果。在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述自动化专线中继割接方法。在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行自动化专线中继割接方法的计算机程序。有益效果:本发明实现对专线中继割接的自动化管理,支持多种中继割接场景,大大提升了中继割接的操作效率。附图说明图1是本发明一实施例的自动化专线中继割接方法流程示意图;图2是本发明一实施例的同设备割接操作流程示意图;图3是本发明一实施例的跨设备割接操作流程示意图;图4是本发明一实施例的自动化专线中继割接装置结构示意图;图5是本发明一实施例的计算机设备结构示意图。具体实施方式下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本发明的实施方式,提出了一种自动化专线中继割接方法及装置,包括如下内容:(1)割接功能包括:通过专线中继割接工单的方式对割接操作进行管理:包括工单的新建、修改、查询,以及工单配置下发操作的管控。支持设备厂家:bas/sr:华为、中兴。汇聚交换机:华为93系列。接入交换机:华为、华三、中兴、思科。(2)支持如下割接场景:ftth互联网专线:bas/sr--汇聚交换机、单端bas(bas-olt)、单端汇聚交换机(9312-olt)中继割接。mplsvpn专线:bas/sr--汇聚/接入交换机、汇聚交换机--汇聚/接入交换机、单端bas(bas-olt)、单端汇聚交换机(9312-olt)中继割接。fttx语音专线:sr--汇聚交换机中继割接、单端汇聚交换机(9312-olt)中继割接。(3)割接范围说明:支持同设备、跨设备但不跨厂家割接、跨设备且跨厂家割接。跨设备且跨厂家割接。同设备割接,先删除原配置,后做新配置;跨设备割接,先做目标设备配置,后删除原设备配置。vlan和ip利旧。vlan需要校验目标端口下不冲突。下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。图1是本发明一实施例的自动化专线中继割接方法流程示意图。如图1所示,该方法包括:工单数据录入;比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程。图2是本发明一实施例的同设备割接操作流程示意图。如图2所示,同设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置并保存;删除源端口配置数据;在目标端口上配置源端口对应的专线信息。图3是本发明一实施例的跨设备割接操作流程示意图。如图3所示,跨设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置;登录目标端设备;构建目标端新装配置下发指令;在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息。下面按功能点描述本发明的实现方案和特性,具体如下:1、工单数据录入在专线中继割接工单编辑页面进行工单数据录入。工单数据填写:分为源设备端口信息、目标设备端口信息、其他信息。后面标“*”的为必填。(1)源/目标设备端口信息:源/目标a/b端设备:只读文本框,文本框后提供“选择”按钮,点击后弹窗提供当前用户有权限,且设备属性为bas/sr/汇聚交换机/接入交换机的设备供选择。可按设备名称和ip进行过滤。用户选择设备后,回到父页面,将选择的设备名称(设备ip)自动填写到文本框中。其中a端限定为只能选择bas/sr/汇聚交换机,b端限定为只能选择汇聚/接入交换机或为空。源/目标a/b端端口:只读文本框,文本框后提供“选择”按钮,点击后与a/b端设备进行联动,提供a/b端设备下挂端口供选择。若此时未选择设备,则提示用户“请先指定a/b端设备。”。可按端口名称进行过滤。用户选择端口后,回到父页面,将选择的端口名称自动填写到文本框中。源/目标a端设备和端口为必填;源/目标b端(设备 端口)要么都为空,要么都不为空。为空时即为割接含olt设备中继的单端。源/目标a端设备不能与源/目标b端设备相同。若相同,则提示用户“a、b端设备不能是同一个设备,请重新选择。”源和目标a/b端不能完全相同,即若源a端设备 端口=目标a端设备 端口,则源b端设备 端口不能与目标b端设备 端口相同;反之亦然。源a端设备属性必须与目标a端设备属性相同,源b端设备属性必须与目标b端设备属性相同。录入端口后(焦点离开),触发该检查:若目标a/b端设备的设备属性为bas/sr/汇聚交换机、端口为物理口,则获取对应的聚合口。(2)其他信息:割接vlan:文本框,可为空。支持单个vlan、vlan区间(起始-终止)录入,多个之间以“,”分隔。若b端设备为接入交换机,则需做整条链路迁移(包括不在业务vlan范围内的,但不含管理vlan),不支持输入割接vlan,此时设置文本框为disable。vlan值需存在于系统参数指定的有效范围内,若超限,则提示“存在vlan不在业务有效值值范围内,请重新输入。”源中继标签、目标中继标签:必填,下拉列表框,枚举取值“不打标签”、“互联网及mpls专线”、“mpls-vpn专线”。默认为空。割接备注:文本框,用户录入。可为空。2、生成工单根据录入的工单数据按如下工单数据模型进行保存,包括:割接表、工单表和工单参数表。(1)relaysl_cutover_sheet割接表入库逻辑见下表1:表1列名编码类型是否pk赋值方法工单编号wsnbrchar(13)是同worksheet.wsnbr源a端设备标识src_adevidchar(8)否界面录入源a端设备端口src_aportvarchar2(255)否界面录入源b端设备标识src_bdevidchar(8)否界面录入源b端设备端口src_bportvarchar2(255)否界面录入目标a端设备标识dst_adevidchar(8)否界面录入目标a端设备端口dst_aportvarchar2(255)否界面录入目标b端设备标识dst_bdevidchar(8)否界面录入目标b端设备端口dst_bportvarchar2(255)否界面录入割接vlanvlan_scopevarchar2(1024)否界面录入源中继标签src_tagvarchar2(32)否界面录入目标中继标签dst_tagvarchar2(32)否界面录入割接备注remarkvarchar2(1024)否界面录入源a端设备名称src_adevnamevarchar2(128)否界面录入源a端设备ipsrc_adevipvarchar2(128)否界面录入源b端设备名称src_bdevnamevarchar2(128)否界面录入源b端设备ipsrc_bdevipvarchar2(128)否界面录入目标a端设备名称dst_adevnamevarchar2(128)否界面录入目标a端设备ipdst_adevipvarchar2(128)否界面录入目标b端设备名称dst_bdevnamevarchar2(128)否界面录入目标b端设备ipdst_bdevipvarchar2(128)否界面录入(2)worksheet工单表入库逻辑见下表2:表2(3)worksheetext工单参数表入库逻辑见下表3:表3参数描述参数名赋值方法源a端设备标识sdeva同relaysl_cutover_sheet表src_adevid源a端设备端口src_aport同relaysl_cutover_sheet表src_aport源b端设备标识sdevb同relaysl_cutover_sheet表src_bdevid源b端设备端口src_bport同relaysl_cutover_sheet表src_bport目标a端设备标识ddeva同relaysl_cutover_sheet表dst_adevid目标a端设备端口dst_aport同relaysl_cutover_sheet表dst_aport目标b端设备标识ddevb同relaysl_cutover_sheet表dst_bdevid目标b端设备端口dst_bport同relaysl_cutover_sheet表dst_bport割接vlanvlan_scope同relaysl_cutover_sheet表vlan_scopea端是否跨设备across_device若sdeva=ddeva,赋值为0,否则赋值为1b端是否跨设备bcross_device若sdevb=ddevb,赋值为0,否则赋值为1源a端设备厂家src_avendor根据sdeva获取对应设备的厂家,例如hu源b端设备厂家src_bvendor根据sdevb获取对应设备的厂家,例如hu目标a端设备厂家dst_avendor根据ddeva获取对应设备的厂家,例如hu目标b端设备厂家dst_bvendor根据ddevb获取对应设备的厂家,例如hua端是否跨厂家across_vendor若src_avendor=dst_avendor,赋值为0,否则赋值为1b端是否跨厂家bcross_vendor若src_bvendor=dst_bvendor,赋值为0,否则赋值为13、工单管理在专线中继割接工单编管理页面进行工单管理。工单管理的功能包括:(1)按各类条件查询工单信息。(2)提供创建新工单的功能。(3)提供对工单的各类操作功能,包括编辑、查看详情、预览、下发、查看详细日志操作。用户交互流程如下:(1)用户可按如下条件组合查询工单:工单编号:文本框,用户录入。支持模糊匹配。工单状态:下拉列表框,待选枚举值:“待部署”(a)、“竣工”(c)。操作者:文本框,用户录入。支持模糊匹配。设备名称或ip:文本框,用户录入。支持模糊匹配。对应源、目标端设备信息。均需进行模糊匹配。设备端口:文本框,用户录入。支持模糊匹配。对应源、目标端端口信息。均需进行模糊匹配。割接vlan:文本框,用户录入。支持模糊匹配。割接备注:文本框,用户录入。支持模糊匹配。创建时间:包括起止范围,精确到秒,终止时间需大于等于起始时间。(2)操作按钮:新建:用户点击该按钮,系统弹窗呈现新建工单页面,详见工单数据录入。查询:用户点击该按钮,系统根据条件组合组装sql进行查询,(3)右键菜单:用户选择一条工单,单击右键,系统提供如下右键菜单:修改:仅工单状态为待部署(a)时显示该右键。查看工单详细:工单属性页面,所有属性只读。查看工单状态历史:工单状态变更日志。查看任务日志:配置任务执行日志。配置预览:配置任务命令预览。4、配置下发指令构建配置下发的具体步骤包括:工单管理模块发起配置下发调用请求。配置下发模块调用配置命令模板进行配置。配置命令模板根据工单参数按设备厂家、源/目标端、是否跨厂家对配置下发命令进行分析和构建。执行构建好的命令序列,并返回执行结果。需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。为了对上述自动化专线中继割接方法进行更为清楚的解释,下面结合具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。下面分别描述华为和中兴的配置下发指令构建。华为源a端-bas/sr设备(1)获取源端命令行信息进行分析,执行命令displaycurrent-configuration,保存所有返回结果进行分析。同时,将所有返回结果根据工单编号保存到relaysl_cutover_sheet.src_cmdline。(2)变量赋值:subportinfolist[]=null(子接口信息列表),包括如下属性内容:subportname:子接口名称。portaddr:端口地址,包括ip和mask,多个以逗号分隔。vpninstance:源端口绑定的vpn实例名称。networkaddr:路由配置地址,包括ip和mask,多个以逗号分隔。bgpas=null(as号)staticroutecmd[]=null(静态路由命令列表)。(3)子接口配置分析:找到包含“interface$sport”的行,提取配置子接口的整段命令行。针对每个子接口,逐一做如下操作:提取子接口名称,添加到数组subportinfolist,赋值属性subportname。提取端口ip地址和掩码,添加到数组subportinfolist,赋值属性portaddr。提取端口绑定的vpn实例名称,添加到数组subportinfolist,赋值属性vpninstance。(4)bgp配置分析:找到bgp配置段,提取as号,赋值给bgpas。(仅across_device=1时执行)遍历subportinfolist列表,若vpninstance不为空,提取vpninstance下所有network配置行,若这里的ip地址段与端口的地址段相同,则记录ip和掩码,赋值给属性networkaddr。判断地址段相同的方法:network配置行的ip&mask=portaddr.ip&mask,注意portaddr有多个的情况下需要逐一判断。命令行示例:ipv4-familyvpn-instancecql3vpn-xinnongheyiliaonetwork136.27.4.0255.255.255.0network192.168.115.0255.255.255.128(5)静态路由分析:找到以“iproute-static”开头的行,逐一做如下操作:若命令行包含subportinfolist.subportname中的任意一个,则在该命令行前添加“undo”,并添加到数组staticroutecmd。命令行示例:iproute-static58.43.54.1255.255.255.255eth-trunk12.3iproute-static58.43.54.1255.255.255.255eth-trunk12.358.43.42.26iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3172.17.3.218(仅across_device=1时执行)若命令行不包含子接口名称,则提取“eth-trunk10.3”地址赋值为routeip,判断该地址是否位于端口所属子网段内(计算portaddr的网络地址和广播地址,判断routeip是否位于两者之间。注意portaddr有多个的情况下需要逐一判断。)若位于端口子网段内,则在该命令行前添加“undo”,并添加到数组staticroutecmd。命令行示例:iproute-static172.12.1.8255.255.255.248202.98.59.130iproute-staticvpn-instancectvpn607327249-chengtoujinka172.12.1.8255.255.255.248202.98.59.130(6)执行删除命令:删除存在的子接口关联静态路由配置:遍历staticroutecmd,执行其中每一行。示例:undoiproute-static183.64.115.128255.255.255.192gigabitethernet7/1/3.4090183.64.115.34undo……删除存在的bgp下发布network路由配置:遍历subportinfolist列表,若vpninstance不为空,执行下述命令行:bgp65220--bgpas#每个vpninstance执行下述框线内整段quit删除子接口:遍历subportinfolist列表,针对每个subportname,执行下述命令一行。undointefaceeth-trunk100.1703--subportname华为源b端-bas/sr设备(同厂家)配置检查(1)获取源端命令行信息进行分析,根据工单编号获取relaysl_cutover_sheet.src_cmdline作为源端命令行进行分析。(2)变量赋值:sport=工单参数src_aport(源端口)dport=工单参数dst_aport(目标端口)alloc_flag=1(当前是否执行分配子接口号步骤,1-执行0-不执行)conflict_flag=0(当前是否存在冲突项,1-存在0-不存在)idlesubportnolist[]=null(目标端口下空闲子接口列表)subportinfolist[]=null(子接口信息列表),包括如下属性内容:subportname:子接口名称。portaddr:端口地址,包括ip和mask,多个以逗号分隔。vpninstance:源端口绑定的vpn实例名称。portconfigcmd:端口配置命令。bgpas=null(as号)vpnlist[]=null(源端口绑定的vpn实例),包括如下属性内容:vpninstance:源端实例名。newvpninstance:目标端实例名。vpnconfigcmd:vpn配置命令。networkaddr:路由配置地址,包括ip和mask,多个以逗号分隔。create_flag=0:是否需要创建vpn。rename_flag=0:是否需要改名。yibao_flag=0(医保访控模板是否存在,1-存在0-不存在)staticroutecmd[]=null(静态路由命令列表)。子接口配置分析:(1)获取目标端口下的空闲子接口号。首先获取已经配置的子接口编号,执行如下命令:disipintbrief|ingigabitethernet2/1/1--$dport输出结果中interface列对应已经配置的子接口,如gigabitethernet2/1/1.100,小数点后的100表示子接口编号,取范围在101~4096范围内未占用的所有编号为空闲子接口编号,添加到数组idlesubportnolist,并按升序排序。<cq-jlp-sqp-bas-3.man.me60-x16>disipintbrief|ingigabitethernet2/1/1*down:administrativelydown!down:fiboverloaddown^down:standby(l):loopback(s):spoofing(d):dampeningsuppressed(e):e-trunkdownthenumberofinterfacethatisupinphysicalis163thenumberofinterfacethatisdowninphysicalis52thenumberofinterfacethatisupinprotocolis118thenumberofinterfacethatisdowninprotocolis97interfaceipaddress/maskphysicalprotocolgigabitethernet2/1/1(10g)unassignedupdowngigabitethernet2/1/1.1unassignedupupgigabitethernet2/1/1.2unassignedupupgigabitethernet2/1/1.100106.86.208.105/30upupgigabitethernet2/1/1.4070172.1.9.225/29upup<cq-jlp-sqp-bas-3.man.me60-x16>(2)子接口配置分析:找到包含“interface$sport”的行,提取配置子接口的整段命令行。针对每个子接口,逐一做如下操作:分配子接口号:针对每个源端口,逐个分配目标子接口编号。判断是否可分配:若alloc_flag=1,则需分配新的子接口号;若alloc_flag=0,则报错“找不到可用的目标子接口号”,设置conflict_flag=1并跳出该步骤。分配:从空闲子接口号列表idlesubportnolist获取最小一个(即idlesubportnolist[0]),并从列表中删除该值。设置目标子接口subportname=$dport.idlesubportnolist[0]。若最终未找到可用子接口号,则报错“找不到可用的目标子接口号”,同时设置conflict_flag=1、alloc_flag=0。获取vlan信息:按红色关键字获取,若包含“qinq”,设置encapsulation=qinq、pvlan=外层vlan、cvlan=内层vlan;若包含“dot1q”,设置encapsulation=dot1q、pvlan=单层vlan。vlan检查:若存在则报错“目标端口下vlan已经存在”,同时设置conflict_flag=1。#--encapsulation=qinq时:user-vlan检查:若存在则报错“user-vlan已被占用”,检查方法:如果返回结果中包含dport、pvlan则认为存在。displaysub-interfacegigabitethernet3/0/3pevlan4000cevlan3100--dport、pvlan、cvlan#占用返回sub-interface:gigabitethernet3/0/2.4000sub-interface-status:uppevlan/cevlan:4000/3100#空闲返回info:nosub-interfaceexist.terminationvlan检查:若存在则报错“terminationvlan已被占用”,检查方法:如果返回结果中包含“qinqterminationpe-vidpvlance-vidcvlan”则认为存在。displayqinqinformationterminationinterfacegigabitethernet3/0/3|includepe-vid4000ce-vid3100--dport、pvlan、cvlan#占用返回qinqterminationpe-vid4000ce-vid3100#空闲返回info:specifiedinformationdoesnotexist.#--encapsulation=dot1q时:user-vlan检查:若存在则报错“user-vlan已被占用”,检查方法:如果返回结果中包含dport、pvlan,则认为存在。displaysub-interfacegigabitethernet3/0/3pevlan4000--dport、pvlan#占用返回sub-interface:gigabitethernet3/0/2.4000sub-interface-status:uppevlan/cevlan:4000/0thebasfunctionhasbeendisabled#空闲返回info:nosub-interfaceexist.terminationvlan检查:若存在则报错“terminationvlan已被占用”,检查方法:如果返回结果中包含pvlan则认为存在。displaydot1qinformationterminationinterfacegigabitethernet3/0/3|includevid4000--dport、pvlan#占用返回dot1qterminationvid4000#空闲返回info:specifiedinformationdoesnotexist.若当前设备是bas设备(devicemodelcodelike”dev_ip_b_%'),需要检查设备版本,执行命令displayversion|includesoftware,显示:vrp(r)software,version5.160(me60v600r007c00spc600)设置v800_flag=0。显示:vrp(r)software,version8.180(me60v800r010c10spc500)设置v800_flag=1。如果版本不一致,端口interface下如下表4命令需要替换(control-vid为双层的pvlan或单层vlan)表4若当前设备版本与配置不吻合,则需要将上述行配置进行相应替换。生成目标端口配置信息:若conflict_flag=0,保存如下信息:提取子接口名称,添加到数组subportinfolist,赋值属性subportname。提取端口ip地址和掩码,添加到数组subportinfolist,赋值属性portaddr。提取端口绑定的vpn实例名称,添加到数组subportinfolist,赋值属性vpninstance。将整段命令行中的子接口名称替换为subportname,赋值属性portconfigcmd。获取医保访控模板:搜索“yibao”,按红色关键字匹配,若存在,设置yibao_flag=1。traffic-policyyibaooutbound--端口绑定出向访控模板名称若conflict_flag=1,报错“子接口配置检查未通过!”退出。配置下发vpn、bgp、静态路由配置分析遍历subportinfolist列表,做如下分析:(1)(仅across_device=1时执行)vpn配置分析:找到vpn配置段,若vpninstance不为空且在vpnlist中不存在,找到对应的vpn实例信息,按关键字提取rd。检查vpn是否存在:执行命令displayipvpn-instance(可只执行一次、保存结果后续备查),按rd去匹配判定:若匹配到rd,则将该vpn信息添加到vpnlist,其中属性赋值如下:(1)vpninstance:subportinfolist.vpninstance。(2)rename_flag:vpn实例名称与源端不同时,赋值为1。同时,将subportinfolist.portconfigcmd中的vpninstance替换为newvpninstance。(3)newvpninstance:若rename_flag=1,赋值为rd对应的新vpn实例名称。否则,赋值为vpninstance。(4)create_flag:赋值为0。(5)vpnconfigcmd:置空。若未匹配到rd,则将该vpn信息添加到vpnlist,其中属性赋值如下:(1)vpninstance:subportinfolist.vpninstance。(2)rename_flag:赋值为0。(3)newvpninstance:赋值为vpninstance。(4)create_flag:赋值为1。(5)vpnconfigcmd:整段vpn配置命令。<huawei>displayipvpn-instancetotalvpn-instanceconfigured:5totalipv4vpn-instanceconfigured:3totalipv6vpn-instanceconfigured:1(2)(仅across_device=1时执行)bgp配置分析:找到bgp配置段,提取as号,赋值给bgpas。若vpninstance不为空,提取vpninstance下所有network配置行,若这里的ip地址段与端口的地址段相同,则记录ip和掩码,赋值给vpnlist的属性networkaddr。判断地址段相同的方法:network配置行的ip&mask=portaddr.ip&mask,注意portaddr有多个的情况下需要逐一判断。命令行示例:ipv4-familyvpn-instancecql3vpn-xinnongheyiliaonetwork136.27.4.0255.255.255.0network192.168.115.0255.255.255.128(3)静态路由分析:找到以“iproute-static”的开头行,逐一做如下操作:若命令行包含subportname,则将该命令行追加到staticroutecmd(以换行分隔)。命令行示例:iproute-static58.43.54.1255.255.255.255eth-trunk12.3iproute-static58.43.54.1255.255.255.255eth-trunk12.358.43.42.26iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3172.17.3.218(仅across_device=1时执行)若命令行不包含子接口名称,则提取红色部分地址赋值为routeip,判断该地址是否位于端口所属子网段内(计算portaddr的网络地址和广播地址,判断routeip是否位于两者之间。注意portaddr有多个的情况下需要逐一判断。)若位于端口子网段内,则将该命令行追加到staticroutecmd(以换行分隔)。命令行示例:iproute-static172.12.1.8255.255.255.248202.98.59.130iproute-staticvpn-instancectvpn607327249-chengtoujinka172.12.1.8255.255.255.248202.98.59.130执行配置(1)防控模板配置(仅across_device=1&&yibao_fag=1时执行):(可参考dev_ip_b_hu_com_pe_add)aclnumber3801descriptionyibao-deny-virusrule1permitudpdestination-porteq135rule2permitudpdestination-porteq445rule3permitudpdestination-porteq137rule4permitudpdestination-porteq138rule5permitudpdestination-porteq139quitaclnumber3802descriptionyibao-permitrule1permitipsource10.0.8.00.0.0.255rule2permitipsource10.0.9.00.0.0.255rule3permitipsource10.199.0.2530quitaclnumber3803descriptionyibao-denyrulepermitipsourceanyquittrafficclassifieryibao-deny-virusif-matchacl3801trafficclassifieryibao-permitif-matchacl3802trafficclassifieryibao-denyif-matchacl3803trafficbehavioryibao-deny-virusdenytrafficbehavioryibao-permitpermittrafficbehavioryibao-denydenytrafficpolicyyibaoclassifieryibao-deny-virusbehavioryibao-deny-virusclassifieryibao-permitbehavioryibao-permitclassifieryibao-denybehavioryibao-denyquit(2)vpn配置(仅across_device=1时执行):遍历vpnlist列表,针对每个vpn,若create_flag=1,执行vpnconfigcmd中所有命令。若v800_flag=1,执行commit。(3)端口配置:遍历subportinfolist列表,针对每个端口,若portconfigcmd不为空,执行portconfigcmd中所有命令。若v800_flag=1,执行commit。(4)bgp配置(仅across_device=1时执行):遍历vpnlist列表,针对每个vpn,bgp65220--bgpas#每个vpninstance执行下述整段:ipv4-familyvpn-instancecql3vpn-xinnongheyiliao--newvpninstanceundonetwork192.168.115.0255.255.255.128--networkaddr,多个情况下执行多行quitquit若v800_flag=1,执行commit。(5)静态路由配置:执行staticroutecmd中所有命令行。中兴源a端-bas/sr设备(1)获取源端命令行信息进行分析,执行命令showrunning-config,保存所有返回结果进行分析。同时,将所有返回结果根据工单编号保存到relaysl_cutover_sheet.src_cmdline。(2)变量赋值:subportinfolist[]=null(子接口信息列表),包括如下属性内容:subportname:子接口名称。portaddr:端口地址,包括ip和mask,多个以逗号分隔。vpninstance:源端口绑定的vpn实例名称。networkaddr:路由配置地址,包括ip和mask,多个以逗号分隔。bgpas=null(as号)staticroutecmd[]=null(静态路由命令列表)。(3)子接口配置分析:找到包含“interface$sport”的行,提取配置子接口的整段命令行。针对每个子接口,逐一做如下操作:提取子接口名称,添加到数组subportinfolist,赋值属性subportname。提取端口ip地址和掩码,添加到数组subportinfolist,赋值属性portaddr。提取端口绑定的vpn实例名称,添加到数组subportinfolist,赋值属性vpninstance。(4)bgp配置分析:找到bgp配置段,提取as号,赋值给bgpas。(仅across_device=1时执行)遍历subportinfolist列表,若vpninstance不为空,提取vpninstance下所有network配置行,若这里的ip地址段与端口的地址段相同,则记录ip和掩码,赋值给属性networkaddr。判断地址段相同的方法:network配置行的ip&mask=portaddr.ip&mask,注意portaddr有多个的情况下需要逐一判断。命令行示例:address-familyipv4vrfcql3-iptvmaximum-pathsibgp4network172.1.0.132255.255.255.252network172.1.0.148255.255.255.252(5)静态路由分析:找到以“iproute”开头的行,逐一做如下操作:若命令行包含subportinfolist.subportname中的任意一个,则在该命令行前添加“undo”,并添加到数组staticroutecmd。命令行示例:iproute58.43.54.1255.255.255.255smartgroup3.101iproute58.43.54.1255.255.255.255smartgroup3.10158.43.42.26(仅across_device=1时执行)若命令行不包含子接口名称,则提取红色部分地址赋值为routeip,判断该地址是否位于端口所属子网段内(计算portaddr的网络地址和广播地址,判断routeip是否位于两者之间。注意portaddr有多个的情况下需要逐一判断。)若位于端口子网段内,则在该命令行前添加“undo”,并添加到数组staticroutecmd。命令行示例:iproute172.12.1.8255.255.255.248202.98.59.130(6)执行删除命令:删除存在的子接口关联静态路由配置:遍历staticroutecmd,执行其中每一行。示例:noiproute58.43.28.196255.255.255.255gei-0/1/1/6.300658.43.33.42no……删除子接口vlan配置:遍历subportinfolist列表,执行下述命令。vlan-configurationnointerfacexgei-0/1/0/2.23--subportname(针对每个subportname,执行该命令一行)exit删除子接口限速配置:遍历subportinfolist列表,执行下述命令。qosnointerfacexgei-0/1/0/2.23--subportname(针对每个subportname,执行该命令一行)exit删除存在的子接口引用模板配置:遍历subportinfolist列表,执行下述命令。noservice-policygei-0/1/1/4.101inputbe--subportname(针对每个subportname,执行该命令一行)删除存在的bgp下发布network路由配置:遍历subportinfolist列表,若vpninstance不为空,执行下述命令行:routerbgp65220--bgpas#每个vpninstance执行下述整段:address-familyipv4vrfcql3vpn-xinnongheyiliao--vpninstancenonetwork192.168.115.0255.255.255.128--networkaddr,多个情况下执行多行exitexit删除子接口:遍历subportinfolist列表,针对每个subportname,执行下述命令一行。nointefaceeth-trunk100.1703--subportname中兴源b端-bas/sr设备(同厂家)配置检查(1)获取源端命令行信息进行分析,根据工单编号获取relaysl_cutover_sheet.src_cmdline作为源端命令行进行分析。(2)变量赋值:sport=工单参数src_aport(源端口)dport=工单参数dst_aport(目标端口)alloc_flag=1(当前是否执行分配子接口号步骤,1-执行0-不执行)conflict_flag=0(当前是否存在冲突项,1-存在0-不存在)idlesubportnolist[]=null(目标端口下空闲子接口列表)subportinfolist[]=null(子接口信息列表),包括如下属性内容:subportname:子接口名称。portaddr:端口地址,包括ip和mask,多个以逗号分隔。vpninstance:源端口绑定的vpn实例名称。portconfigcmd:端口配置命令。bgpas=null(as号)vpnlist[]=null(源端口绑定的vpn实例),包括如下属性内容:vpninstance:源端实例名。newvpninstance:目标端实例名。vpnconfigcmd:vpn配置命令。networkaddr:路由配置地址,包括ip和mask,多个以逗号分隔。create_flag=0:是否需要创建vpn。rename_flag=0:是否需要改名。yibao_flag=0(医保访控模板是否存在,1-存在0-不存在)staticroutecmd[]=null(静态路由命令列表)。子接口配置分析:(1)获取目标端口下的空闲子接口号。(可参考ftthipsl/dev_ip_r_zt_com_add)首先获取已经配置的子接口编号,执行如下命令:showinterfacedescription|includexgei-x/x/x/x.--dport输出结果中interface列对应已经配置的子接口,如gigabitethernet2/1/1.100,小数点后的100表示子接口编号,取范围在101~4096范围内未占用的所有编号为空闲子接口编号,添加到数组idlesubportnolist,并按升序排序。(2)子接口配置分析:找到包含“interface$sport”的行,提取配置子接口的整段命令行。针对每个子接口,逐一做如下操作:分配子接口号:针对每个源端口,逐个分配目标子接口编号。判断是否可分配:若alloc_flag=1,则需分配新的子接口号;若alloc_flag=0,则报错“找不到可用的目标子接口号”,设置conflict_flag=1并跳出该步骤。分配:从空闲子接口号列表idlesubportnolist获取最小一个(即idlesubportnolist[0]),并从列表中删除该值。设置目标子接口subportname=$dport.idlesubportnolist[0]。若最终未找到可用子接口号,则报错“找不到可用的目标子接口号”,同时设置conflict_flag=1、alloc_flag=0。获取vlan信息:按红色关键字获取,若包含“qinq”,设置encapsulation=qinq、pvlan=外层vlan、cvlan=内层vlan;若包含“dot1q”,设置encapsulation=dot1q、pvlan=单层vlan。vlan检查:若存在则报错“目标端口下vlan已经存在”,同时设置conflict_flag=1。#--encapsulation=qinq时执行:showvlan-conflict-interfacesmartgroup3qinqinternal-vlan-range301external-vlan-range2401--dport、cvlan、pvlan#--encapsulation=dot1q时执行:showvlan-conflict-interfacesmartgroup3dot1qvlan-range2201--dport、pvlan2种情况下命令返回格式相同。#占用返回conflictinterfacename:sub-interface-name--------------------------smartgroup3.24010301#空闲返回conflictinterfacename:sub-interface-name--------------------------生成目标端口配置信息:若conflict_flag=0,保存如下信息:提取子接口名称,添加到数组subportinfolist,赋值属性subportname。提取端口ip地址和掩码,添加到数组subportinfolist,赋值属性portaddr。提取端口绑定的vpn实例名称,添加到数组subportinfolist,赋值属性vpninstance。将整段命令行(包括if-intf、vlan、port-acl、car、hqos、urpf命令段)中的子接口名称替换为subportname,赋值属性portconfigcmd。获取医保访控模板:搜索“yibao”,按红色关键字匹配,若存在,设置yibao_flag=1。interfacegei-0/1/1/4.101ipv4-access-groupegressyibao-permit--端口绑定出向访控模板名称若conflict_flag=1,报错“子接口配置检查未通过!”退出。配置下发vpn、bgp、静态路由配置分析遍历subportinfolist列表,做如下分析:(1)(仅across_device=1时执行)vpn配置分析:找到vpn配置段,若vpninstance不为空且在vpnlist中不存在,找到对应的vpn实例信息,按关键字提取rd。检查vpn是否存在:执行命令showipvrf(可只执行一次、保存结果后续备查),按rd去匹配判定:若匹配到rd,则将该vpn信息添加到vpnlist,其中属性赋值如下:(1)vpninstance:subportinfolist.vpninstance。(2)rename_flag:vpn实例名称与源端不同时,赋值为1。同时,将subportinfolist.portconfigcmd中的vpninstance替换为newvpninstance。(3)newvpninstance:若rename_flag=1,赋值为rd对应的新vpn实例名称。否则,赋值为vpninstance。(4)create_flag:赋值为0。(5)vpnconfigcmd:置空。若未匹配到rd,则将该vpn信息添加到vpnlist,其中属性赋值如下:(1)vpninstance:subportinfolist.vpninstance。(2)rename_flag:赋值为0。(3)newvpninstance:赋值为vpninstance。(4)create_flag:赋值为1。(5)vpnconfigcmd:整段vpn配置命令。zxr10{config}#showipvrf*beingdeletednamedefaultrdinterfaceszte1:1loopback1mng<notset>(2)(仅across_device=1时执行)bgp配置分析:找到bgp配置段,提取as号,赋值给bgpas。若vpninstance不为空,提取vpninstance下所有network配置行,若这里的ip地址段与端口的地址段相同,则记录ip和掩码,赋值给vpnlist的属性networkaddr。判断地址段相同的方法:network配置行的ip&mask=portaddr.ip&mask,注意portaddr有多个的情况下需要逐一判断。命令行示例:address-familyipv4vrfcql3-iptvmaximum-pathsibgp4network172.1.0.132255.255.255.252network172.1.0.148255.255.255.252(3)静态路由分析:找到以“iproute”的开头行,逐一做如下操作:若命令行包含subportname,则将该命令行追加到staticroutecmd(以换行分隔)。命令行示例:iproute58.43.54.1255.255.255.255smartgroup3.101iproute58.43.54.1255.255.255.255smartgroup3.10158.43.42.26(仅across_device=1时执行)若命令行不包含子接口名称,则提取红色部分地址赋值为routeip,判断该地址是否位于端口所属子网段内(计算portaddr的网络地址和广播地址,判断routeip是否位于两者之间。注意portaddr有多个的情况下需要逐一判断。)若位于端口子网段内,则将该命令行追加到staticroutecmd(以换行分隔)。命令行示例:iproute172.12.1.8255.255.255.248202.98.59.130执行配置(1)防控模板配置(仅across_device=1&&yibao_fag=1时执行):ipv4-access-listyibao-permitrule1permitip10.0.8.00.0.0.255anyrule2permitip10.0.9.00.0.0.255anyrule3permitip10.199.0.2530.0.0.0anyexit(2)vpn配置(仅across_device=1时执行):遍历vpnlist列表,针对每个vpn,若create_flag=1,执行vpnconfigcmd中所有命令。(3)端口配置:遍历subportinfolist列表,针对每个端口,若portconfigcmd不为空,执行portconfigcmd中所有命令。(4)bgp配置(仅across_device=1时执行):遍历vpnlist列表,针对每个vpn,routerbgp65220--bgpas#每个vpninstance执行下述整段:address-familyipv4vrfcql3-iptv--newvpninstanceundonetwork192.168.115.0255.255.255.128--networkaddr,多个情况下执行多行quitquit(5)静态路由配置:执行staticroutecmd中所有命令行。bas/sr设备a端跨厂家割接从专线发现结果表获取需要开通的参数信息。执行逻辑:(1)根据源端设备和端口从专线表获取对应的待割接专线信息,获取到的每条记录对应一条专线。(2)根据专线信息中的pvlan、设备属性以及目标端设备厂家(对应工单参数dst_avendor)判定调用哪个开通模板。每个模板仅执行一次,但配置业务子接口的配置命令段,每条专线均需执行一段。对照关系如下表5:表5遍历取出来的每条专线信息,按(2)中判定的业务模板进行模板参数赋值,见下表6:表6执行对应模板逻辑。其中peportip存在多个的情况(格式:ip/masklen,ip/masklen),在配置子接口ip的时候需要进行特殊处理,根据设备厂家按如下执行(这是区别于新装模板的地方):(1)dst_avendor=jr:多段ip配置多行下述命令。setinterfaces$portunit$unitfamilyinetaddress$addip(2)dst_avendor=hu:第1段之后的ip添加关键字sub。ipaddress$ip$maskipaddress$ip$masksub(3)dst_avendor=zt:第1段之后的ip添加关键字secondary。ipaddress$newipipaddress$newipsecondary华为源a端-汇聚交换机(1)获取源端命令行信息进行分析,执行命令discuint$src_aport,保存所有返回结果为进行分析。同时,将所有返回结果根据工单编号保存到relaysl_cutover_sheet.src_cmdline。返回结果示例:interfacegigabitethernet1/0/24--端口undonegotiationautodescriptiondt:cq-sqs-jfb-olt-4.man.riyueguang-olt1g::eth-portlink-typetrunkundoporttrunkallow-passvlan1--trunk模式porttrunkallow-passvlan969842222to22243750380038503900--透传vlan集合。注意to的情况,为范围qosburst-modeenhancedbroadcast-suppression5#interfacegigabitethernet1/0/27undonegotiationautodescriptiondt:cq-sqs-jfb-sw-3.man.mpls53521g::eth-0/1/2undoporthybridvlan1--hybrid模式porthybridtaggedvlan151115781667to166819601976to19771982to1983--透传vlan集合,taggedporthybriduntaggedvlan1503to150515071521158615991602167216981964--透传vlan集合,untaggedportvlan-stackingvlan1503stack-vlan1503--untagged时,双层vlan的内层vlan、外层vlanportvlan-stackingvlan1510to1512stack-vlan1503--注意to的情况,为范围……#(2)变量赋值:vlanmode:vlan模式,取值trunk、hybrid。vlanscope:vlan割接范围,来自工单参数vlan_scope,包含单个vlan或vlan区间,多个值之间以“,”分隔。mgmtvlan:管理vlan。trunk_vlan:单层vlan集合。tagged_vlan:入外层vlan集合。untagged_vlan:出外层vlan集合。inout_vlan_pairs:内外层vlan配对集合。(3)获取管理vlan:执行命令disiprouting-table0.0.0.0,vlanif后的数字403即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。<dazhulinkangju-int-s3328-1>disiprouting-table0.0.0.0routeflags:r-relay,d-downloadtofib-----------------------------------------------------------routingtable:publicsummarycount:1destination/maskprotoprecostflagsnexthopinterface0.0.0.0/0static600rd183.65.59.65vlanif403<dazhulinkangju-int-s3328-1>(4)配置分析:确定vlan模式:若命令行包含“undoporttrunk”,则设置vlanmode=trunk;若命令行包含“undoporthybrid”,则设置vlanmode=hybrid。若vlanmode为空,报错“无法确定端口vlan模式”退出。vlan模式校验:若vlanmode=hybrid&&工单参数src_bvendor=h3/ci,则报错“华三或思科设备源端为hybrid模式时无法割接。”退出。提取vlan号:若vlanmode=trunk,截取“porttrunkallow-passvlan”后的vlan串,多行则以空格进行拼接,赋值给trunk_vlan。若vlan串不为空,调用“判定vlan有效性”步骤进行判定。若vlanmode=hybrid,截取“porthybridtaggedvlan”后的vlan串,多行则以空格进行拼接,赋值给tagged_vlan。若vlan串不为空,调用“判定vlan有效性”步骤进行判定。若vlanmode=hybrid,截取“porthybriduntaggedvlan”后的vlan串,多行则以空格进行拼接,赋值给untagged_vlan。若vlan串不为空,调用“判定vlan有效性”步骤进行判定。若vlanmode=hybrid,截取“portvlan-stackingvlan”后的内层、外层vlan,以“,”进行拼接,多行则以“;”进行拼接,赋值给inout_vlan_pairs。若外层vlan需调用“判定vlan有效性”步骤进行判定,若判定为丢弃,则不做拼接。判定vlan有效性:判定vlan是否在割接范围内:按空格拆分vlan串(需识别xxxtoyyy的区间格式),若vlanscope不为空,逐一判断vlan是否在vlanscope范围内。若不在,则丢弃。判定vlan是否在管理vlan范围内:若mgmtvlan不为空,逐一判断vlan是否在mgmtvlan范围内,若存在,则丢弃对应元素。(5)执行删除命令:设置vlanliststr=遍历vlanlist,每个元素以空格拼接。interfacegigabitethernet2/0/1--src_aport#vlanmode=hybrid时执行undoporthybridvlan14281430--tagged_vlanundoportvlan-stackingvlan207stack-vlan2072--内层vlan、外层vlan(按分号拆解inout_vlan_pairs,每一对执行一行。其中每一对逗号前为内层vlan、逗号后为外层vlan)undoporthybridvlan14281430--untagged_vlan#vlanmode=trunk时执行undoporttrunkallow-passvlan139--trunk_vlanquit(6)保存源端信息:根据当前工单编号保存如下信息。保存vlan模式:updaterelaysl_cutover_sheetsetasrc_vlan_mode='$vlanmode'wherewsnbr='$wsnbr'保存待割接单层vlan:updaterelaysl_cutover_sheetsetasrc_trunk_vlan='$trunk_vlan保存待割接入外层vlan:updaterelaysl_cutover_sheetsetasrc_tagged_vlan='$tagged_vlan保存待割接出外层vlan:updaterelaysl_cutover_sheetsetasrc_untagged_vlan='$untagged_vlan保存待割接内外层vlan配对集合:updaterelaysl_cutover_sheetsetasrc_inout_vlan_pairs='$inout_vlan_pairs华为目标a端-汇聚交换机(1)获取源端命令行信息进行分析,根据工单编号获取relaysl_cutover_sheet.src_cmdline作为源端命令行进行分析。(2)变量赋值:srcvlanmode:源端vlan模式,取值trunk、hybrid。赋值方法:根据工单编号获取relaysl_cutover_sheet表字段bsrc_vlan_mode。dstvlanmode:目标端vlan模式,取值trunk、hybrid、空。mgmtvlan:管理vlan。set_mode_flag=0(是否需要设置vlan模式。1-需要,0-不需要)trunk_vlan:单层vlan集合。根据工单编号获取relaysl_cutover_sheet表字段asrc_trunk_vlan。tagged_vlan:入外层vlan集合。根据工单编号获取relaysl_cutover_sheet表字段asrc_tagged_vlan。untagged_vlan:出外层vlan集合。根据工单编号获取relaysl_cutover_sheet表字段asrc_untagged_vlan。inout_vlan_pairs:内外层vlan配对集合。根据工单编号获取relaysl_cutover_sheet表字段inout_vlan_pairs。(3)获取管理vlan:执行命令disiprouting-table0.0.0.0,vlanif后的数字403即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。<dazhulinkangju-int-s3328-1>disiprouting-table0.0.0.0routeflags:r-relay,d-downloadtofib-----------------------------------------------------------routingtable:publicsummarycount:1destination/maskprotoprecostflagsnexthopinterface0.0.0.0/0static600rd183.65.59.65vlanif403<dazhulinkangju-int-s3328-1>(4)判定是否管理vlan:若mgmtvlan不为空,遍历vlanlist,逐一判断vlan是否在mgmtvlan范围内,若存在,则丢弃对应元素。(5)获取目标端vlan模式:执行命令discuint$dst_aport,若返回结果包含“undoporttrunk”,则设置dstvlanmode=trunk;若返回结果包含“undoporthybrid”,则设置dstvlanmode=hybrid。若都未找到,则dstvlanmode置空。(6)校验vlan模式:若src_bvendor=hu/zt&&srcvlanmode=hybrid&&dstvlanmode=trunk,报错“源端设备厂家为华为和中兴,且源端口是hybrid模式,目标端口必须为hybrid模式或者未配置vlan模式”退出。(7)检查vlan是否占用(across_device=1时执行):若vlanmode=trunk,拆解、遍历trunk_vlan,针对每个vlan,执行命令disvlan$vlan,逐一判断vlan是否被占用。判定方法:返回结果不包含vlan号,表示未占用。若vlanmode=hybrid,拆解、遍历tagged_vlan、untagged_vlan、inout_vlan_pairs的内层vlan,针对每个vlan,执行命令disvlan$vlan,逐一判断vlan是否被占用。判定方法:返回结果不包含vlan号,表示未占用。若存在占用则报错“$vlan已存在”。若存在已占用的情况,则检查完毕后退出。(8)执行配置下发:创建vlan:遍历tagged_vlan、untagged_vlan、inout_vlan_pairs的内层vlan,针对其中每个元素(设置为vlan),若$vlan不包含“to”,执行命令vlan$vlan。若$vlan包含“to”,执行命令vlanbatch$vlan。端口下透传vlan:若dstvlanmode为空,则设置dstvlanmode=hybrid、set_mode_flag=1。interfacegigabitethernet2/0/1--dst_aport#set_mode_flag=1时执行undoporthybridvlan1#vlanmode=hybrid时执行porthybridtaggedvlan14281430--tagged_vlanporthybriduntaggedvlan14281430--untagged_vlanportvlan-stackingvlan207stack-vlan2072--内层vlan、外层vlan(按分号拆解inout_vlan_pairs,每一对执行一行。其中每一对逗号前为内层vlan、逗号后为外层vlan)#vlanmode=trunk时执行porttrunkallow-passvlan139--trunk_vlanquit华为源b端-汇聚交换机(1)获取源端命令行信息进行分析,执行命令discuint$src_bport,保存所有返回结果为进行分析。同时,将所有返回结果根据工单编号保存到relaysl_cutover_sheet.src_cmdline。返回结果示例:interfaceeth-trunk3--端口descriptionut:jiefangbei-hw-5352-1-eth-trunk1portlink-typetrunkundoporttrunkallow-passvlan1--trunk模式porttrunkallow-passvlan5052to531250to1251--透传vlan集合。注意to的情况,为范围#interfacegigabitethernet5/0/46undonegotiationautodescriptionut:cq-spb-spb-sr-1.m2n.ne40e:(direct)ge2/0/0undoporthybridvlan1--hybrid模式porthybridtaggedvlan1500150315641577158815982021202420272034--透传vlan集合,taggedporthybridtaggedvlan20373884to3885--注意to的情况,为范围#(2)变量赋值:vlanmode:vlan模式,取值trunk、hybrid。vlanlist[]:vlan集合。vlanscope:vlan割接范围,来自工单参数vlan_scope,包含单个vlan或vlan区间,多个值之间以“,”分隔。mgmtvlan:管理vlan。(4)获取管理vlan:执行命令disiprouting-table0.0.0.0,vlanif后的数字403即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。<dazhulinkangju-int-s3328-1>disiprouting-table0.0.0.0routeflags:r-relay,d-downloadtofib-----------------------------------------------------------routingtable:publicsummarycount:1destination/maskprotoprecostflagsnexthopinterface0.0.0.0/0static600rd183.65.59.65vlanif403<dazhulinkangju-int-s3328-1>(5)配置分析:确定vlan模式:若命令行包含“undoporttrunk”,则设置vlanmode=trunk;若命令行包含“undoporthybrid”,则设置vlanmode=hybrid。若vlanmode为空,报错“无法确定端口vlan模式”退出。vlan模式校验:若vlanmode=hybrid&&工单参数src_bvendor=h3/ci,则报错“华三或思科设备源端为hybrid模式时无法割接。”退出。提取vlan号:若vlanmode=trunk,截取“porttrunkallow-passvlan”后的vlan串,多行则以空格进行拼接。若vlanmode=hybrid,截取“porthybridtaggedvlan”后的vlan串,多行则以空格进行拼接。判定vlan是否在割接范围内:按空格拆分vlan串(需识别xxxtoyyy的区间格式),若vlanscope不为空,逐一判断vlan是否在vlanscope范围内。若不在,则丢弃;若存在,则添加到数组vlanlist。若vlanscope不为空,则直接添加到数组vlanlist。判定vlan是否在管理vlan范围内:若mgmtvlan不为空,遍历vlanlist,逐一判断vlan是否在mgmtvlan范围内,若存在,则从列表删除该元素;若不存在,则继续下一元素直至结束。(6)执行删除命令:设置vlanliststr=遍历vlanlist,每个元素以空格拼接。interfacegigabitethernet2/0/1--src_bport#vlanmode=hybrid时执行undoporthybridvlan14281430--vlanliststr#vlanmode=trunk时执行undoporttrunkallow-passvlan139--vlanliststrquit(7)保存源端信息:根据当前工单编号保存如下信息。保存vlan模式:updaterelaysl_cutover_sheetsetbsrc_vlan_mode='$vlanmode'wherewsnbr='$wsnbr'保存待割接vlan:updaterelaysl_cutover_sheetsetbsrc_vlan='$vlanliststr'wherewsnbr='$wsnbr'华为目标b端-汇聚交换机(1)获取源端命令行信息进行分析,根据工单编号获取relaysl_cutover_sheet.src_cmdline作为源端命令行进行分析。(2)变量赋值:srcvlanmode:源端vlan模式,取值trunk、hybrid。赋值方法:根据工单编号获取relaysl_cutover_sheet表字段bsrc_vlan_mode。dstvlanmode:目标端vlan模式,取值trunk、hybrid、空。vlanlist[]:待割接vlan集合。根据工单编号获取relaysl_cutover_sheet表字段bsrc_vlan,并按空格拆分为数组。mgmtvlan:管理vlan。set_mode_flag=0(是否需要设置vlan模式。1-需要,0-不需要)(3)获取管理vlan:执行命令disiprouting-table0.0.0.0,vlanif后的数字403即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。<dazhulinkangju-int-s3328-1>disiprouting-table0.0.0.0routeflags:r-relay,d-downloadtofib-----------------------------------------------------------routingtable:publicsummarycount:1destination/maskprotoprecostflagsnexthopinterface0.0.0.0/0static600rd183.65.59.65vlanif403<dazhulinkangju-int-s3328-1>(4)判定是否管理vlan:若mgmtvlan不为空,遍历vlanlist,逐一判断vlan是否在mgmtvlan范围内,若存在,则丢弃对应元素。(5)获取目标端vlan模式:执行命令discuint$dst_bport,若返回结果包含“undoporttrunk”,则设置dstvlanmode=trunk;若返回结果包含“undoporthybrid”,则设置dstvlanmode=hybrid。若都未找到,则dstvlanmode置空。(6)校验vlan模式:若src_bvendor=hu/zt&&srcvlanmode=hybrid&&dstvlanmode=trunk,报错“源端设备厂家为华为和中兴,且源端口是hybrid模式,目标端口必须为hybrid模式或者未配置vlan模式”退出。(7)检查vlan是否占用(bcross_device=1时执行):遍历vlanlist,执行命令disvlan$vlanlist[i],逐一判断vlan是否被占用。判定方法:返回结果不包含vlan号,表示未占用。若占用则报错“$vlanlist[i]已存在”。若存在已占用的情况,则检查完毕后退出。(8)执行配置下发:创建vlan:遍历vlanlist,针对其中每个元素,若$vlanlist[i]不包含“to”,执行命令vlan$vlanlist[i]。若$vlanlist[i]包含“to”,执行命令vlanbatch$vlanlist[i]。端口下透传vlan:设置vlanliststr=遍历vlanlist,每个元素以空格拼接。若dstvlanmode为空,则设置dstvlanmode=hybrid、set_mode_flag=1。interfacegigabitethernet2/0/1--dst_bport#set_mode_flag=1时执行undoporthybridvlan1#vlanmode=hybrid时执行undoporthybridvlan14281430--vlanliststr#vlanmode=trunk时执行undoporttrunkallow-passvlan139--vlanliststrquit中兴源b端-接入交换机(1)获取源端命令行信息进行分析,执行命令showrunning-configint$src_bport,保存所有返回结果为进行分析。同时,将所有返回结果根据工单编号保存到relaysl_cutover_sheet.src_cmdline。返回结果示例:interfacegei_6/1out_index4descriptionut:cq-spb-huxichongda-sw-1.93121g::g3/0/1optical-infomonitorenableswitchportmodetrunk--trunk模式switchporttrunknativevlan1switchporttrunkvlan53--透传vlan集合switchporttrunkvlan55-56--注意-的情况,为范围!interfacegei_6/1switchportmodehybrid--hybrid模式switchporthybridnativevlan1switchporthybridvlan91tag--透传vlan集合switchporthybridvlan98tagswitchporthybridvlan1508-1518tag--注意-的情况,为范围!(2)变量赋值:vlanmode:vlan模式,取值trunk、hybrid。vlanlist[]:vlan集合。vlanscope:vlan割接范围,来自工单参数vlan_scope,包含单个vlan或vlan区间,多个值之间以“,”分隔。mgmtvlan:管理vlan。(3)获取管理vlan:执行命令showipforwardingroute0.0.0.0,vlan后的数字147即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。jianshan_vpn_5952#shiproute0.0.0.0ipv4routingtable:destmaskgwinterfacedwnerprimetric0.0.0.00.0.0.061.161.104.213vlan147[gei_static106/1]jianshan_vpn_5952#shrunn(4)配置分析:确定vlan模式:若命令行包含“switchportmodetrunk”,则设置vlanmode=trunk;若命令行包含“switchportmodehybrid”,则设置vlanmode=hybrid。若vlanmode为空,报错“无法确定端口vlan模式”退出。提取vlan号:若vlanmode=trunk,截取“switchporttrunkvlan”后的vlan串,多行则以空格进行拼接。若vlanmode=hybrid,截取“switchporthybridvlan”后的vlan串,多行则以空格进行拼接。判定vlan是否在割接范围内:按空格拆分vlan串(需识别xxx-yyy的区间格式),若vlanscope不为空,逐一判断vlan是否在vlanscope范围内。若不在,则丢弃;若存在,则添加到数组vlanlist。若vlanscope不为空,则直接添加到数组vlanlist。判定vlan是否在管理vlan范围内:若mgmtvlan不为空,遍历vlanlist,逐一判断vlan是否在mgmtvlan范围内,若存在,则从列表删除该元素;若不存在,则继续下一元素直至结束。(5)执行删除命令:设置vlanliststr=遍历vlanlist,每个元素以空格拼接。删除端口下vlan:interfacegigabitethernet2/0/1--src_bport#vlanmode=trunk时执行noswitchporttrunkvlan139--vlanliststr#vlanmode=hybrid时执行noswitchporthybridvlan1428--vlanliststrexit删除全局vlan(bcross_device=1时执行):vlandatabasevlan45,75,98,3001,3301,2401-2460--vlanliststrexit(6)保存源端信息:根据当前工单编号保存如下信息。保存vlan模式:updaterelaysl_cutover_sheetsetbsrc_vlan_mode='$vlanmode'wherewsnbr='$wsnbr'保存待割接vlan:updaterelaysl_cutover_sheetsetbsrc_vlan='$vlanliststr'wherewsnbr='$wsnbr'中兴目标b端-接入交换机(1)获取源端命令行信息进行分析,根据工单编号获取relaysl_cutover_sheet.src_cmdline作为源端命令行进行分析。(2)变量赋值:srcvlanmode:源端vlan模式,取值trunk、hybrid。赋值方法:根据工单编号获取relaysl_cutover_sheet表字段bsrc_vlan_mode。dstvlanmode:目标端vlan模式,取值trunk、hybrid、空。vlanlist[]:待割接vlan集合。根据工单编号获取relaysl_cutover_sheet表字段bsrc_vlan,并按空格拆分为数组。mgmtvlan:管理vlan。set_mode_flag=0(是否需要设置vlan模式。1-需要,0-不需要)(4)获取管理vlan:执行命令showipforwardingroute0.0.0.0,vlan后的数字147即为管理vlan,可能有多个(多行)。将截取到的vlan赋值给mgmtvlan,多个以“,”拼接。jianshan_vpn_5952#shiproute0.0.0.0ipv4routingtable:destmaskgwinterfacedwnerprimetric0.0.0.00.0.0.061.161.104.213vlan147[gei_static106/1]jianshan_vpn_5952#shrunn(5)判定是否管理vlan:若mgmtvlan不为空,遍历vlanlist,逐一判断vlan是否在mgmtvlan范围内,若存在,则丢弃对应元素。(6)获取目标端vlan模式:执行命令showrunning-configint$dst_aport,若返回结果包含“portlink-typetrunk”,则设置dstvlanmode=trunk;若返回结果包含“portlink-typehybrid”,则设置dstvlanmode=hybrid。若都未找到,则dstvlanmode置空。(7)校验vlan模式:若src_bvendor=hu/zt&&srcvlanmode=hybrid&&dstvlanmode=trunk,报错“源端设备厂家为华为和中兴,且源端口是hybrid模式,目标端口必须为hybrid模式或者未配置vlan模式”退出。(8)检查vlan是否占用(bcross_device=1时执行):遍历vlanlist,执行命令showvlanid$vlanlist[i],逐一判断vlan是否被占用。判定方法:返回结果不包含vlan号,表示未占用。若占用则报错“$vlanlist[i]已存在”。若存在已占用的情况,则检查完毕后退出。(9)执行配置下发:创建vlan(bcross_device=1时执行):遍历vlanlist,针对其中每个元素,执行命令vlan$vlanlist[i]。端口下透传vlan:若dstvlanmode为空,则设置dstvlanmode=trunk、set_mode_flag=1。interfacegigabitethernet2/0/1--dst_bport#set_mode_flag=1时执行如下4行nonegotiationautooptical-infomonitorenableswitchportmodehybridswitchporthybridnativevlan1#vlanmode=hybrid时执行switchporthybridvlan207tag--vlanlist[i](遍历vlanlist,每个执行1行)#vlanmode=trunk时执行switchporttrunkvlan53--vlanlist[i](遍历vlanlist,每个执行1行)exit附录:pe配置返回结果示意华为华为:displaycurrent-configurationipvpn-instancectvpn607202133-yhdaishoufei--vpn实例名称ipv4-familyroute-distinguisher4809:1508408--rdtnl-policyl3vpnapply-labelper-instancevpn-target4809:150840800export-extcommunity--exportrtvpn-target4809:150840800import-extcommunity--importrt#--vpn实例配置段interfacegigabitethernet15/0/3.1550--子接口,1550为子接口号descriptionyibao-607185322--端口描述control-vid1550qinq-termination--control-vidqinqterminationpe-vid1516ce-vid1800--外层vlan、内层vlanipbindingvpn-instancectvpn607162875-laobaozhongxin--端口绑定vpn实例名称ipaddress10.92.207.157255.255.255.252--端口地址,兼容多段traffic-policytpbeinbound--端口绑定入向访控模板(qos)名称traffic-policyyibaooutbound--端口绑定出向访控模板名称arpbroadcastenable#--端口(双层vlan)配置段interfacegigabitethernet14/0/4.1542vlan-typedot1q1542--单层vlandescriptioncql3vpn-dianligongshi-607153087ipbindingvpn-instancecql3vpn-dianligongshiipaddress192.168.231.29255.255.255.252traffic-policytpbeinboundipnetstreaminbound或interfacegigabitethernet10/0/6.2241descriptionzhibozhongxinepon-ma5680t-2-fttbcontrol-vid2241dot1q-terminationdot1qterminationvid2241--单层vlanipbindingvpn-instancengn-vpnipaddress10.60.252.1255.255.255.240traffic-policytpaf4inboundarpbroadcastenable#--端口(单层vlan)配置段bgp65220--as号……peer58.43.0.164passwordcipher@%@%'pd&t4}ajlbl:s723r(n-!c_@%@%#……ipv4-familyvpn-instancecql3vpn-xinnongheyiliaonetwork136.27.4.0255.255.255.0network192.168.115.0255.255.255.128--发布network路由配置,地址段的起始/终止地址和端口地址段起始/终止地址相同(vpn、fttx语音)import-routedirectimport-routestatic#--对应vpn实例路由发布配置段……#--bgp路由发布配置段iproute-static172.12.1.8255.255.255.248202.98.59.130iproute-staticvpn-instancectvpn607327249-chengtoujinka172.12.1.8255.255.255.248202.98.59.130--下一跳地址(在端口地址段范围内)对应的静态路由配置,172.12.1.8255.255.255.248为用户地址,vpn-instance为vrf名称兼容其他各种格式:或者是能匹配子接口的iproute-static58.43.54.1255.255.255.255eth-trunk12.3iproute-static58.43.54.1255.255.255.255eth-trunk12.358.43.42.26iproute-static58.43.54.1255.255.255.25558.43.42.26preference200iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3iproute-staticvpn-instancecql3-iptv172.34.224.0255.255.224.0eth-trunk10.3172.17.3.218中兴中兴:showrunning-config!<vrf>ipvrfctvpn607162875-laobaozhongxin--vpn实例名称rd4809:1502022--rdaddress-familyipv4route-targetimport4809:150202200--importrtroute-targetexport4809:150202200--exportrt$$--vpn实例配置段……!</vrf>!<if-intf>interfacegei-0/1/1/4.101--子接口,101为子接口号descriptionctvpn607162875-laobaozhongxin(607332283)--端口描述ipvrfforwardingctvpn607162875-laobaozhongxin--端口绑定vpn实例名称ipaddress10.92.148.105255.255.255.252--端口地址,兼容多段$--端口配置段……!</if-intf>!<vlan>vlan-configuration……interfacegei-0/1/1/4.101qinqinternal-vlanid1500external-vlanid1501--内层vlan、外层vlan$--端口双层vlan配置段……interfacesmartgroup3.51encapsulation-dot1q51--单层vlan$--端口单层vlan配置段……$!</vlan>!<port-acl>interfacegei-0/1/1/4.101ipv4-access-groupegressyibao-permit--端口绑定出向访控模板名称$--端口绑定访控模板配置段……!</port-acl>!<car>qosinterfacexgei-0/2/0/1.3001rate-limitinputlocalportcir204800kbpscbs2048000pir204800kbpspbs2048000conform-actiontransmitexceed-actiondropviolate-actiondroprate-limitoutputlocalportcir204800kbpscbs2048000pir204800kbpspbs2048000conform-actiontransmitexceed-actiondropviolate-actiondrop$--端口限速配置段……$!</car>!<hqos>service-policygei-0/1/1/4.101inputbe--端口绑定入向访控模板(qos)名称$--端口引用模板配置段……!</hqos>!<urpf>interfacegei-0/1/1/4.101ipv4verifyunicastsourcereachable-viaany$--端口urpf配置段……!</urpf>!<bgp>routerbgp65220--as号synchronizationdisablebgprouter-id58.43.22.29address-familyipv4vrfcql3-iptvmaximum-pathsibgp4network172.1.0.132255.255.255.252network172.1.0.148255.255.255.252--发布network路由配置,地址段的起始/终止地址和端口地址段起始/终止地址相同(vpn、fttx语音)$--对应vpn实例的路由发布配置段……$--bgp路由发布配置段!</bgp>!<static>iproutevrfctvpn607451412-xishankeji192.168.8.0255.255.248.0172.16.2.2--下一跳地址(在端口地址段范围内)对应的静态路由配置,192.168.8.0255.255.248.0为用户地址,vrf为vrf名称兼容其他各种格式:或者是能匹配到子接口的iproute58.43.54.1255.255.255.255smartgroup3.101iproute58.43.54.1255.255.255.255smartgroup3.10158.43.42.26iproute58.43.54.1255.255.255.25558.43.42.26iproutevrfcql3-iptv172.34.224.0255.255.224.0smartgroup3.101iproutevrfcql3-iptv172.34.224.0255.255.224.0smartgroup3.101172.17.3.218!</static>基于同一发明构思,本发明还提出一种自动化专线中继割接装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本发明一实施例的自动化专线中继割接装置结构示意图。如图4所示,该装置包括:工单数据录入保存模块101,工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;工单数据包括:源/目标设备端口信息:源/目标a/b端设备和源/目标a/b端端口;其他信息:割接vlan、源中继标签、目标中继标签和割接备注;比较源a端和目标a端模块102,用于比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;比较源b端和目标b端模块103,用于比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程;同设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置并保存;删除源端口配置数据;在目标端口上配置源端口对应的专线信息;跨设备割接操作流程,包括:源端口配置信息输入;分析源端口上满足割接条件的所有专线信息配置;登录目标端设备;构建目标端新装配置下发指令;在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息;构建配置下发指令,包括:工单管理模块发起配置下发调用请求;配置下发模块调用配置命令模板进行配置;配置命令模板根据工单参数按设备厂家、源/目标端和是否跨厂家对配置下发命令进行分析和构建;执行构建好的命令序列,并返回执行结果。应当注意,尽管在上文详细描述中提及了自动化专线中继割接装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。基于前述发明构思,如图5所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述自动化专线中继割接方法。基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述自动化专线中继割接方法的计算机程序。本发明提出的自动化专线中继割接方法及装置,仅需提供割接源a/b端设备及端口、目标a/b端设备及端口和vlan信息,就可自动完成a端设备的删除业务操作和b端设备的新装业务操作。最终达成的目标包括:(1)自动化批量进行源端和目标端物理口或聚合口下所有专线割接配置操作。(2)将割接配置操作以工单方式进行管理,可查看下发详细日志。(3)支持多种割接业务场景。(4)支持多种设备厂家。(5)支持同设备、跨设备、跨厂家进行业务割接。虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种自动化专线中继割接方法,其特征在于,该方法包括:

    工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;

    比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;

    比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程。

    2.根据权利要求1所述的自动化专线中继割接方法,其特征在于,所述工单数据包括:

    源/目标设备端口信息:源/目标a/b端设备和源/目标a/b端端口;

    其他信息:割接vlan、源中继标签、目标中继标签和割接备注。

    3.根据权利要求1所述的自动化专线中继割接方法,其特征在于,同设备割接操作流程,包括:

    源端口配置信息输入;

    分析源端口上满足割接条件的所有专线信息配置并保存;

    删除源端口配置数据;

    在目标端口上配置源端口对应的专线信息。

    4.根据权利要求1所述的自动化专线中继割接方法,其特征在于,跨设备割接操作流程,包括:

    源端口配置信息输入;

    分析源端口上满足割接条件的所有专线信息配置;

    登录目标端设备;

    构建目标端新装配置下发指令;

    在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息。

    5.根据权利要求4所述的自动化专线中继割接方法,其特征在于,构建配置下发指令,包括:

    工单管理模块发起配置下发调用请求;

    配置下发模块调用配置命令模板进行配置;

    配置命令模板根据工单参数按设备厂家、源/目标端和是否跨厂家对配置下发命令进行分析和构建;

    执行构建好的命令序列,并返回执行结果。

    6.一种自动化专线中继割接装置,其特征在于,该装置包括:

    工单数据录入保存模块,工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;

    比较源a端和目标a端模块,用于比较源a端和目标a端是否同设备,若同设备,则登录源a端设备,执行同设备割接操作流程,否则登录源a端设备,执行跨设备割接操作流程;

    比较源b端和目标b端模块,用于比较源b端和目标b端是否同设备,若同设备,则登录源b端设备,执行同设备割接操作流程,否则登录源b端设备,执行跨设备割接操作流程。

    7.根据权利要求6所述的自动化专线中继割接装置,其特征在于,所述工单数据包括:

    源/目标设备端口信息:源/目标a/b端设备和源/目标a/b端端口;

    其他信息:割接vlan、源中继标签、目标中继标签和割接备注。

    8.根据权利要求6所述的自动化专线中继割接装置,其特征在于,同设备割接操作流程,包括:

    源端口配置信息输入;

    分析源端口上满足割接条件的所有专线信息配置并保存;

    删除源端口配置数据;

    在目标端口上配置源端口对应的专线信息。

    9.根据权利要求6所述的自动化专线中继割接装置,其特征在于,跨设备割接操作流程,包括:

    源端口配置信息输入;

    分析源端口上满足割接条件的所有专线信息配置;

    登录目标端设备;

    构建目标端新装配置下发指令;

    在目标端口上配置源端口对应的专线信息,否则登录源端设备,构建源端端口删除配置下发指令,在源端端口上删除对应的专线信息。

    10.根据权利要求9所述的自动化专线中继割接装置,其特征在于,构建配置下发指令,包括:

    工单管理模块发起配置下发调用请求;

    配置下发模块调用配置命令模板进行配置;

    配置命令模板根据工单参数按设备厂家、源/目标端和是否跨厂家对配置下发命令进行分析和构建;

    执行构建好的命令序列,并返回执行结果。

    11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5任一项所述方法。

    12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-5任一项所述方法的计算机程序。

    技术总结
    本发明公开一种自动化专线中继割接方法及装置,其中,该方法包括:工单数据录入并根据录入的工单数据按工单数据模型进行保存,包括:割接表、工单表和工单参数表;比较源A端和目标A端是否同设备,若同设备,则登录源A端设备,执行同设备割接操作流程,否则登录源A端设备,执行跨设备割接操作流程;比较源B端和目标B端是否同设备,若同设备,则登录源B端设备,执行同设备割接操作流程,否则登录源B端设备,执行跨设备割接操作流程。该方法及装置实现对专线中继割接的自动化管理,支持多种中继割接场景,大大提升了中继割接的操作效率。

    技术研发人员:闵莽锐
    受保护的技术使用者:中盈优创资讯科技有限公司
    技术研发日:2020.11.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8705.html

    最新回复(0)