CN106550059A - 一种arp请求的响应方法和装置 - Google Patents

一种arp请求的响应方法和装置 Download PDF

Info

Publication number
CN106550059A
CN106550059A CN201610958185.6A CN201610958185A CN106550059A CN 106550059 A CN106550059 A CN 106550059A CN 201610958185 A CN201610958185 A CN 201610958185A CN 106550059 A CN106550059 A CN 106550059A
Authority
CN
China
Prior art keywords
address
packet
flow table
mac address
arp request
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.)
Pending
Application number
CN201610958185.6A
Other languages
English (en)
Inventor
樊兴军
王健杰
高福信
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STATE INFORMATION CENTER
Dawning Information Industry Beijing Co Ltd
Original Assignee
STATE INFORMATION CENTER
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STATE INFORMATION CENTER, Dawning Information Industry Beijing Co Ltd filed Critical STATE INFORMATION CENTER
Priority to CN201610958185.6A priority Critical patent/CN106550059A/zh
Publication of CN106550059A publication Critical patent/CN106550059A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出了一种ARP请求的响应方法和装置,该ARP请求的响应方法包括:获取ARP请求的数据包;将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;根据IP地址和MAC地址,构造ARP请求的响应包。本发明通过获取ARP请求的数据包,并将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系,最后根据IP地址和MAC地址,构造ARP请求的响应包,从而能够在本地物理主机回应虚拟机的ARP广播,从而大大减轻网络上的ARP风暴,提高网络性能。

Description

一种ARP请求的响应方法和装置
技术领域
本发明涉及通信领域,具体来说,涉及一种ARP请求的响应方法和装置。
背景技术
在云计算环境下,经过计算虚拟化以后,传统数据中心的网卡数量会成几十倍的往上整加,那么在传统网络中会产生大量的ARP包,严重消耗网络带宽,其中,ARP(AddressResolution Protocol,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种ARP请求的响应方法和装置,能够在本地物理主机回应虚拟机的ARP广播,从而大大减轻网络上的ARP风暴,提高网络性能。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种ARP请求的响应方法。
该响应方法包括:获取ARP请求的数据包;将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;根据IP地址和MAC地址,构造ARP请求的响应包。
根据本发明的一个实施例,将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址包括:将数据包和OpenFlow流表中的每条流表规则相匹配;在数据包和流表规则匹配的情况下,获取与数据包中的IP地址对应的MAC地址;在数据包和流表规则不匹配的情况下,洪泛ARP请求的数据包。
根据本发明的一个实施例,进一步包括:数据库中存储有所有虚拟机的IP地址和MAC地址。
根据本发明的一个实施例,进一步包括:将数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至OpenFlow流表。
根据本发明的另一方面,提供了一种ARP请求的响应装置。
该响应装置包括:获取模块,用于获取ARP请求的数据包;
匹配模块,用于将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;
构造模块,用于根据IP地址和MAC地址,构造ARP请求的响应包。
根据本发明的一个实施例,匹配模块包括:匹配子模块,用于将数据包和OpenFlow流表中的每条流表规则相匹配;获取子模块,在数据包和流表规则匹配的情况下,获取与数据包中的IP地址对应的MAC地址;洪泛模块,用于在数据包和流表规则不匹配的情况下,洪泛ARP请求的数据包。
根据本发明的一个实施例,进一步包括:存储模块,用于在数据库中存储所有虚拟机的IP地址和MAC地址。
根据本发明的一个实施例,进一步包括:同步模块,用于将数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至OpenFlow流表。
本发明的有益技术效果在于:
本发明通过获取ARP请求的数据包,并将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系,最后根据IP地址和MAC地址,构造ARP请求的响应包,从而能够在本地物理主机回应虚拟机的ARP广播,从而大大减轻网络上的ARP风暴,提高网络性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1是根据本发明实施例的ARP请求的响应方法的流程图;
图2是根据本发明实施例的OVS流表之间的关系和数据包的处理流程图;
图3是根据本发明实施例的ARP请求的响应装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获取的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种ARP请求的响应方法。
如图1所示,根据本发明实施例的响应方法包括:
步骤S101,获取ARP请求的数据包;
步骤S103,将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系,该OpenFlow流表是通过OpenFlow协议对Flow流表进行编程;
步骤S105,根据IP地址和MAC地址,构造ARP请求的响应包。
通过本发明的上述方案,能够通过获取ARP请求的数据包,并将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系,最后根据IP地址和MAC地址,构造ARP请求的响应包,从而能够在本地物理主机回应虚拟机的ARP广播,从而大大减轻网络上的ARP风暴,提高网络性能。
根据本发明的一个实施例,将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址包括:将数据包和OpenFlow流表中的每条流表规则相匹配;在数据包和流表规则匹配的情况下,获取与数据包中的IP地址对应的MAC地址;在数据包和流表规则不匹配的情况下,洪泛ARP请求的数据包,其中,该洪泛仅要求接收到的信息的节点以广播方式转发数据包。
根据本发明的一个实施例,进一步包括:数据库中存储有所有虚拟机的IP地址和MAC地址。
根据本发明的一个实施例,进一步包括:将数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至OpenFlow流表。
为了更好的描述本发明,下面通过一个具体的实施例对本发明进行详细地描述。
OVS(open vswitch,开放虚拟交换标准)流表支持255个流表,如图2所示,本发明使用了其中的0-22号流表,当然可以理解,可根据实际需求对OVS流量中使用流表进行设置,例如,根据本发明的一个实施例,本发明使用其中的0-25号流表,本发明对此不做限定,下面对0-22号流表进行详细的描述,具体如下:
流表0(Table0),用于分发本地物理机接收的消息,下面通过一个实施例进行描述,该实施例具体如下:
Table 0,priority=1,in_port=3actions=resubmit(,3)
table 0,priority=1,in_port=1actions=resubmit(,2);
流表1(Table1),用于处理分布式路由出包,下面通过一个实施例进行描述,该实施例具体如下:
Table 1,dl_vlan=1,dl_src=fa:16:3e:ec:f3:dd
actions=mod_dl_src:fa:16:3f:b2:34:82,resubmit(,2)
table1,dl_vlan=2,dl_src=fa:16:3e:63:3b:4c
actions=mod_dl_src:fa:16:3f:b2:34:82,resubmit(,2);
流表2(Table2),用于分发单播,组播,广播数据包,下面通过一个实施例进行描述,该实施例具体如下:
table2,dl_dst=00:00:00:00:00:00/01:00:00:00:00:00actions=resubmit(,20)
table,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00actions=resubmit(,22);
流表3(Table3),用于只允许本机网络的数据包通过,下面通过一个实施例进行描述,该实施例具体如下:
table3,tun_id=0x4actions=mod_vlan_vid:1,resubmit(,9)
table 3,actions=drop;
流表9(Table9),用于处理分布式路由入包,下面通过一个实施例进行描述,该实施例具体如下:
table 9,dl_src=fa:16:3f:db:6f:73actions=output:1;
流表10(Table10),用于学习MAC地址,tunnel(隧道),vlan(虚拟局域网);
流表20(Table20),用于将流表10学习到的内容会存入本表中,L2Population会更新本流表20,其中,L2Population用于调用和更新数据库,下面通过一个实施例进行描述,该实施例具体如下:
table20,dl_vlan=1,dl_dst=fa:16:3e:7e:ab:cc
ctions=strip_vlan,set_tunnel:0x3e9,output:5
流表21(Table21),用于处理本地机器ARP请求,L2Population会更新本表;
流表22(Table22),用于洪泛数据包,L2Population会更新本表,下面通过一个实施例进行描述,该实施例具体如下:
table22,dl_vlan=2actions=strip_vlan,set_tunnel:0x6,output:3。
在没有本地响应ARP请求的情况下,每次遇到ARP广播包,都会经过流表22洪泛到其他所有节点,这样大大的占用了网络带宽,因此,本发明通过L2Population的作用是在本地处理ARP请求,其中,L2Population用于调用数据库和更新数据库,在该数据库中保存了所有的端口(或虚拟机)的MAC地址和IP地址的相关数据,而ARP的请求过程就是一个虚机要根据另一个虚机的IP地址查询它的MAC地址,因此,只需要Neutron server通过RPC告诉每个计算节点上的agent所有活动端口的MAC地址和IP地址,其中,该neutron-server是neutron的核心组件之一,负责直接接收外部请求,这样本机上的虚机的ARP请求的响应就可以在本地解决,有了L2Population以后,流表(示例)有以下变化:
table=2,priority=1,arp,dl_dst=ff:ff:ff:ff:ff:ff actions=resubmit(,21)
table=20,priority=2,dl_vlan=2,dl_dst=fa:16:3e:73:49:41,actions=strip_vla n,set_tunnel:0x6,output:5
table=21,priority=1,arp,dl_vlan=2,arp_tpa=10.0.1.11
table=21,priority=0actions=resubmit(,22)
table=22,hard_age=78,dl_vlan=2actions=strip_vlan,set_tunnel:0x6,output:5,output:5,output:4,
首先,流表2增加了一条规则来处理ARP数据包,将其交给流表21;
其次,由L2population发来的entry来更新流表21和流表20,例如,计算机节点C上增加了新的虚拟机VM3,计算节点A和B收到一条L2population关于VM3的MAC,IP和Network的消息,然后,计算机节点A和B会在流表21中增加相应的OpenFlow流表规则,随后流表21中的每一条OpenFlow流表规则,会和进来的帧的数据做匹配(包括:ARP协议,network、虚拟机的IP地址),如果匹配成功,则构造一个ARP响应包,其中包括了IP地址和MAC地址,从原来的部分发回到虚机,例如,发送ARP请求的网关设备为本地,则通过流表21将响应包发送回源主机,若发送ARP请求的网关设备为异地,则通过流表20将响应包发送回源主机,如果没有匹配成功的,那么转发到流表22做泛洪,于此同时流表20新增一条OpenFlow流表规则来进行vlan与Tunnel号的更换和建立管道之间的链接。
根据本发明的实施例,还提供了一种ARP请求的响应装置。
如图3所示,根据本发明实施例的响应装置包括:
获取模块31,用于获取ARP请求的数据包;
匹配模块32,用于将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;
构造模块33,用于根据IP地址和MAC地址,构造ARP请求的响应包。
根据本发明的一个实施例,匹配模块32包括:
匹配子模块(未示出),用于将数据包和OpenFlow流表中的每条流表规则相匹配;
获取子模块(未示出),在数据包和流表规则匹配的情况下,获取与数据包中的IP地址对应的MAC地址;洪泛模块,用于在数据包和流表规则不匹配的情况下,洪泛ARP请求的数据包。
根据本发明的一个实施例,进一步包括:存储模块(未示出),用于在数据库中存储所有虚拟机的IP地址和MAC地址。
根据本发明的一个实施例,进一步包括:同步模块(未示出),用于将数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至OpenFlow流表。
综上所述,借助于本发明的上述技术方案,通过获取ARP请求的数据包,并将数据包和OpenFlow流表相匹配,以获取与数据包中的IP地址对应的MAC地址,其中,OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系,最后根据IP地址和MAC地址,构造ARP请求的响应包,从而能够在本地物理主机回应虚拟机的ARP广播,从而大大减轻网络上的ARP风暴,提高网络性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种ARP请求的响应方法,其特征在于,包括:
获取所述ARP请求的数据包;
将所述数据包和OpenFlow流表相匹配,以获取与所述数据包中的IP地址对应的MAC地址,其中,所述OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;
根据所述IP地址和所述MAC地址,构造所述ARP请求的响应包。
2.根据权利要求1所述的响应方法,其特征在于,将所述数据包和OpenFlow流表相匹配,以获取与所述数据包中的IP地址对应的MAC地址包括:
将所述数据包和OpenFlow流表中的每条流表规则相匹配;
在所述数据包和流表规则匹配的情况下,获取与所述数据包中的IP地址对应的MAC地址;
在所述数据包和流表规则不匹配的情况下,洪泛所述ARP请求的数据包。
3.根据权利要求1所述的响应方法,其特征在于,进一步包括:
数据库中存储有所有虚拟机的IP地址和MAC地址。
4.根据权利要求3所述的响应方法,其特征在于,进一步包括:
将所述数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至所述OpenFlow流表。
5.一种ARP请求的响应装置,其特征在于,包括:
获取模块,用于获取所述ARP请求的数据包;
匹配模块,用于将所述数据包和OpenFlow流表相匹配,以获取与所述数据包中的IP地址对应的MAC地址,其中,所述OpenFlow流表存储有与本物理机通信的虚拟机的IP地址和MAC地址的映射关系;
构造模块,用于根据所述IP地址和所述MAC地址,构造所述ARP请求的响应包。
6.根据权利要求1所述的响应装置,其特征在于,所述匹配模块包括:
匹配子模块,用于将所述数据包和OpenFlow流表中的每条流表规则相匹配;
获取子模块,在所述数据包和流表规则匹配的情况下,获取与所述数据包中的IP地址对应的MAC地址;
洪泛模块,用于在所述数据包和流表规则不匹配的情况下,洪泛所述ARP请求的数据包。
7.根据权利要求1所述的响应装置,其特征在于,进一步包括:
存储模块,用于在数据库中存储所有虚拟机的IP地址和MAC地址。
8.根据权利要求3所述的响应装置,其特征在于,进一步包括:
同步模块,用于将所述数据库中与本物理机通信的虚拟机的IP地址和MAC地址同步至所述OpenFlow流表。
CN201610958185.6A 2016-10-27 2016-10-27 一种arp请求的响应方法和装置 Pending CN106550059A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610958185.6A CN106550059A (zh) 2016-10-27 2016-10-27 一种arp请求的响应方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610958185.6A CN106550059A (zh) 2016-10-27 2016-10-27 一种arp请求的响应方法和装置

Publications (1)

Publication Number Publication Date
CN106550059A true CN106550059A (zh) 2017-03-29

Family

ID=58393341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610958185.6A Pending CN106550059A (zh) 2016-10-27 2016-10-27 一种arp请求的响应方法和装置

Country Status (1)

Country Link
CN (1) CN106550059A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337172A (zh) * 2018-01-30 2018-07-27 长沙理工大学 大规模OpenFlow流表分级存储架构与加速查找方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457586A (zh) * 2010-10-18 2012-05-16 中兴通讯股份有限公司 一种实现二层网络的扩展方法及扩展的二层网络
CN104427004A (zh) * 2013-08-19 2015-03-18 北京怀教网络技术服务有限公司 一种基于网络设备的arp报文管理方法
CN105450690A (zh) * 2014-08-21 2016-03-30 国际商业机器公司 虚拟机管理程序执行的方法和虚拟机管理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457586A (zh) * 2010-10-18 2012-05-16 中兴通讯股份有限公司 一种实现二层网络的扩展方法及扩展的二层网络
CN104427004A (zh) * 2013-08-19 2015-03-18 北京怀教网络技术服务有限公司 一种基于网络设备的arp报文管理方法
CN105450690A (zh) * 2014-08-21 2016-03-30 国际商业机器公司 虚拟机管理程序执行的方法和虚拟机管理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337172A (zh) * 2018-01-30 2018-07-27 长沙理工大学 大规模OpenFlow流表分级存储架构与加速查找方法
CN108337172B (zh) * 2018-01-30 2020-09-29 长沙理工大学 大规模OpenFlow流表加速查找方法

Similar Documents

Publication Publication Date Title
US11411776B2 (en) Multi-cloud VPC routing and registration
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
CN105706400B (zh) 在网络上转发分组的方法和装置
CN106936777B (zh) 基于OpenFlow的云计算分布式网络实现方法、系统
CN103595648B (zh) 用于在服务器的接收侧进行负载均衡的方法和系统
CN105577548B (zh) 一种软件定义网络中报文处理方法和装置
US20150355934A1 (en) Method for generating configuration information, and network control unit
CN103841028A (zh) 一种报文转发方法及设备
CN106209553A (zh) 报文处理方法、设备及系统
CN111585889A (zh) 逻辑路由器
US10574570B2 (en) Communication processing method and apparatus
CN104283980A (zh) 一种地址解析协议代答方法和装置
CN105591907B (zh) 一种路由获取方法和装置
US20200007472A1 (en) Service insertion in basic virtual network environment
CN111736958A (zh) 虚拟机迁移方法、系统、计算机设备及存储介质
CN105634901B (zh) 基于cas vxlan的mac地址信息同步方法及装置
US9467374B2 (en) Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway
CN107342941A (zh) 一种vxlan控制平面的优化方法及装置
CN107547665A (zh) 一种dhcp地址分配的方法、设备及系统
CN106209689A (zh) 从vxlan至vlan的组播数据报文转发方法和设备
CN108512737B (zh) 一种数据中心ip层互联的方法和sdn控制器
CN108259205B (zh) 一种路由发布方法及网络设备
CN114422415A (zh) 在分段路由中的出口节点处理流
CN106550059A (zh) 一种arp请求的响应方法和装置
WO2016173196A1 (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329