CN110752998B - Arp消息处理方法及相关装置 - Google Patents

Arp消息处理方法及相关装置 Download PDF

Info

Publication number
CN110752998B
CN110752998B CN201910850741.1A CN201910850741A CN110752998B CN 110752998 B CN110752998 B CN 110752998B CN 201910850741 A CN201910850741 A CN 201910850741A CN 110752998 B CN110752998 B CN 110752998B
Authority
CN
China
Prior art keywords
arp
message
host
sdn
sdn switch
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
Application number
CN201910850741.1A
Other languages
English (en)
Other versions
CN110752998A (zh
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.)
Guangzhou Vcmy Technology Co ltd
Original Assignee
Guangzhou Vcmy Technology 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 Guangzhou Vcmy Technology Co ltd filed Critical Guangzhou Vcmy Technology Co ltd
Priority to CN201910850741.1A priority Critical patent/CN110752998B/zh
Publication of CN110752998A publication Critical patent/CN110752998A/zh
Application granted granted Critical
Publication of CN110752998B publication Critical patent/CN110752998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • 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

本发明实施例涉及SDN技术领域,提供一种ARP消息处理方法及相关装置,所述方法包括:接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的;解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址;当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机。与现有技术相比,本发明实施例以单播的方式处理ARP消息,避免广播方式处理ARP消息引起的网络链路阻塞,从而提高网络性能。

Description

ARP消息处理方法及相关装置
技术领域
本发明涉及软件定义网络(Software Defined Network,SDN)技术领域,具体而言,涉及一种ARP消息处理方法及相关装置。
背景技术
地址解析ARP协议(Address Resolution Protocol,ARP)是局域网中根据IP地址获取主机的媒体访问控制MAC(Media Access Control,MAC)地址的一个协议,根据该协议,主机将包含目标IP地址的ARP请求消息以广播的方式发送至网络上的所有主机,并接收目标IP对应的目标主机返回的ARP回复消息,以此确定目标主机的MAC地址,但以广播的方式处理ARP请求容易引起网络链路堵塞,最终导致网络性能下降。
发明内容
有鉴于此,本发明实施例的目的在于提供一种ARP消息处理方法及相关装置,通过以单播的方式处理ARP请求消息,避免广播方式处理ARP请求消息引起的网络链路阻塞,从而提高网络性能。
本发明的实施例可以这样实现:
第一方面,本发明实施例提供一种ARP消息处理方法,应用于ARP服务器,ARP服务器预先存储主机信息表,主机信息表包括主机IP地址及对应的MAC地址,ARP服务器与软件定义网络SDN交换机通信连接,SDN交换机与主机及SDN控制器均通信连接,所述方法包括:接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址;当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机,以使SDN交换机将ARP回复消息转发至主机,其中,源IP地址为主机的标识。
第二方面,本发明实施例提供一种ARP消息处理方法,应用于SDN控制器,SDN控制器与ARP服务器及SDN交换机均通信连接,SDN交换机与主机通信连接,SDN控制器、ARP服务器、SDN交换机及主机组成SDN网络,所述方法包括:接收SDN交换机发送的Packet-In消息,其中,Packet-In消息包括携带有主机的主机标识的回复消息,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;
第三方面,本发明实施例提供一种ARP消息处理方法,应用于SDN交换机,SDN交换机与ARP服务器、SDN控制器及主机均通信连接,SDN控制器、ARP服务器、SDN交换机及主机组成SDN网络,所述方法包括:接收ARP服务器发送的携带有主机标识的回复消息,其中,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;将回复消息封装成Packet-In消息发送至SDN控制器;接收SDN控制器依据SDN网络的网络拓扑信息及主机标识确定的第二转发路径及基于Packet-In消息将回复消息封装后生成的Packet-Out消息,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系;解析Packet-Out消息,获取Packet-Out消息中的回复消息并按照第二转发路径将回复消息发送至主机。
第四方面,本发明实施例提供一种ARP消息处理装置,应用于ARP服务器,ARP服务器预先存储主机信息表,主机信息表包括主机IP地址及对应的MAC地址,ARP服务器与软件定义网络SDN交换机通信连接,SDN交换机与主机及SDN控制器均通信连接,所述装置包括请求消息接收模块、请求消息解析模块及请求消息处理模块。其中,请求消息接收模块,用于接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;请求消息解析模块,用于解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址;请求消息处理模块,用于当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机,以使SDN交换机将ARP回复消息转发至主机,其中,源IP地址为主机的标识。
第五方面,本发明实施例提供一种ARP消息处理装置,应用于SDN控制器,SDN控制器与ARP服务器及SDN交换机均通信连接,SDN交换机与主机通信连接,SDN控制器、ARP服务器、SDN交换机及主机组成SDN网络,所述装置包括Packet-In消息接收模块、Packet-In消息解析模块及Packet-In消息处理模块。其中,Packet-In消息接收模块,用于接收SDN交换机发送的Packet-In消息,其中,Packet-In消息包括携带有主机的主机标识的回复消息,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;Packet-In消息解析模块,用于解析Packet-In消息,获取Packet-In消息中的回复消息及回复消息携带的主机标识;Packet-In消息处理模块,用于依据SDN网络的网络拓扑信息及主机标识计算从ARP服务器至主机的第二转发路径,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系;将第二转发路径发送至SDN交换机;将回复消息封装成Packet-Out消息发送至SDN交换机,以使SDN交换机按照第二转发路径将回复消息发送至主机。
第六方面,本发明实施例提供一种ARP消息处理装置,应用于SDN交换机,SDN交换机与ARP服务器、SDN控制器及主机均通信连接,SDN控制器、ARP服务器、SDN交换机及主机组成SDN网络,所述装置包括回复消息接收模块和回复消息处理模块。其中,回复消息接收模块,用于接收ARP服务器发送的携带有主机标识的回复消息,其中,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;回复消息处理模块,用于将回复消息封装成Packet-In消息发送至SDN控制器;接收SDN控制器依据SDN网络的网络拓扑信息及主机标识确定的第二转发路径及基于Packet-In消息将回复消息封装后生成的Packet-Out消息,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系;解析Packet-Out消息,获取Packet-Out消息中的回复消息并按照第二转发路径将回复消息发送至主机。
第七方面,本发明实施例提供一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前述应用于ARP服务器的ARP消息处理方法,或者,如前述应用于SDN控制器的ARP消息处理方法,或者,如前述应用于SDN交换机的ARP消息处理方法。
本发明实施例的ARP消息处理方法及相关装置,通过引入ARP服务器,主机广播ARP请求消息,SDN交换机收到该ARP请求消息后按照预先确定的第一转发路径以单播的方式发送至ARP服务器,ARP服务器对ARP请求消息进行处理后生成对应的ARP回复消息,并将该ARP回复消息发送至SDN交换机,SDN交换机按照预先确定的第二转发路径以单播的方式将ARP回复消息发送至主机。与现有技术相比,本发明实施例以单播的方式处理ARP消息,避免广播方式处理ARP消息引起的网络链路阻塞,从而提高网络性能。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的应用场景图。
图2示出了本发明实施例所提供的应用于ARP服务器的ARP消息处理方法的流程图。
图3示出了本发明实施例所提供的应用于ARP服务器的注册消息处理方法的流程图。
图4为示出了本发明实施例所提供的应用于SDN控制器的ARP消息处理方法的流程图。
图5示出了本发明实施例所提供的ARP探测消息处理方法的流程图。
图6示出了本发明实施例所提供的应用于SDN控制器的注册消息处理方法的流程图。
图7示出了本发明实施例所提供的应用于SDN交换机的ARP消息处理方法的流程图。
图8示出了本发明实施例所提供的ARP服务器、SDN控制器、SDN交换机及主机处理ARP消息的交互图。
图9示出了本发明实施例所提供的ARP服务器、SDN控制器、SDN交换机及主机处理ARP探测消息的交互图。
图10示出了本发明实施例所提供的ARP服务器、SDN控制器、SDN交换机及主机处理注册消息的交互图。
图11示出了本发明实施例所提供的应用于ARP服务器的ARP消息处理装置的方框示意图。
图12示出了本发明实施例所提供的应用于SDN控制器的ARP消息处理装置的方框示意图。
图13示出了本发明实施例所提供的应用于SDN交换机的ARP消息处理装置的方框示意图。
图14示出了本发明实施例所提供的电子设备的方框示意图。
图标:10-电子设备;101-存储器;102-通信接口;103-处理器;104-总线;20-ARP服务器;30-SDN控制器;40-SDN交换机;50-主机;200-应用于ARP服务器的ARP消息处理装置;201-请求消息接收模块;202-请求消息解析模块;203-请求消息处理模块;204-注册消息发送模块;300-应用于SDN控制器的ARP消息处理装置;301-Packet-In消息接收模块;302-Packet-In消息解析模块;303-Packet-In消息处理模块;304-探测消息处理模块;305-注册消息处理模块;400-应用于SDN交换机的ARP消息处理装置;401-回复消息接收模块;402-回复消息处理模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对在附图中提供的本发明的实施例的详细描述仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了降低以广播方式处理ARP消息带来的网络链路阻塞,通常由SDN控制器承担集中处理ARP消息的工作,从而避免将ARP消息在网络中以广播方式到达目的主机。由SDN控制器承担集中处理ARP消息的工作的实现方案主要有两种:
(1)在SDN控制器中添加一个代理模块以处理ARP数据包,网络中所有主机广播的ARP请求消息都会被导向该SDN控制器,然后由该代理模块生成对应的ARP回复消息并返回至发出ARP请求的主机。
这种方案会大大增加控制器的开销,带来较高的ARP请求消息的解析和回复的延时。
(2)SDN交换机收到源主机广播的ARP请求消息时,将该ARP请求消息封装成Packet-In消息发送至SDN控制器,由SDN控制器对目的主机所在的网段泛洪,目的主机在收到该ARP请求消息后,将对应的ARP回复消息通过SDN交换机发送至SDN控制器,最后有SDN控制器将该ARP回复消息返回至源主机。
这种方案虽然在一定程度上减少了控制器处理ARP请求消息的开销,但只是将ARP请求消息限定在目的主机所在的网段以广播的方式进行处理,并没有完全避免ARP请求消息在网络中以广播方式进行处理,因而,依然存在广播的方式处理ARP请求引起网络链路堵塞的风险。
针对上述问题,本发明实施例提供一种ARP消息处理方法及相关装置,通过以单播的方式处理ARP请求消息,避免广播方式处理ARP请求消息引起的网络链路阻塞,从而提高网络性能。下面通过实施例进行描述。
请参照图1,图1示出了本发明实施例所提供的应用场景图。图1中,ARP服务器20、SDN控制器30、SDN交换机40及主机50组成SDN网络(本领域技术人员通常将SDN网络直接称为SDN),其中,ARP服务器20与SDN控制器30及SDN交换机40均通信连接,SDN交换机40与主机50通信连接。ARP服务器20向SDN控制器30发送注册消息,SDN控制器30基于该注册消息对SDN网络的网络拓扑信息进行更新,并依据更新后的网络拓扑信息确定从SDN交换机40至ARP服务器20的第一转发路径。主机50以广播的形式发送ARP请求消息,SDN交换机40在接收到该ARP请求消息后,按照预先确定的第一转发路径将该ARP请求消息发送至ARP服务器20,ARP服务器20解析该ARP请求消息,获取该ARP请求消息中的源IP地址和目的IP地址,源IP地址为发送ARP请求消息的源主机的IP地址,目的IP地址是源主机想要知道其MAC地址的目的主机的IP地址,源主机和目的主机均可以为图1中的任一主机50。ARP服务器20判断源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装置ARP回复消息中,将ARP回复消息返回至SDN交换机40,SDN交换机40将ARP回复消息封装成Packet-In消息发送至SDN控制器30,SDN控制器30解析出Packet-In消息中的主机标识及ARP回复消息,依据SDN网络的网络拓扑信息及主机标识计算从ARP服务器20至所述主机50的第二转发路径,并将第二转发路径发送至SDN交换机40,同时,将ARP回复消息封装成Packet-Out消息发送至SDN交换机40,SDN交换机40按照第二转发路径将ARP回复消息发送至主机50。
需要说明的是,在本发明实施例中,SDN交换机40处理ARP回复消息的方式有两种:(1)将ARP回复消息封装成Packet-In消息的场景为:SDN交换机40在本地的流表中找不到与该ARP回复消息匹配的流表项,此时,需要将ARP回复消息封装成Packet-In消息,并发送至SDN控制器30,SDN控制器30对Packet-In消息进行处理,生成转发该ARP回复消息的流表项(即依据SDN网络的网络拓扑信息及主机标识计算从ARP服务器20至所述主机50的第二转发路径),并将该流表项下发至SDN交换机40,然后,将该ARP回复消息封装成Packet-Out消息发送至SDN交换机40,SDN交换机40根据此流表项对该ARP回复消息进行转发,同时SDN交换机40会将该流表项保存至本地。(2)直接按照匹配的流表项转发ARP回复消息的场景:当SDN交换机40本地已经保存有与本次收到的ARP回复消息匹配的流表项时,可以直接按照匹配的流表项对该ARP回复消息进行转发,无需再将ARP回复消息封装成Packet-In消息,并发送至SDN控制器30进行处理。本发明下述实施例中的SDN交换机40对收到的回复消息(该回复消息可以是ARP回复消息,也可以是地址冲突回复消息)的处理均存在与之类似的两种场景,届时不再一一赘述。
请参照图2,图2示出了本发明实施例所提供的应用于ARP服务器20的ARP消息处理方法的流程图。
步骤S101,接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
在本实施例中,ARP服务器20在接入SDN网络时,会向SDN控制器30发送注册消息,SDN控制器30基于注册消息对SDN网络的网络拓扑信息进行更新,依据更新后的网络拓扑信息确定从SDN交换机40至ARP服务器20的消息转发路径,即第一转发路径。主机50以广播形式向SDN网络发出ARP请求消息,SDN交换机40在收到ARP请求消息后,按照第一转发路径将ARP请求消息发送至ARP服务器20,由此,ARP请求消息以单播的形式从SDN交换机40发送至ARP服务器20的,因而可以避免ARP请求消息在SDN网络中以广播的形式进行传播引起的网络链路阻塞。
需要说明的是,SDN网络中的SDN交换机40可以有多个,SDN控制器30会计算每一个SDN交换机40至ARP服务器20的第一转发路径,任一SDN交换机40收到主机50发出的ARP消息请求后,均可以按照对应的第一转发路径将该ARP消息请求发送至ARP服务器20。
例如,SDN网络中有4个SDN交换机40,分别为1#SDN交换机~4#SDN交换机,SDN控制器30会分别计算1#SDN交换机~4#SDN交换机至ARP服务器的第一转发路径,例如,1#SDN交换机至ARP服务器的转发路径为:1#SDN交换机->3#SDN交换机->2#SDN交换机->4#SDN交换机->ARP服务器20,主机50发出ARP请求消息后,1#SDN交换机收到该ARP请求消息后,按照1#SDN交换机->3#SDN交换机->2#SDN交换机->4#SDN交换机->ARP服务器20这个路径,将ARP请求消息发送至ARP服务器20。
需要说明的是,ARP请求消息通常包括三类:(1)正常的ARP请求,当一个主机50想要知道另一个主机50的IP地址对应的MAC地址时,会向SDN网络发出此类消息。此时,ARP请求消息中会携带发送ARP请求的发送主机50的IP地址即源IP地址,发送ARP请求的主机50的MAC地址即源MAC地址,被请求的另一个主机50的IP地址即目的IP地址,由于发送ARP请求的主机50并不知道被请求的另一个主机50的MAC地址,故,此时目的MAC地址的值设置为ff-ff-ff-ff-ff-ff,代表当前的ARP请求消息为正常的ARP请求消息。(2)ARP探测消息(APRProbe消息),当一个主机50想要知道候选IP地址是否被其他主机50使用时,会向SDN网络发出此类消息,该消息的源IP地址设置为0.0.0.0,源MAC地址为该主机50的MAC地址,目的IP地址设置为候选IP地址,如果该目的IP地址对应的MAC地址与源MAC地址不一致,则认为发生地址冲突,即该候选IP地址已经有另外一个主机50在使用,否则,如果在预设时间内主机50没有收到地址冲突的回复消息,则认为该候选IP地址未被其他主机50使用。(3)ARP声明消息(ARP Announcement消息),当一个主机50需要向其所在网络声明自己想要使用的IP地址时,会向SDN网络发出此消息,该消息的源IP地址和目的IP地址均设置为该主机50想要使用的IP地址,如果在预设时间内主机50没有收到地址冲突的回复消息,则认为该主机50声明想要使用的IP地址的声明成功,否则,意味着该IP地址已经被其他主机50使用,本主机50不能使用该IP地址,声明失败。在本实施例中,ARP服务器20对于上述第(2)类和第(3)类ARP请求消息做了统一处理,简化了ARP请求消息处理的复杂度。
步骤S102,解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址。
步骤S103,当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机,以使SDN交换机将ARP回复消息转发至主机,其中,源IP地址为主机的标识。
在本实施例中,预设条件为:源IP地址等于0.0.0.0或者源IP地址等于目的IP地址。未满足预设条件为两者之中任一个均不成立即认为未满足预设条件。源IP地址等于0.0.0.0对应上述的APR Probe消息,源IP地址等于目的IP地址对应上述的ARPAnnouncement消息。未满足预设条件意味着该ARP请求消息即非APR Probe消息,也非ARPAnnouncement消息,即为上述的第一类ARP请求消息即正常的ARP请求消息。
在本实施例中,主机信息表包括主机IP地址及对应的主机MAC地址,且预先存储于ARP服务器20。例如,表1示出了一个主机信息表的示例。
表1
Figure BDA0002196820450000081
Figure BDA0002196820450000091
表1中,包括2个主机50的IP地址及对应的MAC地址,表中第二行代表主机50的IP地址为192.168.4.10,对应的MAC地址为60:83:34:f9:7e:74,表中第三行代表另一个主机50的IP地址及对应的MAC地址。
在本实施例中,在ARP服务器20中的主机信息表中可以找到与目的IP地址相同的主机IP地址对应的MAC地址,将找到的MAC地址封装至ARP回复消息中,该ARP回复消息会首先发送至SDN交换机40,SDN交换机40会将该回复消息封装成Packet-In消息,将Packet-In消息发送至SDN控制器30,SDN控制器30解析该Packet-In消息,获取需要接收该ARP回复消息的主机50的主机标识,也即是之前发送ARP请求消息的主机50的主机IP地址,SDN控制器30首先依据SDN网络的网络拓扑信息及主机标识,计算从ARP服务器20至该主机50的第二转发路径,并将该第二转发路径发送至SDN交换机40,然后再将ARP回复消息封装成Packet-Out消息发送至SDN交换机40,SDN交换机40按照第二转发路径将该ARP回复消息发送至主机50,主机50将该ARP回复消息中的目的IP地址对应的MAC地址取出,即可以知道该目的IP地址对应的MAC地址。
在本实施例中,主机50的标识用于表征主机50的唯一标识,由于正常的SDN网络中不会存在IP地址相同的两个不同主机50,因此,可以将IP地址作为主机50的标识,在步骤S103中,源IP地址对应的主机50即向SDN网络以广播方式发出ARP请求消息的主机50。
在本实施例中,为了增加对ARP请求消息处理的支持,当ARP请求消息为APR Probe消息,或者为ARP Announcement消息时,也能针对这两类请求消息进行处理,因此,本发明实施例还包括步骤S104~S106。
步骤S104,当源IP地址和目的IP地址满足预设条件时,检测主机信息表中是否存在与目的IP地址一致的主机IP地址。
在本实施例中,满足预设条件为满足两者之中任一个即认为满足预设条件。
步骤S105,当检测到主机信息表中存在与目的IP地址一致的主机IP地址时,查询主机信息表中是否存在与源MAC地址一致的主机MAC地址。
步骤S106,当不存在与源MAC地址一致的主机MAC地址时,将源IP地址封装至地址冲突回复消息中,并将地址冲突回复消息发送至SDN交换机,以使SDN交换机将地址冲突回复消息转发至主机。
在本发明实施例中,主机信息表中存在与目的IP地址一致的主机IP地址、且不存在与源MAC地址一致的主机MAC地址,证明存在地址冲突,即目的IP地址已经被另一个主机50使用,此时需要返回地址冲突回复消息,该地址冲突回复消息会通过SDN交换机40最终转发至主机50。
需要说明的是,地址冲突回复消息返回至主机50的方式与步骤S103中的ARP回复消息返回至主机50的方式类似,此处不再赘述。
在本实施例中,为了减少主机信息表中信息更新不及时导致误判出主机信息表中不存在与目的IP地址一致的主机IP地址的情况的发生,本发明实施例还包括步骤S107。
步骤S107,当检测到主机信息表中不存在与目的IP地址一致的主机IP地址时,定时从SDN控制器获取主机信息,并将主机信息更新至主机信息表,直至更新后的主机信息表中存在目的IP地址。
在本实施例中,主机50可以是新加入SDN网络中的主机,其主机信息还未被SDN控制器30获取到,也可以是主机50的拓扑位置发生了变化,导致拓扑位置变化后的主机信息还未被SDN控制器30获取到。
在本实施例中,在ARP服务器20加入SDN网络后,势必会导致SDN网络的网络拓扑信息的变化,为了使SDN控制器30及时获取到ARP服务器20的信息,及时对应更新SDN网络的网络拓扑信息,同时使ARP请求消息得以及时地发送至ARP服务器20进行处理,本实施例还提供了应用于ARP服务器20的注册消息处理方法。
请参照图3,图3示出了本发明实施例所提供的应用于ARP服务器20的注册消息处理方法的流程图,该方法包括以下步骤:
步骤S120,向SDN控制器发送注册消息,以使SDN控制器基于注册消息对SDN网络的网络拓扑信息进行更新、并依据更新后的网络拓扑信息确定第一转发路径,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系。
在本实施例中,当ARP服务器20新加入SDN网络、或者SDN网络初始化时,ARP服务器20首先向SDN控制器30发送注册消息,SDN控制器30基于收到的注册消息对SDN网络的网络拓扑信息进行更新,并依据更新后的网络拓扑信息计算SDN交换机40至ARP服务器20之间的第一转发路径,然后将第一转发路径发送至SDN交换机40,SDN交换机40在收到ARP请求消息后,按照第一转发路径将ARP请求消息发送至ARP服务器20。
在本实施例中,回复消息可以是ARP回复消息也可以是地址冲突回复消息,不管是哪种回复消息,ARP服务器20首先会将回复消息发送至SDN交换机40,SDN交换机40会将该回复消息封装成Packet-In消息发送至SDN控制器30进行处理,SDN控制器30对该Packet-In消息进行处理后再发送至SDN交换机40,最终由SDN交换机40转发至主机50。因此,本实施例还提供了应用于SDN控制器30的ARP消息处理方法。该方法包括以下步骤:
请参照图4,图4为示出了本发明实施例所提供的应用于SDN控制器30的ARP消息处理方法的流程图。
步骤S201,接收SDN交换机发送的Packet-In消息,其中,Packet-In消息包括携带有主机的主机标识的回复消息,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
步骤S202,解析Packet-In消息,获取Packet-In消息中的回复消息及回复消息携带的主机标识。
步骤S203,依据SDN网络的网络拓扑信息及主机标识计算从ARP服务器至主机的第二转发路径,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系。
步骤S204,将第二转发路径发送至SDN交换机。
在本实施例中,作为一种具体实施方式,SDN控制器30可以将第二转发路径转换成对应的流表项,将该流表项发送至SDN交换机40,SDN交换机40可以根据该流表项实现对回复消息的转发。
步骤S205,将回复消息封装成Packet-Out消息发送至SDN交换机,以使SDN交换机按照第二转发路径将回复消息发送至主机。
在本实施例中,SDN控制器30为了能及时发现SDN网络中拓扑位置发生变化的主机50,获取主机50的主机信息,并将最新的主机信息更新至ARP服务器20的主机信息表中,SDN控制器30需要对ARP探测消息进行处理,因此,本实施例提供了ARP探测消息处理方法。
请参照图5,图5示出了本发明实施例所提供的ARP探测消息处理方法的流程图,该方法包括以下步骤:
步骤S210,接收SDN交换机发送的ARP探测消息,其中,ARP探测消息为主机发送的、且经SDN交换机基于SDN控制器预先下发的处理ARP探测消息的第一流表项转发至SDN控制器的。
在本实施例中,SDN网络初始化时,SDN控制器30会首先向SDN交换机40发送处理ARP探测消息的第一流表项,第一流表项为控制器SDN交换机40将收到的ARP探测消息先发送至SDN控制器30进行处理的转发规则。当主机50向SDN网络发出ARP探测消息时,SDN交换机40收到该ARP探测消息后,首先将该ARP探测消息发送至SDN控制器30,SDN控制器30基于该ARP探测消息获取主机50的主机信息,并及时将该主机信息添加至ARP服务器20的主机信息表中,随后,SDN交换机40按照第一转发路径将ARP探测消息发送至ARP服务器20进行处理。
步骤S211,基于ARP探测消息获取主机的主机信息。
由于SDN控制器30中保存了SDN网络中所有主机50的主机信息,因此,当新主机50加入至SDN网络中时,SDN控制器30依据本地保存的主机信息,可以判断出新主机50是否可以使用ARP探测消息中设置的想要使用的IP地址,若可以使用该IP地址,则将该IP地址及对应的MAC地址加入至SDN控制器30中,由此完成主机50发现。
在本实施例中,SDN控制器30通过多个SDN交换机40与ARP服务器20通信连接,一旦SDN控制器30通过其中任一个SDN交换机40发送的ARP探测消息完成主机50发现后,其余SDN交换机40不再需要将此ARP探测消息重复发送至SDN控制器30进行处理,由此可以减少不必要的SDN控制器30对ARP探测消息的处理,因此本实施例在获取主机50的主机信息的步骤之后还包括步骤S212。
步骤S212,生成处理ARP探测消息的第二流表项、并下发至第二SDN交换机,以使第二SDN交换机将ARP探测消息不经过SDN控制器发送至ARP服务器。
在本实施例中,SDN交换机40可以为多个,第一SDN交换机可以是任一SDN交换机40,第二SDN交换机为除第一SDN交换机之外的SDN交换机,当第一SDN交换机收到主机50发送的ARP探测消息后向SDN控制器30发送该ARP探测消息,SDN控制器30基于该ARP探测消息获取主机50的主机信息后,生成处理ARP探测消息的第二流表项,并将第二流表项下发至所有第二SDN交换机,第二流表项为控制第二SDN交换机将ARP探测消息不经过SDN控制器30发送至ARP服务器20的转发规则。
步骤S213,将主机信息发送至ARP服务器,以使ARP服务器将主机信息添加至预先存储的主机信息表中。
在本实施例中,SDN控制器30在接收到ARP服务器20发送的注册消息后,需要基于该注册消息更新网络拓扑信息,以便SDN交换机40可以及时地获取到第一转发路径,并按照第一转发路径转发ARP请求消息。因此,本实施例还提供了应用于SDN控制器30的注册消息处理方法。
请参照图6,图6示出了本发明实施例所提供的应用于SDN控制器30的注册消息处理方法的流程图,该方法包括以下步骤:
步骤S220,接收ARP服务器发送的注册消息,并依据注册消息更新网络拓扑信息。
在本实施例中,网络拓扑信息用于表征SDN网络中SDN控制器30、SDN交换机40、ARP服务器20及主机50相互之间的网络连接关系。SDN控制器30依据网络拓扑信息可以计算出SDN网络中任意两个设备之间消息传输路径,例如,SDN交换机40至ARP服务器20之间的第一转发路径,ARP服务器20至主机50之间的第二转发路径,或者两个SDN交换机40之间的消息传输路径等等。
步骤S221,依据更新后的网络拓扑信息计算从SDN交换机至ARP服务器之间的第一转发路径。
在本实施例中,第一转发路径可以是从SDN交换机40至ARP服务器20之间的转发次数最少的路径,也可以是从SDN交换机40至ARP服务器20之间网络传输质量满足预设条件的路径,本实施例对此不予限定。
步骤S222,将第一转发路径发送至SDN交换机。
在本实施例中,作为一种具体实施方式,SDN控制器30可以将第一转发路径转换成对应的流表项,将该流表项发送至SDN交换机40,SDN交换机40可以根据该流表项实现对ARP请求消息的转发。
在本实施例中,ARP服务器20是通过SDN交换机40将针对ARP请求消息的回复消息发送至对应的主机50,因此,本实施例还提供了应用于SDN交换机40的ARP消息处理方法的流程图。
请参照图7,图7示出了本发明实施例所提供的应用于SDN交换机40的ARP消息处理方法的流程图,该方法包括以下步骤:
步骤S301,接收ARP服务器发送的携带有主机标识的回复消息,其中,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
步骤S302,将回复消息封装成Packet-In消息发送至SDN控制器。
在本实施例中,Packet-In消息是SDN交换机40需要发消息至SDN控制器30时,使用的消息格式,即SDN交换机40首先将回复消息封装为Packet-In消息,然后再将该Packet-In消息发送至SDN控制器30。
步骤S303,接收SDN控制器依据SDN网络的网络拓扑信息及主机标识确定的第二转发路径及基于Packet-In消息将回复消息封装后生成的Packet-Out消息,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系。
在本实施例中,SDN控制器30让SDN交换机40产生一个数据包并按照预先设定的流表项处理时,就会向SDN交换机40发送Packet-Out消息。
步骤S304,解析Packet-Out消息,获取Packet-Out消息中的回复消息并按照第二转发路径将回复消息发送至主机。
在本发明实施例中,作为一种实施方式,为了使SDN网络在初始化完成后即可处理ARP请求消息,SDN网络的初始化的过程可以为:
首先,启动SDN控制器30。
其次,将SDN交换机40接入至SDN网络。
第三,SDN控制器30发现网络拓扑,获取网络拓扑信息。
第四,ARP服务器20向SDN控制器30发送注册消息,向SDN控制器30注册。
第五,SDN控制器30向SDN交换机40下发处理ARP Probe消息的流表项,以使SDN交换机40将收到的ARP Probe消息发送至SDN控制器30。
第六,SDN控制器30根据最新的网络拓扑信息,计算从SDN交换机40至ARP服务器20第一转发路径,以使ARP服务器20在后续接收到主机50发出的ARP请求消息后,可以按照第一转发路径将ARP请求消息发送至ARP服务器20进行处理。
第七,SDN控制器30基于ARP Probe消息发现主机50的主机信息,并将该主机信息发送至ARP服务器20,以使ARP服务器20将主机50的主机信息添加至主机信息表。
至此,完成了SDN网络的初始化的主要步骤,ARP服务器20此时可以向SDN网络中的主机50提供ARP请求消息的处理服务。
与现有技术相比,本发明实施例具有以下有益效果:
首先,本发明实施例以单播的方式处理ARP请求消息,无论是ARP请求消息还是针对ARP请求消息的回复消息均以单播方式处理,避免广播方式处理ARP请求消息引起的网络链路阻塞,从而提高网络性能。
其次,本发明实施例引入ARP服务器20,由ARP服务器20处理ARP请求消息,降低了ARP请求消息的解析和回复的时延,提高了ARP请求消息处理的效率。
第三,ARP服务器20主动向SDN控制器30注册,使得SDN控制器30可以及时更新网络拓扑信息,以使根据网络拓扑信息计算出的第一转发路径更合理,从而使ARP请求消息更高效地传送至ARP服务器20进行处理,提高了ARP请求消息处理的效率。
第四,本发明实施例实现的ARP请求消息中ARP探测消息的处理,使得SDN控制器30可以及时发现SDN网络中的新加入主机50,并及时获取新加入主机50的主机信息,以便ARP服务器20能及时将新加入主机50的主机信息更新至本地的主机信息表中,避免ARP请求消息因主机信息的缺失导致ARP请求消息处理失败。
第五,ARP控制器在基于SDN交换机40发送的ARP探测消息获取到主机50的主机信息后,及时向第二SDN交换机发送第二流表项,以使第二SDN交换机将ARP探测消息不经过SDN控制器30发送至ARP服务器20,使ARP探测消息尽快到达ARP服务器20进行处理,提高了ARP探测消息处理的效率。
第六,ARP服务器20对ARP探测消息和ARP声明消息统一处理,简化了处理操作。
第七,本发明实施例实现了ARP请求消息中地址冲突的检测,满足了大部分的应用场景下对ARP请求消息的处理。
在本实施例中,为了更好地描述ARP服务器20、SDN控制器30、SDN交换机40及主机50之间的交互,下面将对处理ARP请求消息的主要交互过程进行描述。
请参照图8,图8示出了本发明实施例所提供的ARP服务器20、SDN控制器30、SDN交换机40及主机50处理ARP请求消息的交互图。
S11:主机50以广播方式发送ARP请求消息;
S12:SDN交换机40将ARP请求消息发送至ARP服务器20;
S13:ARP服务器20将回复消息发送至SDN交换机40;
S14:SDN交换机40将回复消息封装成Packet-In消息发送至SDN控制器30;
S15:SDN控制器30基于该回复消息计算第二转发路径,并将第二转发路径发送至SDN交换机40;
S16:SDN控制器30将回复消息封装成Packet-Out消息发送至SDN交换机40;
S17:SDN交换机40按照第二转发路径将回复消息发送至主机50。
请参照图9,图9示出了本发明实施例所提供的ARP服务器20、SDN控制器30、SDN交换机40及主机50处理ARP探测消息的交互图。
S21:主机50以广播方式发送ARP探测消息;
S22:SDN交换机40将该ARP探测消息发送至SDN控制器30;
S23:SDN控制器30获取主机50的主机信息;
S24:SDN控制器30将主机50的主机信息发送至ARP服务器20。
请参照图10,图10示出了本发明实施例所提供的ARP服务器20、SDN控制器30、SDN交换机40及主机50处理注册消息的交互图。
S31:ARP服务器20向SDN控制器30发送注册消息;
S32:SDN控制器30基于注册消息更新SDN网络的网络拓扑信息;
S33:SDN控制器30计算第一转发路径,并将第一转发路径发送至SDN交换机40。
需要说明的是,图8~图10只是示意性地标识出ARP服务器20、SDN控制器30、SDN交换机40及主机50之间的交互关系图,只标识出主要交互步骤,并不能理解为本实施例只限定于图8~图10中的这些步骤。
请参照图11,图11示出了本发明实施例所提供的应用于ARP服务器的ARP消息处理装置200的方框示意图,应用于ARP服务器的ARP消息处理装置200包括请求消息接收模块201、请求消息解析模块202、请求消息处理模块203及注册消息发送模块204。
请求消息接收模块201,用于接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
请求消息解析模块202,用于解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址。
请求消息处理模块203,用于当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机,以使SDN交换机将ARP回复消息转发至主机,其中,源IP地址为主机的标识。
请求消息处理模块203,还用于当源IP地址和目的IP地址满足预设条件时,检测主机信息表中是否存在与目的IP地址一致的主机IP地址;当检测到主机信息表中存在与目的IP地址一致的主机IP地址时,查询主机信息表中是否存在与源MAC地址一致的主机MAC地址;当不存在与源MAC地址一致的主机MAC地址时,将源IP地址封装至地址冲突回复消息中,并将地址冲突回复消息发送至SDN交换机,以使SDN交换机将地址冲突回复消息转发至主机。
请求消息处理模块203,还用于当检测到主机信息表中不存在与目的IP地址一致的主机IP地址时,定时从SDN控制器获取主机信息,并将主机信息更新至主机信息表,直至更新后的主机信息表中存在目的IP地址。
注册消息发送模块204,用于向SDN控制器发送注册消息,以使SDN控制器基于注册消息对SDN网络的网络拓扑信息进行更新、并依据更新后的网络拓扑信息确定第一转发路径,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系。
请参照图12,图12示出了本发明实施例所提供的应用于SDN控制器的ARP消息处理装置300的方框示意图。应用于SDN控制器的ARP消息处理装置300包括Packet-In消息接收模块301、Packet-In消息解析模块302、Packet-In消息处理模块303、探测消息处理模块304及注册消息处理模块305,作为一种具体实施方式,应用于SDN控制器的ARP消息处理装置300可以通过SDN控制器30的北向接口与SDN控制器30上运行的核心组件进行交互,以实现应用于SDN控制器30的ARP消息处理方法。
Packet-In消息接收模块301,用于接收SDN交换机发送的Packet-In消息,其中,Packet-In消息包括携带有主机的主机标识的回复消息,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
Packet-In消息解析模块302,用于解析Packet-In消息,获取Packet-In消息中的回复消息及回复消息携带的主机标识。
Packet-In消息处理模块303,用于依据SDN网络的网络拓扑信息及主机标识计算从ARP服务器至主机的第二转发路径,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系;将第二转发路径发送至SDN交换机;将回复消息封装成Packet-Out消息发送至SDN交换机,以使SDN交换机按照第二转发路径将回复消息发送至主机。
探测消息处理模块304,用于接收SDN交换机发送的ARP探测消息,其中,ARP探测消息为主机发送的、且经SDN交换机基于SDN控制器预先下发的处理ARP探测消息的第一流表项转发至SDN控制器的;基于ARP探测消息获取主机的主机信息;将主机信息发送至ARP服务器,以使ARP服务器将主机信息添加至预先存储的主机信息表中。
作为一种实施方式,探测消息处理模块304在执行完基于ARP探测消息获取主机的主机信息的步骤之后还用于:生成处理ARP探测消息的第二流表项、并下发至第二SDN交换机,以使第二SDN交换机将ARP探测消息不经过SDN控制器发送至ARP服务器。
注册消息处理模块305,用于接收ARP服务器发送的注册消息,并依据注册消息更新网络拓扑信息;依据更新后的网络拓扑信息计算从SDN交换机至ARP服务器之间的第一转发路径;将第一转发路径发送至SDN交换机。
请参照图13,图13示出了本发明实施例所提供的应用于SDN交换机的ARP消息处理装置400的方框示意图,应用于SDN交换机的ARP消息处理装置400包括回复消息接收模块401和回复消息处理模块402。
回复消息接收模块401,用于接收ARP服务器发送的携带有主机标识的回复消息,其中,回复消息为ARP服务器对接收到的ARP请求消息进行响应处理后生成的;ARP请求消息为主机发送至SDN交换机,并由SDN交换机按照第一转发路径发送至ARP服务器的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径。
回复消息处理模块402,用于将回复消息封装成Packet-In消息发送至SDN控制器;接收SDN控制器依据SDN网络的网络拓扑信息及主机标识确定的第二转发路径及基于Packet-In消息将回复消息封装后生成的Packet-Out消息,其中,网络拓扑信息用于表征SDN控制器、SDN交换机、ARP服务器及主机相互之间的网络连接关系;解析Packet-Out消息,获取Packet-Out消息中的回复消息并按照第二转发路径将回复消息发送至主机。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的应用于ARP服务器的ARP消息处理装置200、应用于SDN控制器的ARP消息处理装置300、应用于SDN交换机的ARP消息处理装置400的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参照图14,图14示出了本发明实施例所提供的电子设备10的方框示意图。所述电子设备10包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。电子设备10可以是图1中的ARP服务器20,也可以是图1中的SDN控制器30,还可以是图1中的SDN交换机40。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口102(可以是有线或者无线)实现该电子设备10与其他电子设备10之间的通信连接。
总线104可以是ISA总线、PCI总线或EISA总线等。图14中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器101用于存储程序,例如当电子设备10为ARP服务器20时,存储器101用于存储图11所示的应用于ARP服务器的ARP消息处理装置200,当电子设备10为SDN控制器30时,存储器101用于存储图12所示的应用于SDN控制器的ARP消息处理装置300,当电子设备10为SDN交换机40时,存储器101用于存储图13所示的应用于SDN交换机的ARP消息处理装置400。应用于ARP服务器的ARP消息处理装置200、应用于SDN控制器的ARP消息处理装置300及应用于SDN交换机的ARP消息处理装置400均包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述电子设备10的操作系统OS(operating system,OS)中的软件功能模块。所述处理器103在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的对应的ARP消息处理方法。
处理器103可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器103中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器103可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还包括一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器103执行时实现上述实施例揭示的应用于ARP服务器20的ARP消息处理方法、或者应用于SDN控制器30的ARP消息处理方法,或者应用于SDN交换机40的ARP消息处理方法。
综上所述,本发明实施例提供一种ARP消息处理方法及相关装置,应用于ARP服务器,ARP服务器预先存储主机信息表,主机信息表包括主机IP地址及对应的MAC地址,ARP服务器与软件定义网络SDN交换机通信连接,SDN交换机与主机及SDN控制器均通信连接,所述方法包括:接收SDN交换机按照第一转发路径发送至ARP服务器的ARP请求消息,其中,ARP请求消息为主机发送至SDN交换机的,第一转发路径为SDN控制器预先确定的从SDN交换机至ARP服务器的消息转发路径;解析ARP请求消息,获取ARP请求消息中的源IP地址和目的IP地址;当源IP地址和目的IP地址未满足预设条件时,将源IP地址及主机信息表中与目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将ARP回复消息返回至SDN交换机,以使SDN交换机将ARP回复消息转发至主机,其中,源IP地址为主机的标识。与现有技术相比,本发明实施例以单播的方式处理ARP消息,避免广播方式处理ARP消息引起的网络链路阻塞,从而提高网络性能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种ARP消息处理方法,其特征在于,应用于ARP服务器,所述ARP服务器预先存储主机信息表,所述主机信息表包括主机IP地址及对应的MAC地址,所述ARP服务器与软件定义网络SDN交换机通信连接,SDN交换机与主机及SDN控制器均通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述方法包括:
接收所述SDN交换机按照第一转发路径发送至所述ARP服务器的ARP请求消息,其中,所述ARP请求消息为所述主机发送至所述SDN交换机的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
解析所述ARP请求消息,获取所述ARP请求消息中的源IP地址和目的IP地址;
当所述源IP地址和所述目的IP地址未满足预设条件时,将所述源IP地址及所述主机信息表中与所述目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将所述ARP回复消息返回至所述SDN交换机,以使所述SDN交换机将所述ARP回复消息封装成Packet-In消息并将所述Packet-In消息发送至所述SDN控制器,以使所述SDN控制器解析所述Packet-In消息、获取所述Packet-In消息中的ARP回复消息及所述ARP回复消息携带的主机标识、并依据所述SDN网络的网络拓扑信息及所述主机标识计算从所述ARP服务器至所述主机的第二转发路径,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系、所述SDN控制器将所述第二转发路径发送至所述SDN交换机;所述SDN控制器将所述ARP回复消息封装成Packet-Out消息发送至所述SDN交换机,以使所述SDN交换机按照所述第二转发路径将所述ARP回复消息发送至所述主机,其中,所述源IP地址为所述主机的标识。
2.如权利要求1所述的ARP消息处理方法,其特征在于,所述ARP请求消息中还包括源MAC地址,所述方法还包括:
当所述源IP地址和所述目的IP地址满足预设条件时,检测所述主机信息表中是否存在与所述目的IP地址一致的主机IP地址;
当检测到所述主机信息表中存在与所述目的IP地址一致的主机IP地址时,查询所述主机信息表中是否存在与所述源MAC地址一致的主机MAC地址;
当不存在与所述源MAC地址一致的主机MAC地址时,将所述源IP地址封装至地址冲突回复消息中,并将所述地址冲突回复消息发送至所述SDN交换机,以使所述SDN交换机将所述地址冲突回复消息转发至所述主机。
3.如权利要求2所述的ARP消息处理方法,其特征在于,所述ARP服务器与SDN控制器通信连接,所述方法还包括:
当检测到所述主机信息表中不存在与所述目的IP地址一致的主机IP地址时,定时从所述SDN控制器获取主机信息,并将所述主机信息更新至所述主机信息表,直至更新后的主机信息表中存在所述目的IP地址。
4.如权利要求1所述的ARP消息处理方法,其特征在于,所述ARP服务器、所述SDN控制器、所述SDN交换机及所述主机组成SDN网络,所述ARP服务器与SDN控制器通信连接,所述方法还包括:
向所述SDN控制器发送注册消息,以使所述SDN控制器基于所述注册消息对所述SDN网络的网络拓扑信息进行更新、并依据更新后的网络拓扑信息确定所述第一转发路径,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系。
5.一种ARP消息处理方法,其特征在于,应用于SDN控制器,所述SDN控制器与ARP服务器及SDN交换机均通信连接,所述SDN交换机与主机通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述方法包括:
接收所述SDN交换机发送的Packet-In消息,其中,所述Packet-In消息包括携带有所述主机的主机标识的ARP回复消息,所述ARP回复消息为所述ARP服务器对接收到的ARP请求消息进行响应处理后生成的;所述ARP请求消息为所述主机发送至所述SDN交换机,并由所述SDN交换机按照第一转发路径发送至所述ARP服务器的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
解析所述Packet-In消息,获取所述Packet-In消息中的ARP回复消息及所述ARP回复消息携带的主机标识;
依据所述SDN网络的网络拓扑信息及所述主机标识计算从所述ARP服务器至所述主机的第二转发路径,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系;
将所述第二转发路径发送至所述SDN交换机;
将所述ARP回复消息封装成Packet-Out消息发送至所述SDN交换机,以使所述SDN交换机按照所述第二转发路径将所述ARP回复消息发送至所述主机。
6.如权利要求5所述的ARP消息处理方法,其特征在于,所述ARP请求消息包括ARP探测消息,所述方法还包括:
接收所述SDN交换机发送的ARP探测消息,其中,所述ARP探测消息为所述主机发送的、且经所述SDN交换机基于所述SDN控制器预先下发的处理所述ARP探测消息的第一流表项转发至所述SDN控制器的;
基于所述ARP探测消息获取所述主机的主机信息;
将所述主机信息发送至所述ARP服务器,以使所述ARP服务器将所述主机信息添加至预先存储的主机信息表中。
7.如权利要求6所述的ARP消息处理方法,其特征在于,所述SDN控制器通过多个SDN交换机与所述ARP服务器通信连接,所述SDN交换机包括一个第一SDN交换机与至少一个第二SDN交换机,所述SDN控制器与所述第一SDN交换机通信连接以获取所述主机的主机信息,所述ARP服务器与任一第二SDN交换机通信连接,所述基于所述ARP探测消息获取所述主机的主机信息的步骤之后,包括:
生成处理所述ARP探测消息的第二流表项、并下发至所述第二SDN交换机,以使所述第二SDN交换机将所述ARP探测消息不经过所述SDN控制器发送至所述ARP服务器。
8.如权利要求5所述的ARP消息处理方法,其特征在于,所述方法还包括:
接收所述ARP服务器发送的注册消息,并依据所述注册消息更新所述网络拓扑信息;
依据更新后的网络拓扑信息计算从所述SDN交换机至所述ARP服务器之间的第一转发路径;
将所述第一转发路径发送至所述SDN交换机。
9.一种ARP消息处理方法,其特征在于,应用于SDN交换机,所述SDN交换机与ARP服务器、SDN控制器及主机均通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述方法包括:
接收所述ARP服务器发送的携带有主机标识的ARP回复消息,其中,所述ARP回复消息为所述ARP服务器对接收到的ARP请求消息进行响应处理后生成的;所述ARP请求消息为所述主机发送至所述SDN交换机,并由所述SDN交换机按照第一转发路径发送至所述ARP服务器的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
将所述ARP回复消息封装成Packet-In消息发送至所述SDN控制器;
接收所述SDN控制器依据所述SDN网络的网络拓扑信息及所述主机标识确定的第二转发路径及基于所述Packet-In消息将所述ARP回复消息封装后生成的Packet-Out消息,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系;
解析所述Packet-Out消息,获取所述Packet-Out消息中的ARP回复消息并按照所述第二转发路径将所述ARP回复消息发送至所述主机。
10.一种ARP消息处理装置,其特征在于,应用于ARP服务器,所述ARP服务器预先存储主机信息表,所述主机信息表包括主机IP地址及对应的MAC地址,所述ARP服务器与软件定义网络SDN交换机通信连接,SDN交换机与主机及SDN控制器均通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述装置包括:
请求消息接收模块,用于接收所述SDN交换机按照第一转发路径发送至所述ARP服务器的ARP请求消息,其中,所述ARP请求消息为所述主机发送至所述SDN交换机的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
请求消息解析模块,用于解析所述ARP请求消息,获取所述ARP请求消息中的源IP地址和目的IP地址;
请求消息处理模块,用于当所述源IP地址和所述目的IP地址未满足预设条件时,将所述源IP地址及所述主机信息表中与所述目的IP地址相同的主机IP地址对应的MAC地址封装至ARP回复消息中,并将所述ARP回复消息返回至所述SDN交换机,以使所述SDN交换机将所述ARP回复消息封装成Packet-In消息并将所述Packet-In消息发送至所述SDN控制器,以使所述SDN控制器解析所述Packet-In消息、获取所述Packet-In消息中的ARP回复消息及所述ARP回复消息携带的主机标识、并依据所述SDN网络的网络拓扑信息及所述主机标识计算从所述ARP服务器至所述主机的第二转发路径,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系、所述SDN控制器将所述第二转发路径发送至所述SDN交换机;所述SDN控制器将所述ARP回复消息封装成Packet-Out消息发送至所述SDN交换机,以使所述SDN交换机按照所述第二转发路径将所述ARP回复消息发送至所述主机,其中,所述源IP地址为所述主机的标识。
11.一种ARP消息处理装置,其特征在于,应用于SDN控制器,所述SDN控制器与ARP服务器及SDN交换机均通信连接,所述SDN交换机与主机通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述装置包括:
Packet-In消息接收模块,用于接收所述SDN交换机发送的Packet-In消息,其中,所述Packet-In消息包括携带有所述主机的主机标识的ARP回复消息,所述ARP回复消息为所述ARP服务器对接收到的ARP请求消息进行响应处理后生成的;所述ARP请求消息为所述主机发送至所述SDN交换机,并由所述SDN交换机按照第一转发路径发送至所述ARP服务器的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
Packet-In消息解析模块,用于解析所述Packet-In消息,获取所述Packet-In消息中的ARP回复消息及所述ARP回复消息携带的主机标识;
Packet-In消息处理模块,用于依据所述SDN网络的网络拓扑信息及所述主机标识计算从所述ARP服务器至所述主机的第二转发路径,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系;将所述第二转发路径发送至所述SDN交换机;将所述ARP回复消息封装成Packet-Out消息发送至所述SDN交换机,以使所述SDN交换机按照所述第二转发路径将所述ARP回复消息发送至所述主机。
12.一种ARP消息处理装置,其特征在于,应用于SDN交换机,所述SDN交换机与ARP服务器、SDN控制器及主机均通信连接,所述SDN控制器、所述ARP服务器、所述SDN交换机及所述主机组成SDN网络,所述装置包括:
回复消息接收模块,用于接收所述ARP服务器发送的携带有主机标识的ARP回复消息,其中,所述ARP回复消息为所述ARP服务器对接收到的ARP请求消息进行响应处理后生成的;所述ARP请求消息为所述主机发送至所述SDN交换机,并由所述SDN交换机按照第一转发路径发送至所述ARP服务器的,所述第一转发路径为所述SDN控制器预先确定的从所述SDN交换机至所述ARP服务器的消息转发路径;
回复消息处理模块,用于将所述ARP回复消息封装成Packet-In消息发送至所述SDN控制器;接收所述SDN控制器依据所述SDN网络的网络拓扑信息及所述主机标识确定的第二转发路径及基于所述Packet-In消息将所述回复消息封装后生成的Packet-Out消息,其中,所述网络拓扑信息用于表征所述SDN控制器、所述SDN交换机、所述ARP服务器及所述主机相互之间的网络连接关系;解析所述Packet-Out消息,获取所述Packet-Out消息中的ARP回复消息并按照所述第二转发路径将所述ARP回复消息发送至所述主机。
13.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的ARP消息处理方法,或者,如权利要求5-8中任一项所述的ARP消息处理方法,或者,如权利要求9所述的ARP消息处理方法。
CN201910850741.1A 2019-09-10 2019-09-10 Arp消息处理方法及相关装置 Active CN110752998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910850741.1A CN110752998B (zh) 2019-09-10 2019-09-10 Arp消息处理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910850741.1A CN110752998B (zh) 2019-09-10 2019-09-10 Arp消息处理方法及相关装置

Publications (2)

Publication Number Publication Date
CN110752998A CN110752998A (zh) 2020-02-04
CN110752998B true CN110752998B (zh) 2023-01-20

Family

ID=69276213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910850741.1A Active CN110752998B (zh) 2019-09-10 2019-09-10 Arp消息处理方法及相关装置

Country Status (1)

Country Link
CN (1) CN110752998B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003965B (zh) * 2020-09-15 2021-07-27 中标慧安信息技术股份有限公司 一种基于arp协议检测局域网内设备ip冲突的方法
CN113382008B (zh) * 2021-06-16 2022-03-25 桂林电子科技大学 一种sdn下arp协议的泛洪抑制方法
CN113489812B (zh) * 2021-09-08 2021-11-12 军事科学院系统工程研究院网络信息研究所 基于ip地址相似性的地址解析协议洪范抑制方法和装置
CN115314468B (zh) * 2022-08-05 2023-03-10 成都道客数字科技有限公司 一种容器云平台的ip地址分配方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938794A (zh) * 2012-11-14 2013-02-20 华为技术有限公司 地址解析协议arp消息转发方法、交换机和控制器
CN104219340A (zh) * 2014-09-25 2014-12-17 杭州华三通信技术有限公司 一种arp应答代理方法以及装置
CN104980373A (zh) * 2014-04-04 2015-10-14 上海宽带技术及应用工程研究中心 一种控制服务器及其应用的系统和方法
CN107181688A (zh) * 2017-03-31 2017-09-19 武汉绿色网络信息服务有限责任公司 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264362B2 (en) * 2013-10-17 2016-02-16 Cisco Technology, Inc. Proxy address resolution protocol on a controller device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938794A (zh) * 2012-11-14 2013-02-20 华为技术有限公司 地址解析协议arp消息转发方法、交换机和控制器
CN104980373A (zh) * 2014-04-04 2015-10-14 上海宽带技术及应用工程研究中心 一种控制服务器及其应用的系统和方法
CN104219340A (zh) * 2014-09-25 2014-12-17 杭州华三通信技术有限公司 一种arp应答代理方法以及装置
CN107181688A (zh) * 2017-03-31 2017-09-19 武汉绿色网络信息服务有限责任公司 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法

Also Published As

Publication number Publication date
CN110752998A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110752998B (zh) Arp消息处理方法及相关装置
US20170019341A1 (en) Service link selection control method and device
US8842577B2 (en) Enabling media access control address mobility in an ethernet virtual private network
KR20210102107A (ko) 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템
EP3972207B1 (en) Message processing method, device, and computer storage medium
CN113542128B (zh) 一种发送路由信息的方法和装置
US20190158627A1 (en) Method and device for generating forwarding information
CN112511427B (zh) 段路由业务处理方法、装置、路由设备及存储介质
CN109547350B (zh) 一种路由学习方法及网关设备
CN112532526B (zh) 数据转发方法、装置及网络设备
CN113141405A (zh) 服务访问方法、中间件系统、电子设备和存储介质
CN112152928A (zh) 一种邻居表项学习方法、装置及路由设备
CN113162779B (zh) 一种多云互联的方法及设备
CN110581805A (zh) 路由表更新方法、装置、交换机及存储介质
CN111327545B (zh) 数据发送方法、装置、网络系统及交换机
CN109728926B (zh) 通信方法以及网络设备
CN111327530B (zh) 数据发送方法、装置、网络系统及交换机
CN109831378B (zh) 一种报文超时回应方法及装置
CN114338809B (zh) 访问控制方法、装置、电子设备和存储介质
JP5893211B2 (ja) ゲートウェイ装置
US20220166708A1 (en) Method and apparatus for selecting packet path to support producer mobility in information-centric networking
CN110601982B (zh) 路由传递方法、装置及路由器
CN114237928A (zh) 容器间通信方法及装置、电子设备、计算机可读存储介质
CN114765589A (zh) 网络测试方法、装置及存储介质
CN115277524A (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: ARP message processing method and related devices

Effective date of registration: 20230824

Granted publication date: 20230120

Pledgee: CITIC Bank Co.,Ltd. Guangzhou Branch

Pledgor: GUANGZHOU VCMY TECHNOLOGY Co.,Ltd.

Registration number: Y2023980053683