CN103944867B - 动态主机配置协议报文的处理方法、装置和系统 - Google Patents

动态主机配置协议报文的处理方法、装置和系统 Download PDF

Info

Publication number
CN103944867B
CN103944867B CN201310025125.5A CN201310025125A CN103944867B CN 103944867 B CN103944867 B CN 103944867B CN 201310025125 A CN201310025125 A CN 201310025125A CN 103944867 B CN103944867 B CN 103944867B
Authority
CN
China
Prior art keywords
dhcp
message
response message
request message
dhcp 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.)
Active
Application number
CN201310025125.5A
Other languages
English (en)
Other versions
CN103944867A (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310025125.5A priority Critical patent/CN103944867B/zh
Publication of CN103944867A publication Critical patent/CN103944867A/zh
Application granted granted Critical
Publication of CN103944867B publication Critical patent/CN103944867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种DHCP报文的处理方法、装置和系统。该方法包括:接收第一DHCP请求报文,第一DHCP请求报文中携带有虚拟机的MAC地址信息;对第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;发送第二DHCP请求报文至DHCP服务器;接收DHCP服务器发送的第一DHCP响应报文;其中,第一DHCP响应报文为广播报文,并且携带有分配给虚拟机的IP地址;封装第一DHCP响应报文为第二DHCP响应报文;其中,第二DHCP响应报文为单播报文;发送第二DHCP响应报文至对端隧道端点设备。本发明实现了隧道协议中以单播形式发送DHCP响应报文,提高了网络资源的利用率。

Description

动态主机配置协议报文的处理方法、装置和系统
技术领域
本发明涉及通信领域,尤其涉及一种DHCP报文的处理方法、装置和系统。
背景技术
在通信领域,为了简化IP地址的配置操作,防止IP地址的冲突,并且由于IP资源有限,不能给每台连接到互联网上的主机配置一个固定的IP地址,因此通常使用动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)方式对连接网络的主机配置临时的、唯一的IP地址。对于虚拟化数据中心中的虚拟机而言,同样可以采用DHCP方式获取IP地址。
DHCP客户端与DHCP服务器之间的交互信息中存在大量的广播报文。在使用隧道协议,例如可扩展虚拟局域网(Virtual eXtensible Local Area Network,VXLAN)/网络虚拟化通用路由封装(Network Virtualizationusing Generic Routing Encapsulation,NVGRE)的隧道封装协议的网络中,DHCP客户端与DHCP服务器之间传输的广播报文。
在现有技术下,当隧道端点设备接收到DHCP客户端发送的DHCP广播报文时,可为该广播报文封装VXLAN头,该VXLAN头中配置了其他隧道端点设备的组播地址,因此可通过组播形式发送封装后的报文至其他隧道端点设备;其他隧道端点设备可接收到相应的封装报文并进行解封装,解封装后在相应的组播范围内进行广播,接收到广播报文的DHCP服务器也可通过广播的形式发送响应报文至隧道端点设备,由隧道端点设备进行封装并通过组播形式发送封装后的响应报文至其他隧道端点设备,对网络造成压力,进而影响网络性能,浪费网络资源。
发明内容
本发明实施例提供了一种DHCP报文的处理方法、装置和系统,以实现隧道协议中通过单播的形式发送DHCP响应报文,降低网络流量,提高网络资源的利用率。
第一方面,本发明实施例提供了一种DHCP报文的处理方法,所述方法包括:
接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息;
对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;
发送所述第二DHCP请求报文至DHCP服务器;
接收所述DHCP服务器根据所述第二DHCP请求报文发送的第一DHCP响应报文;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址;
封装所述第一DHCP响应报文为第二DHCP响应报文;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址;
发送所述第二DHCP响应报文至所述对端隧道端点设备。
在第一种可能的实现方式中,所述接收对端隧道端点设备发送的第一DHCP请求报文之后,还包括:在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述封装所述第一DHCP响应报文为第二DHCP响应报文具体为:根据记录的所述对端隧道端点设备的地址信息,对所述第一DHCP响应报文进行封装处理;其中,所述第一DHCP请求报文的标识信息与所述第一DHCP响应报文的标识信息一致。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第一DHCP响应报文为DHCP ACK报文时,所述对所述第一DHCP响应报文进行封装处理之后,还包括:删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息;或者
所述第一DHCP响应报文为DHCP Offer报文,并且在预设的时间间隔内没有接收到DHCP ACK报文时,所述方法还包括:删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
第二方面,本发明实施例还提供了一种DHCP报文的处理方法,所述方法包括:
接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址;其中,所述第一DHCP响应报文为DHCP Offer报文;
对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址;
发送所述第二DHCP响应报文至所述虚拟机;
接收所述虚拟机根据所述第二DHCP响应报文发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文;
封装所述第一DHCP请求报文为第二DHCP请求报文;其中,所述第二DHCP请求报文为单播报文;
发送所述第二DHCP请求报文至所述对端隧道端点设备。
在第一种可能的实现方式中,所述接收对端隧道端点设备发送的第一DHCP响应报文之后,还包括:在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述封装所述第一DHCP请求报文为第二DHCP请求报文具体为:根据记录的所述对端隧道端点设备的地址信息,对所述第一DHCP响应报文进行封装处理;其中,所述第一DHCP请求报文的标识信息与所述第一DHCP响应报文的标识信息一致。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述封装所述第一DHCP请求报文为第二DHCP请求报文之后,还包括:在预设时间间隔内删除所记录的所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
第三方面,本发明实施例提供了一种DHCP报文的处理装置,所述装置包括:
接收单元,用于接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息,将所述第一DHCP请求报文传输至解封装单元;
所述解封装单元,用于接收所述接收单元传输的所述第一DHCP请求报文,对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文,将所述第二DHCP请求报文传输至发送单元;
所述发送单元,用于根据所述解封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至DHCP服务器;
所述接收单元,还用于接收所述DHCP服务器接收到所述第二DHCP请求报文后发送的第一DHCP响应报文,将所述第一DHCP响应报文传输至封装单元;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址;
所述封装单元,用于接收所述接收单元发送的所述第一DHCP响应报文,封装所述第一DHCP响应报文为第二DHCP响应报文,将所述第二DHCP响应报文传输至所述发送单元;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址;
所述发送单元,还用于接收所述封装单元发送的所述第二DHCP响应报文DHCP报文,发送所述第二DHCP响应报文至所述对端隧道端点设备。
在第一种可能的实现方式中,所述装置还包括:记录单元,用于在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述封装单元具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP请求报文的标识信息一致的所述第一DHCP响应报文进行封装处理。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:删除单元,用于所述DHCP响应报文为DHCP确定ACK报文时,或者所述DHCP响应报文为DHCP Offer报文并且在预设的时间间隔内没有接收到所述DHCP ACK报文时,删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
第四方面,本发明实施例还提供了一种DHCP报文的处理装置,所述装置包括:
接收单元,用于接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址,将所述第一DHCP响应报文传输至解封装单元;其中,所述第一DHCP响应报文为DHCP Offer报文;
解封装单元,用于接收所述接收单元传输的所述第一DHCP响应报文,对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址,将所述第二DHCP响应报文传输至发送单元;
发送单元,用于根据所述解封装单元发送的所述第二DHCP响应报文,发送所述第二DHCP响应报文至所述;
所述接收单元,还用于根据所述DHCP客户端接收到所述第二DHCP响应报文后发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文,将所述第一DHCP请求报文传输至封装单元;
封装单元,用于接收所述接收单元发送的所述第一DHCP请求报文,封装所述第一DHCP请求报文为第二DHCP请求报文,将所述第二DHCP请求报文至所述发送单元;其中,所述第二DHCP请求报文为单播报文;
所述发送单元,还用于接收所述封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至所述对端隧道端点设备。
在第一种可能的实现方式中,所述装置还包括:记录单元,用于在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述封装单元具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP响应报文的标识信息一致的所述第一DHCP请求报文进行封装处理。
结合第四方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:删除单元,用于在预设时间间隔内删除所记录的所述DHCP Offer报文的标识信息和所述对端隧道端点设备的地址信息。
第五方面,本发明实施例提供了一种DHCP报文的处理系统,所述系统包括上述DHCP报文的处理装置。
本发明实施例中,DHCP客户端与DHCP服务器在使用隧道协议传输DHCP报文时,DHCP服务器的隧道端点设备接收对端隧道端点设备发送的第一DHCP请求报文,第一DHCP请求报文中携带有虚拟机的MAC地址信息;对第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;发送第二DHCP请求报文至DHCP服务器;接收DHCP服务器接收到第二DHCP请求报文后发送的第一DHCP响应报文;其中,第一DHCP响应报文为广播报文,并且携带有分配给虚拟机的IP地址;封装第一DHCP响应报文为第二DHCP响应报文;其中,第二DHCP响应报文为单播报文,并且携带分配给虚拟机的IP地址;发送第二DHCP响应报文至对端隧道端点设备。由此,本发明实施例实现了隧道协议中DHCP服务器的隧道端点设备通过单播的形式发送DHCP响应报文,降低网络流量,提高网络资源的利用率。
附图说明
图1为本发明实施例提供的一种DHCP报文的处理方法所应用的场景示意图;
图2为本发明实施例提供的另一DHCP报文的处理方法所应用的场景示意图;
图3为本发明实施例提供的另一DHCP报文的处理方法所应用的场景示意图
图4为本发明实施例提供的一种DHCP报文的处理方法流程图;
图5为本发明实施例提供的另一DHCP报文的处理方法流程图;
图6为本发明实施例提供的一种隧道协议中DHCP报文的处理方法的信息交互图;
图7为本发明实施例提供的一种DHCP报文的处理装置示意图;
图8为本发明实施例提供的另一DHCP报文的处理装置示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例提供的DHCP报文的处理方法在实际应用时,作为一种新的DHCP报文的处理方法可应用于DHCP客户端和DHCP服务器在同一个可扩展虚拟局域网的场景,或DHCP客户端和DHCP服务器在不同的可扩展虚拟局域网的场景,或DHCP客户端在可扩展虚拟局域网但是DHCP在虚拟机局域网的场景。图1为本发明实施例提供的一种DHCP报文的处理方法所应用的场景示意图。如图1所示,DHCP客户端和DHCP服务器在同一个可扩展虚拟局域网中,DHCP客户端为位于服务器A中的虚拟机1,并且服务器A中部署了一个可扩展虚拟局域网VXLAN1,虚拟机1和其他虚拟机的通信要通过服务器A中的可扩展虚拟局域网的隧道端点(VXLAN Tunnel End Point,VTEP)设备,即VTEP1;而DHCP服务器为位于服务器B中的虚拟机2,并且虚拟机2也加入了VXLAN1中,虚拟机2和其他虚拟机的通信都要通过服务器B中的VTEP2。当虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,其中,封装后的DHCP请求报文携带虚拟机1的MAC地址;其中与VTEP1属于同一个VXLAN的VTEP2对封装后的DHCP请求报文进行解封装后可发送到虚拟机2,并且可以记录该封装后的DHCP请求报文的源VTEP地址,虚拟机2接收到DHCP请求报文后,可发送DHCP响应报文至VTEP2,其中,DHCP响应报文为广播报文。由VTEP2根据记录的源VTEP地址,即VTEP1的地址对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
图2为本发明实施例提供的另一DHCP报文的处理方法所应用的场景示意图。如图2所示,DHCP客户端为位于部署了VXLAN1的服务器A的虚拟机1,DHCP服务器为位于部署了VXLAN2的服务器B的虚拟机2,虚拟机1和其他虚拟机的通信要通过服务器A中的VTEP1,虚拟机2和其他虚拟机的通信都要通过服务器B中的VTEP2。当虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,其中,封装后的DHCP请求报文携带虚拟机1的MAC地址;如果转发地址为属于不同于VXLAN1的VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,网关中的DHCP中继根据配置信息获取虚拟机2的位置信息,VTEP3根据该虚拟机2的位置信息重新封装VXLAN头并转发重新封装后的DHCP请求报文到VXLAN2的VTEP2,VTEP2接收到重新封装后的DHCP请求报文后进行解封装处理,VTEP2对重新封装后的DHCP请求报文进行解封装后发送到虚拟机2,虚拟机2接收到VTEP2解封装后的DHCP请求报文后,可发送DHCP响应报文至VTEP2,VTEP2对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP3,VTEP3根据记录的VTEP1的地址单播发送DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
图3为本发明实施例提供的另一DHCP报文的处理方法所应用的场景示意图。如图3所示,DHCP客户端为位于部署了VXLAN1的服务器A的虚拟机1,DHCP服务器位于非VXLAN网络中,虚拟机1和其他虚拟机的通信要通过服务器A中的VTEP1。虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,其中,封装后的DHCP请求报文携带虚拟机1的MAC地址;如果转发地址为不属于VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,而网关中的DHCP中继根据配置信息获取DHCP服务器的位置信息,VTEP3则根据该DHCP服务器的位置信息对DHCP请求报文进行处理并转发到DHCP服务器,DHCP服务器接收到VTEP3处理后的DHCP请求报文后,可通过发送DHCP响应报文到网关,DHCP响应报文为广播报文,网关中的VTEP3根据记录的源VTEP地址,即以VTEP1的地址对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
上面只是描述了本发明实施例提供的DHCP报文的处理方法、装置和系统的3种应用场景,但是上述场景并不用于限制本发明的保护范围。本发明实施例提供的DHCP报文的处理方法、装置和系统可以应用于隧道协议中DHCP报文的传输。
下面的实施例主要以图1所述的应用场景为例进行方案的描述,
图4为本发明实施例提供的一种DHCP报文的处理方法流程图。该实施例主要以DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景进行描述,该实施例的执行主体是DHCP服务器的隧道端点设备,如图4所示,该实施例包括以下步骤:
步骤401,接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息。
本实施例中,DHCP客户端为位于服务器A中的虚拟机1,并且服务器A中部署了VXLAN1,服务器A中VXLAN1的隧道端点为VTEP1,DHCP服务器为位于服务器B中的虚拟机2,并且服务器B中也部署了VXLAN1,服务器B中该VXLAN1的隧道端点为VTEP2。
具体地,VTEP1接收到虚拟机1发送的DHCP请求报文后,对虚拟机1发送的DHCP请求报文封装VXLAN头和外层封装头,得到第一DHCP请求报文;其中,封装后的DHCP请求报文携带虚拟机1的MAC地址,VXLAN头中包括VXLAN网络标识(VXLAN Network Indentifier,VNI)信息和Flag标识信息,外层封装头包括VTEP1的MAC地址和IP地址,以及组播组的MAC地址信息和IP地址信息。
VTEP1生成第一DHCP请求报文后,根据组播组的MAC地址信息和IP地址信息,将第一DHCP请求报文转发到组播组内的所有VTEP,包括VTEP2。
步骤402,对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文。
VTEP2接收到第一DHCP请求报文后,可从第一DHCP请求报文中提取XID标识信息,从第一DHCP请求报文的外层封装头中提取VTEP1的MAC地址和IP地址。
VTEP2接收到第一DHCP请求报文后,还对该第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文。
提取DHCP报文的XID标识信息和VTEP1的MAC地址和IP地址后,可在数据库中或者哈希表中保存XID标识信息和VTEP1的地址信息的映射关系。
步骤403,发送所述第二DHCP请求报文至DHCP服务器。
VTEP2解封装得到第二DHCP请求报文后,在VTEP2的VXLAN1范围内广播发送第二DHCP请求报文。
步骤404,根据所述第二DHCP请求报文发送的第一DHCP响应报文;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址。
VTEP2广播发送第二DHCP请求报文后,DHCP服务器,即虚拟机2接收到该第二DHCP请求报文后,会做出响应,即发送第一DHCP响应报文。
其中,第一DHCP响应报文中IP头中的源IP地址为虚拟机2的IP地址,Ethernet头中的源MAC地址为虚拟机2的MAC地址。该DHCP响应报文的XID标识信息与DHCP请求报文的XID标识信息一致。该第一DHCP响应报文携带有虚拟机2为虚拟机1分配的IP地址信息。
虚拟机2发送第一DHCP响应报文至VTEP2。
步骤405,封装所述第一DHCP响应报文为第二DHCP响应报文;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址。
其中,封装所述第一DHCP响应报文为第二DHCP响应报文具体为:根据记录的所述对端隧道端点设备的地址信息,对所述第一DHCP响应报文进行封装处理;其中,所述第一DHCP请求报文的XID标识信息与所述第一DHCP响应报文的XID标识信息一致。
具体地,VTEP2接收到第一DHCP响应报文后,根据第一DHCP响应报文的XID标识信息,在数据库中或者哈希表中查找DHCP响应报文的XID标识信息对应的VTEP1的地址信息,并对该第一DHCP响应报文进行VXLAN封装,即添加VXLAN头和外层封装头,得到第二DHCP响应报文。其中,该第二DHCP响应报文的外层封装头中的目的IP地址是在第一DHCP请求报文中查询的VTEP1的IP地址,目的MAC地址是在第一DHCP请求报文中查询的VTEP1的MAC地址。
步骤406,发送所述第二DHCP响应报文至所述对端隧道端点设备。
发送所述第二DHCP响应报文至所述对端隧道端点设备具体为:根据所述隧道端点设备的地址信息,以单播的形式发送所述第二DHCP响应报文至所述对端隧道端点设备。
VTEP2对第一DHCP响应报文进行封装得到第二DHCP响应报文后,可发送第二DHCP响应报文至目的IP地址对应的VTEP1。
需要说明的是,根据所使用的隧道协议,对第一DHCP响应报文封装对应的隧道协议头,例如,如果是VXLAN协议,则对DHCP报文进行VXLAN封装,如果是NVGRE协议,则对DHCP报文进行NVGRE封装。
在VTEP2接收到DHCP服务器发送的第一DHCP响应报文时,根据DHCP报文信息中的OP参数的参数值,判断第一DHCP响应报文是否是DHCP ACK报文,如果是,则在封装DHCP ACK报文后,可删除记录的所述第一DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。即使第一DHCP响应报文不是DHCP ACK报文而是DHCP Offer报文,如果在预设的时间间隔内没有接收到DHCP ACK报文,也可删除记录的所述DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。
需要说明的是,本发明实施例中提取的DHCP请求报文为与DHCP响应报文对应的一类报文,可以为DHCP Discover报文或DHCP Request报文。
本发明实施例中,虚拟机1与虚拟机2在使用隧道协议传输DHCP报文时,虚拟机2的隧道端点设备接收对端隧道端点设备发送的第一DHCP请求报文,第一DHCP请求报文中携带有虚拟机1的MAC地址信息;对第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;发送第二DHCP请求报文至虚拟机2;接收虚拟机2根据所述第二DHCP请求报文发送的第一DHCP响应报文;其中,第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机1的IP地址;封装第一DHCP响应报文为第二DHCP响应报文;其中,第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机1的IP地址;发送第二DHCP响应报文至对端隧道端点设备。由此,本发明实施例实现了隧道协议中DHCP服务器的隧道端点设备通过单播的形式发送DHCP响应报文,降低网络流量,提高网络资源的利用率。
上述实施例以DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景,即虚拟机1与虚拟机2位于同一个VXLAN的应用场景,简单描述了DHCP报文的处理方法。
对于DHCP客户端与DHCP服务器位于不同的VXLAN的应用场景,当虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,如果转发地址为属于不同于VXLAN1的VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,网关中的DHCP中继根据配置信息获取DHCP服务器的位置信息,VTEP3根据该DHCP服务器的位置信息重新封装VXLAN头并转发DHCP请求报文到VXLAN2的VTEP2,VTEP2接收到DHCP请求报文后进行解封装处理,VTEP2将解封装后的DHCP请求报文发送到虚拟机2,虚拟机2接收到解封装后的DHCP请求报文后,可发送DHCP响应报文至VTEP2,其中,DHCP响应报文为广播报文;VTEP2对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP3,VTEP3根据记录的VTEP1的地址单播发送DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
对于DHCP客户端位于VXLAN,即虚拟机1位于VXLAN,DHCP服务器位于非VXLAN的应用场景,虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,其中,封装后的DHCP请求报文携带虚拟机1的MAC地址。如果转发地址为不属于VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,而网关中的DHCP中继根据配置信息获取DHCP服务器的位置信息,VTEP3则根据该DHCP服务器的位置信息对DHCP请求报文进行处理并转发到DHCP服务器,DHCP服务器根据接收到VTEP3处理后的DHCP请求报文,发送DHCP响应报文到网关,其中,DHCP响应报文为单播报文;网关中的VTEP3根据记录的源VTEP,即VTEP1的地址对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
为了降低DHCP请求报文的网络流量,本发明实施例还提供了一种DHCP报文的处理方法。图5为本发明实施例提供的另一DHCP报文的处理方法流程图。该实施例主要以DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景进行描述,该实施例的执行主体是DHCP客户端的隧道端点设备,如图5所示,该实施例包括以下步骤:
步骤501,接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址;其中,所述第一DHCP响应报文为DHCP Offer报文。
本发明实施例中,DHCP客户端为位于服务器A中的虚拟机1,并且服务器A中部署了VXLAN1,服务器A中VXLAN1的隧道端点为VTEP1,DHCP服务器为位于服务器B中的虚拟机2,并且服务器B中也部署了VXLAN1,服务器B中该VXLAN1的隧道端点为VTEP2。
具体地,虚拟机1通过VTEP1和VTEP2发送DHCP Discover报文至虚拟机2后,虚拟机2发送DHCP Offer报文。VTEP2接收到DHCP Offer报文后,对其进行封装,得到第一DHCP响应报文,并发送至VTEP1。
步骤502,对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址。
VTEP1接收到第一DHCP响应报文后,还包括:在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的XID标识信息和所述VTEP2的地址信息。
VTEP1接收到第一DHCP响应报文后,在外层封装头中提取VTEP2的地址信息,对该第一DHCP响应报文进行解封装处理,并在第一DHCP响应报文中提取XID标识信息,在数据库或者哈希表中保存VTEP2的地址信息和第一DHCP响应报文的XID标识信息。
步骤503,发送所述第二DHCP响应报文至虚拟机1。
VTEP1解封装得到第二DHCP响应报文后,在VTEP2的VXLAN1范围内广播发送第二DHCP响应报文。
步骤504,接收所述虚拟机1根据所述第二DHCP响应报文发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文。
VTEP1广播发送第二DHCP响应报文(即DHCP Offer报文)后,虚拟机1接收到该第二DHCP响应报文后,发送第一DHCP请求报文,。
步骤505,封装所述第一DHCP请求报文为第二DHCP请求报文;其中,所述第二DHCP请求报文为单播报文。
VTEP1接收到第一DHCP请求报文后,可根据第一DHCP请求报文的XID标识信息,在数据库中查询记录的VTEP2的地址信息,并对第一DHCP请求报文进行封装得到第二DHCP请求报文。
封装所述第一DHCP请求报文为第二DHCP请求报文具体为:根据记录的所述VTEP2的地址信息,对所述第一DHCP请求报文进行封装处理;其中,所述第一DHCP请求报文的XID标识信息与所述第一DHCP响应报文的XID标识信息一致。
步骤506,发送所述第二DHCP请求报文至所述VTEP2。
VTEP1发送所述第二DHCP请求报文至所述VTEP2具体为:根据所述VTEP2的地址信息,以单播的形式发送所述第二DHCP请求报文至所述VTEP2。
VTEP1在对第一DHCP请求报文进行封装处理得到第二DHCP请求报文后,可在预设的时间间隔内删除记录的所述DHCP响应报文的XID标识信息和所述VTEP2的地址信息,以便清除冗余数据和防止恶意攻击。
需要说明的是,本发明实施例中提取的DHCP请求报文为与DHCP响应报文对应的一类报文,可以为DHCP Discover报文或DHCP Request报文。
本发明实施例中,虚拟机1端的VTEP1接收VTEP2发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机1的IP地址;其中,所述第一DHCP响应报文为DHCP Offer报文;对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机1的IP地址;发送所述第二DHCP响应报文至虚拟机1;接收所述虚拟机1根据所述第二DHCP响应报文发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文;封装所述第一DHCP请求报文为第二DHCP请求报文;其中,所述第二DHCP请求报文为单播报文;发送所述第二DHCP请求报文至所述VTEP2。由此,本发明实施例实现了隧道协议中DHCP客户端的隧道端点设备通过单播的形式发送DHCP Request报文,降低网络流量,提高网络资源的利用率。
对于DHCP客户端与DHCP服务器不在同一个VXLAN的场景,或者DHCP客户端位于VXLAN网络、DHCP服务器位于非VXLAN网络的场景,DHCP客户端的VTEP1也可以在接收到的DHCP Offer报文后记录对端VTEP的地址信息,而在VTEP1接收到DHCP客户端侧的DHCPRequest报文后,可根据记录的对端VTEP的地址信息单播发送DHCP Request报文。由此,降低网络流量,提高网络资源的利用率。
图6为本发明实施例提供的一种隧道协议中DHCP报文的处理方法的信息交互图。该实施例主要以DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景进行描述,本实施例中,DHCP客户端为位于服务器A中的虚拟机1,并且服务器A中部署了VXLAN1,服务器A中VXLAN1的隧道端点为VTEP1,DHCP服务器为位于服务器B中的虚拟机2,并且服务器B中也部署了VXLAN1,服务器B中该VXLAN1的隧道端点为VTEP2。如图6所示,本实施例包括以下步骤:
步骤601,虚拟机1发送第一DHCP请求报文至VTEP1。
该第一DHCP请求报文中包括DHCP请求报文的XID标识信息。
步骤602,VTEP1对第一DHCP请求报文进行封装处理,得到第二DHCP请求报文。
具体地,对第一DHCP请求报文封装VXLAN头和外层封装头,得到第二DHCP请求报文。其中,VXLAN头中包括VXLAN网络标识(VXLAN Network Indentifier,VNI)信息和Flag标识信息,外层封装头包括VTEP1的MAC地址和IP地址,以及组播组的MAC地址信息和IP地址信息。
步骤603,VTEP1组播发送第二DHCP请求报文。
VTEP1生成第二DHCP请求报文后,根据组播组的MAC地址信息和IP地址信息,将第二DHCP请求报文转发到组播组内的所有VTEP,包括VTEP2。
步骤604,VTEP2接收第二DHCP请求报文后,对第二DHCP请求报文进行解封装,得到第一DHCP请求报文,并记录第一DHCP请求报文的XID标识信息和VTEP1的地址信息。
VTEP2接收到第二DHCP请求报文后,对该第二DHCP请求报文进行解封装处理,得到第一DHCP请求报文,从第二DHCP请求报文的DHCP报文信息中提取DHCP报文的XID标识信息,从第二DHCP报文的外层封装头中提取VTEP1的MAC地址和IP地址。
从第二DHCP请求报文的DHCP报文信息中提取DHCP报文的XID标识信息,从第二DHCP报文的外层封装头中提取VTEP1的MAC地址和IP地址后,可在数据库中或者哈希表中保存XID标识信息和VTEP1的地址信息的映射关系。
步骤605,VTEP2广播发送第一DHCP请求报文。
VTEP2解封装得到第一DHCP请求报文后,在VTEP2的虚拟机2所在的VXLAN的范围内广播发送第一DHCP请求报文。
步骤606,虚拟机2接收到该第一DHCP请求报文后,做出响应,发送第一DHCP响应报文。
VTEP2广播发送第一DHCP请求报文后,虚拟机2接收到该第一DHCP请求报文后,会做出响应,即发送第一DHCP响应报文。
步骤607,VTEP2接收到第一DHCP响应报文后,根据第一DHCP响应报文中DHCP响应报文的XID标识信息,查询所记录的对应的VTEP1的地址信息,并对第一DHCP响应报文进行封装,得到第二DHCP响应报文。
第一DHCP响应报文中IP头中的源IP地址为虚拟机2的IP地址,Ethernet头中的源MAC地址为虚拟机2的MAC地址。该DHCP响应报文的XID标识信息与DHCP请求报文的DHCP响应报文的XID标识信息一致。
VTEP2接收到第一DHCP响应报文后,根据DHCP响应报文的XID标识信息,在数据库中或者哈希表中查找DHCP响应报文的XID标识信息对应的VTEP1的地址信息,并对该第一DHCP响应报文进行VXLAN封装,即添加VXLAN头和外层封装头,得到第二DHCP响应报文。其中,该第二DHCP响应报文的外层封装头中的目的IP地址是在第二DHCP请求报文中提取并记录的VTEP1的IP地址,目的MAC地址是在第二DHCP请求报文中提取并记录的VTEP1的MAC地址。
步骤608,VTEP2单播发送第二DHCP响应报文至VTEP1。
VTEP2可发送第二DHCP响应报文至目的I P地址对应的VTEP1。
步骤609,VTEP1接收到第二DHCP响应报文后,对第二DHCP响应报文进行解封装,得到第一DHCP响应报文。
步骤610,VTEP1广播发送第一DHCP响应报文。
VTEP1解封装得到第一DHCP响应报文后,在VTEP1的VXLAN1范围内广播发送第一DHCP响应报文。由此,本发明实施例实现了隧道协议中DHCP服务器的隧道端点设备通过单播的形式发送DHCP响应报文,降低网络流量,提高网络资源的利用率。
相应地,本发明实施例还提供了一种DHCP报文的处理装置。图7为本发明实施例提供的一种DHCP报文的处理装置示意图。如图7所示,该装置包括以下单元:
接收单元701,用于接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息,将所述第一DHCP请求报文传输至解封装单元。
本实施例中,DHCP客户端位于服务器A中的虚拟机1中,并且服务器A中部署了VXLAN1,服务器A中VXLAN1的隧道端点为VTEP1,DHCP服务器位于服务器B中的虚拟机2中,并且服务器B中也部署了VXLAN1,服务器B中该VXLAN1的隧道端点为VTEP2。
具体地,VTEP1接收到虚拟机1发送出的第二DHCP请求报文后,对第二DHCP请求报文封装VXLAN头和外层封装头,得到第一DHCP请求报文。其中,VXLAN头中包括VNI信息和标识Flag信息,外层封装头包括VTEP1的MAC地址和IP地址,以及组播组的MAC地址信息和IP地址信息。
VTEP1生成第一DHCP请求报文后,根据组播组的MAC地址信息和IP地址信息,将第一DHCP请求报文转发到组播组内的所有VTEP,包括VTEP2。
解封装单元702,用于接收所述接收单元传输的所述第一DHCP请求报文,对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文,将所述第二DHCP请求报文传输至发送单元。
发送单元703,用于接收所述解封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至DHCP服务器。
所述发送单元703具体用于:在所述隧道端点设备的VXLAN1范围内以广播的形式发送所述第二DHCP请求报文。
所述接收单元701,还用于接收所述DHCP服务器接收到所述第二DHCP请求报文后发送的第一DHCP响应报文,将所述第一DHCP响应报文传输至封装单元;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址。
其中,第一DHCP响应报文中IP头中的源IP地址为DHCP服务器的IP地址,Ethernet头中的源MAC地址为DHCP服务器的MAC地址。该DHCP响应报文的XIDXID标识信息与DHCP请求报文的DHCP响应报文一致。该DHCP响应报文中携带有DHCP服务器为虚拟机1分配的IP地址信息。
封装单元704,用于接收所述接收单元发送的所述第一DHCP响应报文,封装所述第一DHCP响应报文为第二DHCP响应报文,将所述第二DHCP响应报文传输至所述发送单元;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址。
所述封装单元具体用于:对所述第一DHCP响应报文添加隧道协议头。例如,如果是VXLAN协议,则对DHCP报文进行VXLAN封装,即封装VXLAN报文头信息,如果是NVGRE协议,则对DHCP报文进行NVGRE封装,即封装NVGRE报文头信息。
具体地,VTEP2接收到第一DHCP响应报文后,根据DHCP响应报文的XID标识信息,在数据库中或者哈希表中查找DHCP响应报文的XID标识信息对应的VTEP1的地址信息,并对该第一DHCP响应报文进行VXLAN封装,即添加VXLAN头和外层封装头,得到第二DHCP响应报文。其中,该第二DHCP响应报文的外层封装头中的目的IP地址是在第一DHCP请求报文中查询的VTEP1的IP地址,目的MAC地址是在第一DHCP请求报文中查询的VTEP1的MAC地址。
所述发送单元703,还用于根据所述封装单元发送的所述第二DHCP响应报文DHCP报文,发送所述第二DHCP响应报文至所述对端隧道端点设备。
所述发送单元具体用于:根据所述隧道端点设备的地址信息,以单播的形式发送所述第二DHCP响应报文至所述对端隧道端点设备。
优选地,本发明实施例提供的装置还包括:记录单元705,用于在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息。
VTEP2接收到第一DHCP请求报文后,可从第一DHCP请求报文中提取第一DHCP请求报文的DHCP报文信息中提取DHCP请求报文的标识XID信息,从第一DHCP请求报文的外层封装头中提取VTEP1的MAC地址和IP地址。提取DHCP报文的XID信息和VTEP1的MAC地址和IP地址后,可在数据库中或者哈希表中保存XID信息和VTEP1的地址信息的映射关系。
封装单元704具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP请求报文的XID标识信息一致的所述第一DHCP响应报文进行封装处理。
优选地,本发明实施例提供的装置还包括:删除单元706,用于所述DHCP响应报文为DHCP确定ACK报文时,或者所述DHCP响应报文为DHCP Offer报文并且在预设的时间间隔内没有接收到所述DHCP ACK报文时,删除所记录的所述第一DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息。
在VTEP2接收到DHCP服务器发送的第一DHCP响应报文时,根据DHCP报文信息中的OP参数的参数值,判断第一DHCP响应报文是否是DHCP ACK报文,如果是,则在封装DHCP ACK报文后,可删除记录的所述第一DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。即使第一DHCP响应报文不是DHCP ACK报文而是DHCP Offer报文,如果在预设的时间间隔内没有接收到DHCP ACK报文,也可删除记录的所述DHCP请求报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。
上述实施例以DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景,简单描述了DHCP报文的处理方法。
对于DHCP客户端与DHCP服务器位于不同的VXLAN的应用场景,当虚拟机1发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,如果转发地址为属于不同于VXLAN1的VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,网关中的DHCP中继根据配置信息获取DHCP服务器的位置信息,VTEP3根据该DHCP服务器的位置信息重新封装VXLAN头并转发DHCP请求报文到VXLAN2的VTEP2,VTEP2接收到DHCP请求报文后进行解封装处理,VTEP2对DHCP请求报文进行解封装后发送到虚拟机2,虚拟机2接收到DHCP请求报文后,可发送DHCP响应报文至VTEP2,VTEP2对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP3,VTEP3根据记录的VTEP1的地址单播发送DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
需要说明的是,本发明实施例中提取的DHCP请求报文为与DHCP响应报文对应的一类报文,可以为DHCP Discover报文或DHCP Request报文。
对于DHCP客户端位于VXLAN,DHCP服务器位于非VXLAN的应用场景,DHCP客户端发出DHCP请求报文时,VTEP1将对该DHCP请求报文封装VXLAN头,并按照组播地址或对端VTEP地址转发封装后的DHCP请求报文,如果转发地址为不属于VXLAN,则网关中的VTEP3将对该封装后的DHCP请求报文进行解封装并记录该封装后的DHCP请求报文的源VTEP地址,即VTEP1的地址,而网关中的DHCP中继根据配置信息获取DHCP服务器的位置信息,VTEP3则根据该DHCP服务器的位置信息进行DHCP请求报文的处理并转发到DHCP Server,DHCP Server接收到DHCP请求报文后,可通过发送DHCP响应报文到网关,网关中的VTEP3根据记录的源VTEP,即VTEP1的地址对DHCP响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP1。由此降低了DHCP报文的网络流量,提高了网络资源的利用率。
相应地,本发明实施例还提供了一种DHCP报文的处理装置。图8为本发明实施例提供的另一DHCP报文的处理装置示意图。如图8所示,该实施例包括以下单元:
接收单元801,用于接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址,将所述第一DHCP响应报文传输至解封装单元。
本发明实施例中,DHCP客户端位于服务器A中的虚拟机1中,并且服务器A中部署了VXLAN1,服务器A中VXLAN1的隧道端点为VTEP1,DHCP服务器位于服务器B中的虚拟机2中,并且服务器B中也部署了VXLAN1,服务器B中该VXLAN1的隧道端点为VTEP2。
具体地,DHCP客户端通过VTEP1和VTEP2发送DHCP Discover报文至DHCP服务器后,DHCP服务器发送DHCP Offer报文。VTEP2接收到DHCP Offer报文后,对其进行封装,得到第一DHCP响应报文,并发送至VTEP1。
解封装单元802,用于接收所述接收单元传输的所述第一DHCP响应报文,对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址,将所述第二DHCP响应报文传输至发送单元;其中,所述第一DHCP响应报文为DHCP Offer报文。
VTEP1接收到第二DHCP报文后,在外层封装头中提取VTEP2的地址信息,对该DHCP报文进行解封装处理,并在DHCP响应报文中提取报文的XID标识信息,在数据库或者哈希表中保存VTEP2的地址信息和DHCP响应报文的XID标识信息。
发送单元803,用于根据所述解封装单元发送的所述第二DHCP响应报文,发送所述第二DHCP响应报文至所述虚拟机。
所述接收单元801,还用于接收所述DHCP客户端接收到所述第二DHCP响应报文后发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文,将所述第一DHCP请求报文传输至封装单元。
所述封装单元804,用于接收所述接收单元发送的所述第一DHCP请求报文,封装所述第一DHCP请求报文为第二DHCP请求报文,将所述第二DHCP请求报文至所述发送单元;其中,所述第二DHCP请求报文为单播报文。
所述发送单元803,还用于根据所述封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至所述对端隧道端点设备。
所述发送单元803具体用于:根据所述隧道端点设备的地址信息,以单播的形式发送所述第二DHCP报文至所述对端隧道端点设备。
所述装置还包括:记录单元805,用于在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的XID标识信息和所述对端隧道端点设备的地址信息。
VTEP1接收到第一DHCP响应报文后,在外层封装头中提取VTEP2的地址信息,对该第一DHCP响应报文进行解封装处理,并在第一DHCP响应报文中提取报文的XID标识信息,在数据库或者哈希表中保存VTEP2的地址信息和DHCP响应报文的XID标识信息。
封装单元804具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP响应报文的XID标识信息一致的所述第一DHCP请求报文进行封装处理。
所述装置还包括:删除单元806,用于在预设时间间隔内删除所记录的所述DHCPOffer报文的XID标识信息和所述对端隧道端点设备的地址信息。
具体地,VTEP1在对第一DHCP请求报文进行封装处理得到第二DHCP请求报文后,可在预设的时间间隔内删除记录的所述DHCP响应报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。
由此,本发明实施例实现了隧道协议中DHCP客户端的隧道端点设备通过单播的形式发送DHCP Request报文,降低网络流量,提高网络资源的利用率。
对于DHCP客户端与DHCP服务器不在同一个VXLAN的场景,或者DHCP客户端位于VXLAN网络、DHCP服务器位于非VXLAN网络的场景,DHCP客户端的VTEP1也可以在接收到的DHCP Offer报文后记录对端VTEP的地址信息,而在VTEP1接收到DHCP客户端侧的DHCPRequest报文后,可根据记录的对端VTEP的地址信息单播发送DHCP Request报文。由此,降低网络流量,提高网络资源的利用率。
相应地,本发明实施例还提供了一种DHCP报文的处理系统。该系统中植入了上述DHCP报文的处理方法,包括DHCP客户端的隧道端点设备和DHCP服务器的隧道端点设备,对于DHCP客户端和DHCP服务器不在同一个VXLAN中的应用场景或者DHCP服务器不在VXLAN中的应用场景,该系统还包括网关,该网关中包括DHCP中继和支持隧道封装协议的VTEP。该系统中,DHCP客户端与DHCP服务器在使用隧道协议传输DHCP报文时,DHCP服务器的隧道端点设备接收对端隧道端点设备发送的第一DHCP请求报文,第一DHCP请求报文中携带有虚拟机的MAC地址信息;对第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;发送第二DHCP请求报文至DHCP服务器;接收DHCP服务器接收到第二DHCP请求报文后发送的第一DHCP响应报文;其中,第一DHCP响应报文为广播报文,并且携带有分配给虚拟机的IP地址;封装第一DHCP响应报文为第二DHCP响应报文;其中,第二DHCP响应报文为单播报文,并且携带分配给虚拟机的IP地址;发送第二DHCP响应报文至对端隧道端点设备。本发明实施例实现了隧道协议中DHCP服务器的隧道端点设备通过单播的形式发送DHCP响应报文,降低网络流量,提高网络资源的利用率。由此,本发明实施例提供的DHCP报文的处理系统也在本发明的保护范围内。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种动态主机配置协议DHCP报文的处理方法,其特征在于,所述方法包括:
接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息、所述第一DHCP请求报文的XID标识信息以及所述对端隧道端点设备的MAC地址和IP地址;
对所述第一DHCP请求报文进行解封装处理,从中提取并记录所述第一DHCP请求报文的XID标识信息与所述对端隧道端点设备的MAC地址和IP地址的映射关系,并得到第二DHCP请求报文;
发送所述第二DHCP请求报文至DHCP服务器;
接收所述DHCP服务器根据所述第二DHCP请求报文发送的第一DHCP响应报文;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址,所述第一DHCP响应报文的XID标识信息与所述第一DHCP请求报文的XID标识信息一致;
根据所述映射关系封装所述第一DHCP响应报文为第二DHCP响应报文;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址;
发送所述第二DHCP响应报文至所述对端隧道端点设备。
2.根据权利要求1所述的DHCP报文的处理方法,其特征在于,所述接收对端隧道端点设备发送的第一DHCP请求报文之后,还包括:在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
3.根据权利要求2所述的DHCP报文的处理方法,其特征在于,所述封装所述第一DHCP响应报文为第二DHCP响应报文具体为:根据记录的所述对端隧道端点设备的地址信息,对所述第一DHCP响应报文进行封装处理;其中,所述第一DHCP请求报文的标识信息与所述第一DHCP响应报文的标识信息一致。
4.根据权利要求2所述的DHCP报文的处理方法,其特征在于,所述第一DHCP响应报文为DHCP ACK报文时,所述根据所述映射关系封装所述第一DHCP响应报文为第二DHCP响应报文之后,还包括:删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息;或者
所述第一DHCP响应报文为DHCP Offer报文,并且在预设的时间间隔内没有接收到DHCPACK报文时,所述方法还包括:删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
5.一种动态主机配置协议DHCP报文的处理方法,其特征在于,所述方法包括:
接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址、所述第一DHCP响应报文的XID标识信息以及所述对端隧道端点设备的MAC地址和IP地址;其中,所述第一DHCP响应报文为DHCP Offer报文;
对所述第一DHCP响应报文进行解封装处理,从中提取并记录所述第一DHCP响应报文的XID标识信息与所述对端隧道端点设备的MAC地址和IP地址的映射关系,并得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址;
发送所述第二DHCP响应报文至所述虚拟机;
接收所述虚拟机根据所述第二DHCP响应报文发送的第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文,所述第一DHCP请求报文的XID标识信息与所述第一DHCP响应报文的XID标识信息一致;
根据所述映射关系封装所述第一DHCP请求报文为第二DHCP请求报文;其中,所述第二DHCP请求报文为单播报文;
发送所述第二DHCP请求报文至所述对端隧道端点设备。
6.根据权利要求5所述的DHCP报文的处理方法,其特征在于,所述接收对端隧道端点设备发送的第一DHCP响应报文之后,还包括:在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
7.根据权利要求6所述的DHCP报文的处理方法,其特征在于,所述封装所述第一DHCP请求报文为第二DHCP请求报文具体为:根据记录的所述对端隧道端点设备的地址信息,对所述第一DHCP请求报文进行封装处理;其中,所述第一DHCP请求报文的标识信息与所述第一DHCP响应报文的标识信息一致。
8.根据权利要求6所述的DHCP报文的处理方法,其特征在于,所述封装所述第一DHCP请求报文为第二DHCP请求报文之后,还包括:在预设时间间隔内删除所记录的所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
9.一种动态主机配置协议DHCP报文的处理装置,其特征在于,所述装置包括:
接收单元,用于接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息、所述第一DHCP请求报文的XID标识信息以及所述对端隧道端点设备的MAC地址和IP地址,将所述第一DHCP请求报文传输至解封装单元;
所述解封装单元,用于接收所述接收单元传输的所述第一DHCP请求报文,对所述第一DHCP请求报文进行解封装处理,从中提取并记录所述第一DHCP请求报文的XID标识信息与所述对端隧道端点设备的MAC地址和IP地址的映射关系,并得到第二DHCP请求报文,将所述第二DHCP请求报文传输至发送单元;
所述发送单元,用于根据所述解封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至DHCP服务器;
所述接收单元,还用于接收所述DHCP服务器接收到所述第二DHCP请求报文后发送的第一DHCP响应报文,将所述第一DHCP响应报文传输至封装单元;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址,所述第一DHCP响应报文的XID标识信息与所述第一DHCP请求报文的XID标识信息一致;
所述封装单元,用于接收所述接收单元发送的所述第一DHCP响应报文,根据所述映射关系封装所述第一DHCP响应报文为第二DHCP响应报文,将所述第二DHCP响应报文传输至所述发送单元;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址;
所述发送单元,还用于接收所述封装单元发送的所述第二DHCP响应报文,发送所述第二DHCP响应报文至所述对端隧道端点设备。
10.根据权利要求9所述的DHCP报文的处理装置,其特征在于,所述装置还包括:记录单元,用于在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
11.根据权利要求10所述的DHCP报文的处理装置,其特征在于,所述封装单元具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP请求报文的标识信息一致的所述第一DHCP响应报文进行封装处理。
12.根据权利要求10所述的DHCP报文的处理装置,其特征在于,所述装置还包括:删除单元,用于所述第一DHCP响应报文为DHCP确定ACK报文时,或者所述第一DHCP响应报文为DHCP Offer报文并且在预设的时间间隔内没有接收到所述DHCP ACK报文时,删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。
13.一种动态主机配置协议DHCP报文的处理装置,其特征在于,所述装置包括:
接收单元,用于接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址、所述第一DHCP响应报文的XID标识信息以及所述对端隧道端点设备的MAC地址和IP地址,将所述第一DHCP响应报文传输至解封装单元;其中,所述第一DHCP响应报文为DHCP Offer报文;
解封装单元,用于接收所述接收单元传输的所述第一DHCP响应报文,对所述第一DHCP响应报文进行解封装处理,从中提取并记录所述第一DHCP响应报文的XID标识信息与所述对端隧道端点设备的MAC地址和IP地址的映射关系,并得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址,将所述第二DHCP响应报文传输至发送单元;
发送单元,用于根据所述解封装单元发送的所述第二DHCP响应报文,发送所述第二DHCP响应报文至所述虚拟机;
所述接收单元,还用于接收所述虚拟机根据所述第二DHCP响应报文发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文,所述第一DHCP请求报文的XID标识信息与所述第一DHCP响应报文的XID标识信息一致,将所述第一DHCP请求报文传输至封装单元;
封装单元,用于接收所述接收单元发送的所述第一DHCP请求报文,根据所述映射关系封装所述第一DHCP请求报文为第二DHCP请求报文,将所述第二DHCP请求报文至所述发送单元;其中,所述第二DHCP请求报文为单播报文;
所述发送单元,还用于接收所述封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至所述对端隧道端点设备。
14.根据权利要求13所述的DHCP报文的处理装置,其特征在于,所述装置还包括:记录单元,用于在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的标识信息和所述对端隧道端点设备的地址信息。
15.根据权利要求14所述的DHCP报文的处理装置,其特征在于,所述封装单元具体用于:根据记录的所述对端隧道端点设备的地址信息,对与记录的所述第一DHCP响应报文的标识信息一致的所述第一DHCP请求报文进行封装处理。
16.根据权利要求14所述的DHCP报文的处理装置,其特征在于,所述装置还包括:删除单元,用于在预设时间间隔内删除所记录的所述DHCP Offer报文的标识信息和所述对端隧道端点设备的地址信息。
17.一种动态主机配置协议DHCP报文的处理系统,其特征在于,所述系统包括如权利要求9-16任一项所述的装置。
CN201310025125.5A 2013-01-23 2013-01-23 动态主机配置协议报文的处理方法、装置和系统 Active CN103944867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310025125.5A CN103944867B (zh) 2013-01-23 2013-01-23 动态主机配置协议报文的处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310025125.5A CN103944867B (zh) 2013-01-23 2013-01-23 动态主机配置协议报文的处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN103944867A CN103944867A (zh) 2014-07-23
CN103944867B true CN103944867B (zh) 2017-09-12

Family

ID=51192354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310025125.5A Active CN103944867B (zh) 2013-01-23 2013-01-23 动态主机配置协议报文的处理方法、装置和系统

Country Status (1)

Country Link
CN (1) CN103944867B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104747B (zh) * 2014-07-28 2017-08-08 新华三技术有限公司 报文传输方法及装置
CN105592172A (zh) * 2014-10-23 2016-05-18 中兴通讯股份有限公司 动态主机配置协议重连方法、dhcp服务器及系统
CN104410560A (zh) * 2014-11-27 2015-03-11 盛科网络(苏州)有限公司 通过nvgre单播实现bum报文转发的方法
CN106331202A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 动态主机配置协议dhcp服务器管理方法及装置
CN106559292B (zh) * 2015-09-29 2020-03-06 新华三技术有限公司 一种宽带接入方法和装置
CN105376346B (zh) * 2015-12-09 2018-12-14 北京艾科网信科技有限公司 一种提高dhcp协议安全性的方法与系统
CN105681490B (zh) * 2016-03-29 2019-10-22 上海斐讯数据通信技术有限公司 一种基于软件定义网络的防ip地址冲突方法
CN106209643B (zh) * 2016-07-14 2019-08-06 新华三技术有限公司 报文转发方法及装置
CN106254203B (zh) * 2016-09-05 2020-02-11 新华三技术有限公司 一种报文转发方法及装置
CN108307002B (zh) * 2018-05-09 2021-06-22 华为技术有限公司 一种dhcp报文处理方法及装置
CN109347994B (zh) * 2018-10-19 2021-02-09 Oppo广东移动通信有限公司 互联网协议ip地址获取方法、装置、存储介质及电子设备
CN111770194B (zh) * 2020-07-13 2024-04-26 太仓市同维电子有限公司 一种主动触发下挂设备发送arp的方法
CN113708957B (zh) * 2021-08-03 2022-12-27 中移(杭州)信息技术有限公司 服务器bmc的配置方法、终端设备及介质
CN114095460B (zh) * 2022-01-20 2022-05-31 杭州优云科技有限公司 一种报文广播方法及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068208A (zh) * 2007-06-05 2007-11-07 华为技术有限公司 一种动态分配网络地址的方法、系统及代理设备
EP2043320A1 (en) * 2007-09-28 2009-04-01 Deutsche Telekom AG Method and system for automatic and remote server provisioning using virtual machine appliances
CN101605090A (zh) * 2008-06-14 2009-12-16 中兴通讯股份有限公司 无源光网络中动态主机配置协议二层中间代理的实现方法
EP2216718A1 (en) * 2009-02-10 2010-08-11 Novell, Inc. Virtual machine address management
CN102244690A (zh) * 2011-07-26 2011-11-16 福建星网锐捷网络有限公司 动态主机配置协议地址分配方法、系统、客户端及服务器
CN102265568A (zh) * 2011-06-13 2011-11-30 华为技术有限公司 一种通信方法及负载均衡器
CN102315968A (zh) * 2011-09-19 2012-01-11 华中科技大学 虚拟机环境下的网络配置方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005006889B4 (de) * 2005-02-15 2007-01-11 Siemens Ag Verfahren, Kommunikationsanordnung und Kommunikationsvorrichtung zum Einrichten einer Kommunikationsbeziehung in zumindest einem Kommunikationsnetz
TW201237757A (en) * 2011-03-01 2012-09-16 Hon Hai Prec Ind Co Ltd System and method for installing virtual machines

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068208A (zh) * 2007-06-05 2007-11-07 华为技术有限公司 一种动态分配网络地址的方法、系统及代理设备
EP2043320A1 (en) * 2007-09-28 2009-04-01 Deutsche Telekom AG Method and system for automatic and remote server provisioning using virtual machine appliances
CN101605090A (zh) * 2008-06-14 2009-12-16 中兴通讯股份有限公司 无源光网络中动态主机配置协议二层中间代理的实现方法
EP2216718A1 (en) * 2009-02-10 2010-08-11 Novell, Inc. Virtual machine address management
CN102265568A (zh) * 2011-06-13 2011-11-30 华为技术有限公司 一种通信方法及负载均衡器
CN102244690A (zh) * 2011-07-26 2011-11-16 福建星网锐捷网络有限公司 动态主机配置协议地址分配方法、系统、客户端及服务器
CN102315968A (zh) * 2011-09-19 2012-01-11 华中科技大学 虚拟机环境下的网络配置方法

Also Published As

Publication number Publication date
CN103944867A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN103944867B (zh) 动态主机配置协议报文的处理方法、装置和系统
US11979322B2 (en) Method and apparatus for providing service for traffic flow
CN104871495B (zh) 用于叠加网络的虚拟叠加网关
WO2017054576A1 (zh) 单播隧道建立方法、装置和系统
EP2893676B1 (en) Packet forwarding
CN106992917A (zh) 报文转发方法和装置
CN104704778A (zh) 用于虚拟和物理网络集成的方法和系统
CN106101617B (zh) 一种报文传输方法、装置及系统
CN104040966A (zh) 处理报文的方法、转发面装置及网络设备
CN107770072A (zh) 一种发送和接收报文的方法和设备
CN107547340A (zh) 一种报文转发方法和装置
CN108512669A (zh) 用于传输广播数据的方法和系统
CN102546429B (zh) 基于dhcp监听的isatap隧道的认证方法和系统
CN108259298A (zh) 一种报文转发方法及装置
CN106059883A (zh) 报文的传输方法及装置
CN107547691B (zh) 地址解析协议报文代理方法和装置
CN106487677A (zh) 运营商边缘设备及数据转发方法
US20220345519A1 (en) PFCP Session Load Balancer
US11849381B2 (en) Use of IP networks for routing of cellular data packets
CN104994331B (zh) 一种适合低速链路的网络间流量发送方法和系统
CN102891764B (zh) 一种路由网桥维护信息的方法及系统
US20220345984A1 (en) Use Of Ip Networks For Routing Of Cellular Data Packets
US20220345986A1 (en) Selective Importing of UE Addresses to VRF in 5g Networks
CN102984072B (zh) 一种广播报文中继方法、系统和接入服务路由器
CN115665043A (zh) 数据报文转发方法、vtep、装置、介质及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220224

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right