CN113220413B - 虚拟机迁移后清除交换机旧端口arp表项的方法及系统 - Google Patents
虚拟机迁移后清除交换机旧端口arp表项的方法及系统 Download PDFInfo
- Publication number
- CN113220413B CN113220413B CN202110431505.3A CN202110431505A CN113220413B CN 113220413 B CN113220413 B CN 113220413B CN 202110431505 A CN202110431505 A CN 202110431505A CN 113220413 B CN113220413 B CN 113220413B
- Authority
- CN
- China
- Prior art keywords
- switch
- address
- virtual machine
- physical machine
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013508 migration Methods 0.000 title claims description 47
- 230000005012 migration Effects 0.000 title claims description 45
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 15
- 238000004140 cleaning Methods 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 9
- 230000032683 aging Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种虚拟机迁移后清除交换机旧端口ARP表项的方法及系统,虚拟机设于第一物理机内且该虚拟机通过连接于第一物理机的交换机;Client端调用开源工具的链接函数与连接于第一物理机的交换机建立NETCONF会话;Client端向该交换机发送动态ARP表项查询的RPC请求,用于获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;Client端根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,交换机清除该虚拟机的ip地址所对应的动态ARP表项。在虚拟机发生迁移时自动删除交换机旧端口上的ARP表项,整个过程不再需要人工干预。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种虚拟机迁移后清除交换机旧端口ARP表项的方法及系统。
背景技术
虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟化软件,用户可以在一台物理服务器上模拟出一台或多台虚拟的服务器,服务器硬件资源经过虚拟化技术变成一个可以拆分的资源,拆分后的资源也就是一个个虚拟机,都拥有完整的原有硬件可提供的服务能力。迁移是指将虚拟机从一个计算节点迁移到另外一个节点上。虚拟机迁移技术能够降低数据中心故障发生的概率,提升了物理服务器的利用率,节约能耗,已经成为数据中心必备的技术之一。
虚拟机发生迁移时,要求不影响或尽可能短时间影响业务,一般要求迁移前后虚拟机的ip地址保持一致。迁移时虚拟机会从一台服务器,到达另一台服务器,当两台服务器连接在不同的交换机端口时,交换机中旧端口的ARP表项存在残留,不会自动随着虚拟机的迁移刷新ARP到新的端口,迁移后的虚拟机会出现流量不通的情况,导致一定时间的业务中断。此时间间隔是原来端口的ARP老化时间。为了网络上下挂服务器的稳定以及减少ARP报文的数量,通常ARP老化时间值不会设置太小。为了使迁移后的虚拟机尽快可用,需要网络维护人员人工登录交换机使用命令行删除ARP表项,删除ARP表项时还需先通过命令行查询ARP交换机旧端口的名称,根据端口删除对应的ARP表项。
图3是数据中心交换机去堆叠场景下的网络拓扑图,DSW是数据中心交换机,switch为与物理服务器连接的交换机;若物理服务器Server1下有一台虚拟机VM1需从Server1迁移到服务器Server3下,迁移时间取决于上层交换机设备上vlan接口的ARP老化时间,原因是去堆叠方案中主机明细路由的生成是通过ARP生成的,如果接口状态为down的情况下ARP立即删除,但是在虚机迁移的情况下是不能立即删除的,需要等到ARP老化后才能删除。此时对于上行交换机设备会一直存在虚机迁移前所在位置的明细路由,导致部分流量hash到迁移前的接入设备上,流量被丢弃。
目前,数据中心虚拟机迁移一般要求保持迁移前后虚拟机的ip地址不变,在大二层的网络中进行。对于三层网络和跨数据中心迁移,为了缩短虚拟机迁移的时间,减小对业务的影响,需要尽快清除交换机旧端口上过时的ARP表项。一般的解决办法是网络维护人员跟据虚拟机所在物理机的ip地址,确定其上连的交换机,通过telnet登录到对应的交换机上通过人工输入命令行的方式查找虚拟机ip地址对应的端口及端口的ARP表项,手动删除ARP表项。或者等待交换机旧端口ARP表项老化,新的动态ARP表项生效,迁移后的虚拟机流量就可恢复正常。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:清除ARP表项需要网络维护人员手动操作,耗费人力,不符合运维自动化宗旨,难以做到7x24小时即刻响应。当需要迁移的虚拟机数量较多时,迁移工作的效率会变得非常低。
发明内容
本发明实施例提供虚拟机迁移后清除交换机旧端口ARP表项的方法及系统,在虚拟机发生迁移时自动删除交换机旧端口上的ARP表项,整个过程不再需要人工干预。
为达上述目的,一方面,本发明实施例提供一种虚拟机迁移后清除交换机旧端口ARP表项的方法,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的方法,包括:
根据该虚拟机的ip地址和第一物理机的ip地址,客户端Client端调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现Client端与第一物理机的交换机之间的通信;
在Client端与第一物理机的交换机建立NETCONF会话之后,Client端向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
Client端在该交换机获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;交换机根据清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。
另一方面,本发明实施例提供一种虚拟机迁移后清除交换机旧端口ARP表项的系统,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的系统,包括:
Client端,用于根据该虚拟机的ip地址和第一物理机的ip地址,调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现其与第一物理机的交换机之间的通信;
在其与第一物理机的交换机建立NETCONF会话之后,向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
在获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;
交换机,用于在该客户端Client端与其建立NETCONF会话后,接收Client端发送的动态ARP表项查询的RPC请求,并将该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称返回给Client端;以及,
接收Client端发送的清除该端口下动态ARP表项的RPC请求,根据Client端发送的清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。
上述技术方案具有如下有益效果:在虚拟机发生迁移时自动删除交换机旧端口上的ARP表项,整个过程不再需要人工干预。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一虚拟机迁移后清除交换机旧端口ARP表项的方法流程图;
图2是本发明实施例的虚拟机迁移后清除交换机旧端口ARP表项的系统结构图;
图3是现有技术的去堆叠场景下网络拓扑图;
图4是本发明实施例的另一虚拟机迁移后清除交换机旧端口ARP表项的方法流程图;
图5是NETCONF报文结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明的实施例,提供一种虚拟机迁移后清除交换机旧端口ARP表项的方法,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的方法,包括:
S101:根据该虚拟机的ip地址和第一物理机的ip地址,客户端Client端调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现Client端与第一物理机的交换机之间的通信;
S102:在Client端与第一物理机的交换机建立NETCONF会话之后,Client端向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
S103:Client端在该交换机获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;交换机根据清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。
优选地,在步骤101之前还包括:
S104:Client端检查向其输入的该虚拟机的ip地址和第一物理机的ip地址是否合法,当确认该虚拟机的ip地址和第一物理机的ip地址合法后,连接关系型数据库服务器;
S105:Client端在关系型数据库服务器的地址记录表中执行查询操作,通过查询关系型数据库的地址记录表获取第一物理机连接的交换机的ip地址;其中,所述地址记录表为关系型数据库内记录有各物理机的ip地址信息和连接于相应物理机的交换机的ip地址信息的表;
S106:当在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,则获取连接于第一物理机的该交换机的ip地址。
优选地,在步骤101之前还包括:
S107:当Client端确认该虚拟机的ip地址和第一物理机的ip地址不合法时,返回该虚拟机ip地址和第一物理机的ip地址不合法的提示;
S108:当Client端在关系型数据库的地址记录表中未查询到第一物理机所连接的该交换机的ip地址的记录时,该关系型数据向Client端返回查询为空的提示;
在步骤102中,在Client端向该交换机发送动态ARP表项查询的RPC请求之后,还包括:
当该交换机不能返回Client端所需的该虚拟机在交换机的ARP表项对应的端口名称时,该交换机向Client端返回携带错误信息的获取端口名称失败的提示。
优选地,在步骤101之前还包括:
S109:在交换机上配置SSH用户,所述SSH用户使用具有SSH传输层协议的NETCONF协议;通过NETCONF协议RPC实现Client端与交换机之间的通信;
S110:在Client端设置采用python语言的ncclient工具,所述ncclient工具具有应用程序接口API;通过API实现将NETCONF协议的XML编码特性映射到Python结构,以实现Client端与交换机的NETCONF会话。
优选地,将该虚拟机自第一物理机向第二物理机迁移时,具体是指:将该虚拟机自第一物理机下线之后、以及将该虚拟机向第二物理机迁移上线之前。
如图2所示,本发明还提供一种虚拟机迁移后清除交换机旧端口ARP表项的系统,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的系统,包括:
Client端21,用于根据该虚拟机的ip地址和第一物理机的ip地址,调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现其与第一物理机的交换机之间的通信;
在其与第一物理机的交换机建立NETCONF会话之后,向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
在获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;
交换机22,用于在该客户端Client端与其建立NETCONF会话后,接收Client端发送的动态ARP表项查询的RPC请求,并将该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称返回给Client端;以及,
接收Client端发送的清除该端口下动态ARP表项的RPC请求,根据Client端发送的清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。。
优选地,所述虚拟机迁移后清除交换机旧端口ARP表项的系统,还包括关系型数据库服务器23,其中:
所述Client端21,还用于还用于在根据该虚拟机的ip地址和第一物理机的ip地址,调用开源工具的链接函数,通过链接函数与该交换机建立NETCONF会话之前,检查向其输入的该虚拟机的ip地址和第一物理机的ip地址是否合法,当确认该虚拟机的ip地址和第一物理机的ip地址合法后,连接关系型数据库服务器;在关系型数据库服务器的地址记录表中执行查询操作,通过查询关系型数据库的地址记录表获取第一物理机连接的交换机的ip地址;当在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,则获取连接于第一物理机的该交换机的ip地址;
所述关系型数据库服务器23,用于保存关系型数据库,在关系型数据库设有地址记录表,所述地址记录表记录有各物理机的ip地址信息和连接于相应物理机的交换机的ip地址信息;
当Client端在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,向Client端返回连接于第一物理机的该交换机的ip地址。
优选地,
所述关系型数据库服务器23,还用于在关系型数据库的地址记录表中未查询到第一物理机所连接的该交换机的ip地址的记录时,向Client端返回查询为空的提示;
所述交换机22,还用于在Client端向该交换机发送动态ARP表项查询的RPC请求之后,当不能返回Client端所需的该虚拟机在交换机的ARP表项对应的端口名称时,向Client端返回携带错误信息的获取端口名称失败的提示;
所述客户端21,还用于当确认该虚拟机的ip地址和第一物理机的ip地址不合法时,返回该虚拟机ip地址和第一物理机的ip地址不合法的提示;
接收关系型数据库服务器返回的查询为空的提示;
接收交换机返回的携带错误信息的获取端口名称失败的提示。
优选地,
所述交换机22上配置SSH用户,所述SSH用户使用具有SSH传输层协议的NETCONF协议;通过NETCONF协议RPC实现Client端与交换机之间的通信;
所述Client端21设置有采用python语言的ncclient工具,所述ncclient工具具有应用程序接口API;通过API实现将NETCONF协议的XML编码特性映射到Python结构,以实现与交换机的NETCONF会话。
优先地,将该虚拟机自第一物理机向第二物理机迁移时,具体是指:将该虚拟机自第一物理机下线之后、以及将该虚拟机向第二物理机迁移上线之前。
本发明所取得的有益效果如下:
(1)在虚拟机发生迁移时自动删除交换机旧端口上的ARP表项,整个过程不再需要人工干预。
(2)现有技术中虚拟机迁移时间长,旧端口ARP表项老化速度慢,提前清除ARP需要登录设备下发命令行,效率低,对业务影响大。本发明在虚拟机发生迁移时快速地删除其拆除前所连接的交换机旧端口上的ARP表项,解决ARP表项残留问题,不需要再等待ARP表项老化,使迁移后的虚拟机流量尽快恢复。
(3)现有技术中,流程复杂,易出错。清除动态ARP表项需要维护人员根据虚拟机所在物理机的ip地址查找其对应的交换机,登录设备输入删除ARP表项命令行,一旦输入命令行有误或登录到错误的交换机上进行操作,可能影响网络中的其他设备,产生其他网络问题。通过本发明提高大量虚拟机发生迁移时的工作效。
下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
本发明所涉及的技术术语、缩略语释义如下:
ARP列表,是获取到的最近一段时间内使用过的IP地址(ip地址)与MAC地址的对应关系。
XML编码:XML作为NETCONF协议的编码格式,用文本表示复杂的层次化数据,既支持使用传统的文本编译工具,也支持使用XML专用的编辑工具读取、保存和操作配置数据。NETCONF协议中的所有标准元素都在名字空间urn:ietf:params:xml:ns:netconf:base:1.0进行定义。NETCONF协议要求XML文本内容中不能出现文档类型声明。基于XML网络管理的主要思想是利用XML强大的数据表示能力,使用XML来描述被管理数据和管理操作,使管理信息成为计算机可以理解的数据库,提高计算机对网络管理数据的处理能力,从而提高网络管理能力。
RPC模式:NETCONF协议使用RPC通信模式,采用XML编码的<rpc>和<rpc-reply>元素提供独立于传输层协议的请求和回应消息框架。
本发明为一种虚拟机迁移后清除交换机旧端口ARP表项的方法及系统,技术方案详细阐述如下:
利用ncclient开源工具和交换机的NETCONF功能,编写python语言的程序,实现在虚拟机发生迁移时,自动且快速地删除交换机旧端口ARP表项的功能。
NETCONF,指Network Configuration Protocol,是基于可扩展标记语言XML(Extensible Markup Language)的网络配置和管理协议,使用简单的基于RPC
(Remote Procedure Call)机制实现客户端和服务器之间通信。客户端可以是脚本或者网管上运行的一个应用程序。服务器是一个典型的网络设备。
ncclient是一个开源的、用于NETCONF客户端的Python库。它提供一个直观的API,将NETCONF的XML编码特性映射到Python构造和习语,能够支持市场上常见的多个厂家所产的交换机。基于XML的网络管理的主要优点:具有强大的数据表示能力;方便高效安全的进行大量数据传输;很好的适应网络配置管理的需求。
环境准备:
(1)在数据中心的交换机设备(也就是连接于物理机的交换机设备,其中,虚拟机设于物理机内)上配置SSH用户,使能NETCONF功能。
(2)在要运行自动删除ARP程序的机器(客户端)上安装ncclient工具。
(3)新建一个关系型数据库,将虚拟机所在物理机(宿主机)的ip地址与其上连交换机的管理ip地址信息记录到数据库的表中,按预设更新频率定期更新。更新频率可根据网络设备变动的频繁程度而定。
虚拟机发生迁移时,已知虚拟机的ip地址和虚拟机所在物理机(宿主机)的ip地址。
根据如下操作步骤中的5个步骤编写python脚本,在虚拟机发生迁移时调用执行python此脚本,可以实现自动且快速地删除交换机旧端口动态ARP表项的功能。
虚拟机发生迁移时(将该虚拟机自第一物理机向第二物理机迁移时,具体是指:将该虚拟机自第一物理机下线之后、以及将该虚拟机向第二物理机迁移上线之前),已知虚拟机的ip地址和虚拟机所在第一物理机(宿主机)的ip地址。python程序为client、交换机设备为server。如图4所示,本发明技术方案的流程(步骤)如下:
1、client端检查输入的虚拟机ip地址和虚拟机所在物理机(宿主机)的ip地址是否合法(合法是指ip地址的格式类型是否正确,用于排出非系统内的虚拟机、物理逐级)。无误后连接数据库服务器。
2、client端在数据库表中执行查询操作,获取宿主机对应上连交换机的管理ip地址。
3、clinet端调用开源工具ncclient的connect函数(链接函数),与交换机建立NETCONF会话,通过所述NETCONF会话实现Client端与第一物理机的交换机之间的通信。
4、在Client端与第一物理机的交换机建立NETCONF会话之后,client端向server端发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;server收到后正常情况下会向client回复虚拟机ip地址的ARP表项对应的端口名称。其中,ARP表项用于存储虚拟机的ip地址和mac地址的映射关系。
5、client端获取到端口名称后,发送清除指定接口下动态ARP表项的RPC请求,server端收到请求后正常情况下执行清除动态ARP表项操作,完成后向client回复带有OK字符的RPC replay消息。
6、client端判断server回复的信息,查找到OK代表操作成功,查找到ERROR或超时未收到Replay消息代表操作失败。
本发明可以实现自动且快速的清除交换机旧端口动态ARP表项,整个过程不需要人工干预,缩短了虚拟机迁移的时间。一般情况下,删除一条ARP表项仅需要1至3秒的时间。
本发明中将虚拟机所在物理机(宿主机)的ip地址与其上连交换机的ip地址信息记录到数据库的表中,通过程序中自动查数据库中的表找并登录交换机,减少了人工操作,降低了错误发生的概率。
交换机上支持配置特定用户执行NETCONF操作和访问NETCONF资源的权限,提供了认证、鉴权等安全机制,保证了设备的安全性。同时,支持批量操作,可以一次连接删除多个过时的ARP表项。本法的技术方案可支持不同类型的设备,可以便捷地嵌入网管平台中。
也就是在虚拟机发生迁移时,使用NETCONF协议对交换机下发命令,编写python程序实现了运维自动化。将虚拟机所在物理机(宿主机)的ip地址与其上连交换机的ip地址信息记录到数据库的表中,程序自动查找,降低人工操作失误带来的风险。
本发明所取得的有益效果如下:
(1)在虚拟机发生迁移时自动删除交换机旧端口上的ARP表项,整个过程不再需要人工干预。
(2)现有技术中虚拟机迁移时间长,旧端口ARP表项老化速度慢,提前清除ARP需要登录设备下发命令行,效率低,对业务影响大。本发明在虚拟机发生迁移时快速地删除其拆除前所连接的交换机旧端口上的ARP表项,解决ARP表项残留问题,不需要再等待ARP表项老化,使迁移后的虚拟机流量尽快恢复。
(3)现有技术中,流程复杂,易出错。清除ARP表项需要维护人员根据虚拟机所在物理机的ip地址查找其对应的交换机,登录设备输入删除ARP表项命令行,一旦输入命令行有误或登录到错误的交换机上进行操作,可能影响网络中的其他设备,产生其他网络问题。通过本发明提高大量虚拟机发生迁移时的工作效。
另外,NETCONF报文流程图如图5所示,NETCONF会话建立和关闭的基本流程如下:
1.客户端触发NETCONF会话建立,完成SSH连接建立,并进行认证与授权。
2.客户端和服务器完成NETCONF会话建立和能力协商。
3.客户端发送一个或多个请求给服务器,进行RPC交互(鉴权)。例如:
–修改并提交配置。
–查询配置数据或状态。
–对设备进行维护操作。
4.客户端关闭NETCONF会话。
5.SSH连接关闭。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种虚拟机迁移后清除交换机旧端口ARP表项的方法,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的方法,其特征在于,包括:
根据该虚拟机的ip地址和第一物理机的ip地址,Client端调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现Client端与第一物理机的交换机之间的通信;
在Client端与第一物理机的交换机建立NETCONF会话之后,Client端向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
Client端在该交换机获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;交换机根据清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。
2.根据权利要求1所述的虚拟机迁移后清除交换机旧端口ARP表项的方法,其特征在于,在根据该虚拟机的ip地址和第一物理机的ip地址,Client端调用开源工具的链接函数,通过链接函数与该交换机建立NETCONF会话之前,还包括:
Client端检查向其输入的该虚拟机的ip地址和第一物理机的ip地址是否合法,当确认该虚拟机的ip地址和第一物理机的ip地址合法后,连接关系型数据库服务器;
Client端在关系型数据库服务器的地址记录表中执行查询操作,通过查询关系型数据库的地址记录表获取第一物理机连接的交换机的ip地址;其中,所述地址记录表为关系型数据库内记录有各物理机的ip地址信息和连接于相应物理机的交换机的ip地址信息的表;
当在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,则获取连接于第一物理机的该交换机的ip地址。
3.根据权利要求2所述的虚拟机迁移后清除交换机旧端口ARP表项的方法,其特征在于,在根据该虚拟机的ip地址和第一物理机的ip地址,Client端调用开源工具的链接函数,通过链接函数与该交换机建立NETCONF会话之前,还包括:
当Client端确认该虚拟机的ip地址和第一物理机的ip地址不合法时,返回该虚拟机ip地址和第一物理机的ip地址不合法的提示;
当Client端在关系型数据库的地址记录表中未查询到第一物理机所连接的该交换机的ip地址的记录时,该关系型数据向Client端返回查询为空的提示;以及,
在Client端向该交换机发送动态ARP表项查询的RPC请求之后,还包括:
当该交换机不能返回Client端所需的该虚拟机在交换机的ARP表项对应的端口名称时,该交换机向Client端返回携带错误信息的获取端口名称失败的提示。
4.根据权利要求1所述的虚拟机迁移后清除交换机旧端口ARP表项的方法,其特征在于,在Client端调用开源工具的链接函数,通过链接函数与该交换机建立NETCONF会话之前,还包括:
在交换机上配置SSH用户,所述SSH用户使用具有SSH传输层协议的NETCONF协议;通过NETCONF协议RPC实现Client端与交换机之间的通信;
在Client端设置采用python语言的ncclient工具,所述ncclient工具具有应用程序接口API;通过API实现将NETCONF协议的XML编码特性映射到Python结构,以实现Client端与交换机的NETCONF会话。
5.根据权利要求1所述的虚拟机迁移后清除交换机旧端口ARP表项的方法,其特征在于,将该虚拟机自第一物理机向第二物理机迁移时,具体是指:将该虚拟机自第一物理机下线之后、以及将该虚拟机向第二物理机迁移上线之前。
6.一种虚拟机迁移后清除交换机旧端口ARP表项的系统,虚拟机设于第一物理机内、且该虚拟机通过连接于第一物理机的交换机接收流量,当将该虚拟机自第一物理机向第二物理机迁移时,所述虚拟机迁移后清除交换机旧端口地址解析协议ARP表项的系统,其特征在于,包括:
Client端,用于根据该虚拟机的ip地址和第一物理机的ip地址,调用开源工具的链接函数,通过链接函数与连接于第一物理机的交换机建立NETCONF会话,通过所述NETCONF会话实现其与第一物理机的交换机之间的通信;
在其与第一物理机的交换机建立NETCONF会话之后,向该交换机发送动态ARP表项查询的远程过程调用RPC请求,通过所述动态ARP表项查询的RPC请求获取该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称;ARP表项用于存储虚拟机的ip地址和mac地址的映射关系;
在获取到该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称后,根据交换机的端口名称向交换机发送清除该端口下动态ARP表项的RPC请求,所述清除该端口下动态ARP表项的RPC请求携带该虚拟机的ip地址;
交换机,用于在该Client端与其建立NETCONF会话后,接收Client端发送的动态ARP表项查询的RPC请求,并将该虚拟机设于第一物理机时、该虚拟机在交换机的ARP表项对应的端口名称返回给Client端;以及,
接收Client端发送的清除该端口下动态ARP表项的RPC请求,根据Client端发送的清除该端口下动态ARP表项的RPC请求清除该虚拟机的ip地址所对应的动态ARP表项。
7.根据权利要求6所述的虚拟机迁移后清除交换机旧端口ARP表项的系统,其特征在于,所述虚拟机迁移后清除交换机旧端口ARP表项的系统,还包括关系型数据库服务器,其中:
所述Client端,还用于在根据该虚拟机的ip地址和第一物理机的ip地址,调用开源工具的链接函数,通过链接函数与该交换机建立NETCONF会话之前,检查向其输入的该虚拟机的ip地址和第一物理机的ip地址是否合法,当确认该虚拟机的ip地址和第一物理机的ip地址合法后,连接关系型数据库服务器;在关系型数据库服务器的地址记录表中执行查询操作,通过查询关系型数据库的地址记录表获取第一物理机连接的交换机的ip地址;当在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,则获取连接于第一物理机的该交换机的ip地址;
所述关系型数据库服务器,用于保存关系型数据库,在关系型数据库设有地址记录表,所述地址记录表记录有各物理机的ip地址信息和连接于相应物理机的交换机的ip地址信息;当Client端在关系型数据库查询到第一物理机所连接的该交换机的ip地址的记录之后,向Client端返回连接于第一物理机的该交换机的ip地址。
8.根据权利要求7所述的虚拟机迁移后清除交换机旧端口ARP表项的系统,其特征在于:
所述关系型数据库服务器,还用于在关系型数据库的地址记录表中未查询到第一物理机所连接的该交换机的ip地址的记录时,向Client端返回查询为空的提示;
所述交换机,还用于在Client端向该交换机发送动态ARP表项查询的RPC请求之后,当不能返回Client端所需的该虚拟机在交换机的ARP表项对应的端口名称时,向Client端返回携带错误信息的获取端口名称失败的提示;
所述Client端,还用于当确认该虚拟机的ip地址和第一物理机的ip地址不合法时,返回该虚拟机ip地址和第一物理机的ip地址不合法的提示;接收关系型数据库服务器返回的查询为空的提示;接收交换机返回的携带错误信息的获取端口名称失败的提示。
9.根据权利要求6所述的虚拟机迁移后清除交换机旧端口ARP表项的系统,其特征在于:
所述交换机上配置SSH用户,所述SSH用户使用具有SSH传输层协议的NETCONF协议;通过NETCONF协议RPC实现Client端与交换机之间的通信;
所述Client端设置有采用python语言的ncclient工具,所述ncclient工具具有应用程序接口API;通过API实现将NETCONF协议的XML编码特性映射到Python结构,以实现与交换机的NETCONF会话。
10.根据权利要求6所述的虚拟机迁移后清除交换机旧端口ARP表项的系统,其特征在于,将该虚拟机自第一物理机向第二物理机迁移时,具体是指:将该虚拟机自第一物理机下线之后、以及将该虚拟机向第二物理机迁移上线之前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110431505.3A CN113220413B (zh) | 2021-04-21 | 2021-04-21 | 虚拟机迁移后清除交换机旧端口arp表项的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110431505.3A CN113220413B (zh) | 2021-04-21 | 2021-04-21 | 虚拟机迁移后清除交换机旧端口arp表项的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220413A CN113220413A (zh) | 2021-08-06 |
CN113220413B true CN113220413B (zh) | 2023-11-21 |
Family
ID=77088262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110431505.3A Active CN113220413B (zh) | 2021-04-21 | 2021-04-21 | 虚拟机迁移后清除交换机旧端口arp表项的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220413B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598645A (zh) * | 2022-01-30 | 2022-06-07 | 阿里云计算有限公司 | 流表项的控制方法以及装置 |
CN115297055B (zh) * | 2022-07-25 | 2024-01-23 | 紫光云技术有限公司 | 一种公有云云主机迁移arp表项更新方法 |
CN117857484A (zh) * | 2022-09-30 | 2024-04-09 | 中兴通讯股份有限公司 | 报文转发方法、通信设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152200A (zh) * | 2013-03-07 | 2013-06-12 | 华为技术有限公司 | 虚拟机迁移方法、交换机、网络管理设备和网络系统 |
WO2013097067A1 (zh) * | 2011-12-26 | 2013-07-04 | 华为技术有限公司 | 一种虚拟机迁移后实现通信的方法、设备和系统 |
CN111736958A (zh) * | 2020-06-29 | 2020-10-02 | 中国联合网络通信集团有限公司 | 虚拟机迁移方法、系统、计算机设备及存储介质 |
-
2021
- 2021-04-21 CN CN202110431505.3A patent/CN113220413B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097067A1 (zh) * | 2011-12-26 | 2013-07-04 | 华为技术有限公司 | 一种虚拟机迁移后实现通信的方法、设备和系统 |
CN103534994A (zh) * | 2011-12-26 | 2014-01-22 | 华为技术有限公司 | 一种虚拟机迁移后实现通信的方法、设备和系统 |
CN103152200A (zh) * | 2013-03-07 | 2013-06-12 | 华为技术有限公司 | 虚拟机迁移方法、交换机、网络管理设备和网络系统 |
CN111736958A (zh) * | 2020-06-29 | 2020-10-02 | 中国联合网络通信集团有限公司 | 虚拟机迁移方法、系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113220413A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220413B (zh) | 虚拟机迁移后清除交换机旧端口arp表项的方法及系统 | |
RU2413982C2 (ru) | Хранение и разрешение в dns филиала | |
US7831697B2 (en) | Mapping notification system for relating static identifier to dynamic address | |
JP2019525631A (ja) | 転送ポリシーの構成 | |
CN102918803B (zh) | 用于管理来自设备管理服务器的消息的方法及其网关设备 | |
US8762507B1 (en) | Method and system for managing an information technology system | |
CA2569665C (en) | A generic framework for developing ems provisioning services | |
CN101163043B (zh) | 一种网络管理功能配置方法以及网络管理功能配置系统 | |
JP5753629B2 (ja) | モバイルブロードバンドデバイスを管理する方法、デバイス及びシステム | |
EP1704672A1 (en) | Automatic update system and method for using a meta mib | |
CN110661670A (zh) | 一种网络设备配置管理方法及装置 | |
CN104219327A (zh) | 一种分布式缓存系统 | |
EP3407573A1 (en) | System and method for domain name system using a pool management service | |
CN113709250B (zh) | 一种基于订阅发送模式的跨域用户数据同步方法 | |
CN107995321A (zh) | 一种vpn客户端代理dns的方法及装置 | |
CN114567553A (zh) | 一种基于工业互联网标识解析体系的设备入网方法及装置 | |
CN111371897B (zh) | 一种基于组网系统的反向连接方法、装置及存储介质 | |
EP2360869A1 (en) | Method and apparatus for managing object instance alias | |
CN114157639B (zh) | 服务器智能网卡信息采集的方法、装置、设备及可读介质 | |
CN111405018A (zh) | 一种文件传输方法、装置、电子设备及存储介质 | |
CN107911496A (zh) | 一种vpn服务端代理dns的方法及装置 | |
CN108712514A (zh) | Ip地址管理方法、装置以及电子设备 | |
JP2016144186A (ja) | 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム | |
CN109639784B (zh) | 服务器管理信息获取方法、装置、客户端及存储介质 | |
WO2017000669A1 (zh) | 域名资源记录缓存的集中管控方法、装置和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230407 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant after: Sina Technology (China) Co.,Ltd. Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant before: Sina.com Technology (China) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |