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

上传人:32 文档编号:4762903 上传时间:2018-11-08 格式:PDF 页数:26 大小:4.19MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310025125.5

申请日:

2013.01.23

公开号:

CN103944867A

公开日:

2014.07.23

当前法律状态:

实审

有效性:

审中

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20130123|||公开

IPC分类号:

H04L29/06; H04L12/801(2013.01)I; H04L12/46

主分类号:

H04L29/06

申请人:

华为技术有限公司

发明人:

冯江平; 朱旭琪; 刘丹

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京亿腾知识产权代理事务所 11309

代理人:

陈霁

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书1.  一种动态主机配置协议DHCP报文的处理方法,其特征在于,所述方法包括:接收对端隧道端点设备发送的第一DHCP请求报文,所述第一DHCP请求报文中携带有虚拟机的MAC地址信息;对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文;发送所述第二DHCP请求报文至DHCP服务器;接收所述DHCP服务器根据所述第二DHCP请求报文发送的第一DHCP响应报文;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址;封装所述第一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 Offer报文,并且在预设的时间间隔内没有接收到DHCP ACK报文时,所述方法还包括:删除所记录的所述第一DHCP请求报文的标识信息和所述对端隧道端点设备的地址信息。5.  一种动态主机配置协议DHCP报文的处理方法,其特征在于,所述方法包括:接收对端隧道端点设备发送的第一DHCP响应报文,所述第一DHCP响应报文中携带有虚拟机的IP地址;其中,所述第一DHCP响应报文为DHCP Offer报文;对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址;发送所述第二DHCP响应报文至所述虚拟机;接收所述虚拟机根据所述第二DHCP响应报文发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文;封装所述第一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请求报文传输至解封装单元;所述解封装单元,用于接收所述接收单元传输的所述第一DHCP请求报文,对所述第一DHCP请求报文进行解封装处理,得到第二DHCP请求报文,将所述第二DHCP请求报文传输至发送单元;所述发送单元,用于根据所述解封装单元发送的所述第二DHCP请求报文,发送所述第二DHCP请求报文至DHCP服务器;所述接收单元,还用于接收所述DHCP服务器接收到所述第二DHCP请求报文后发送的第一DHCP响应报文,将所述第一DHCP响应报文传输至封装单元;其中,所述第一DHCP响应报文为广播报文,并且携带有分配给所述虚拟机的IP地址;所述封装单元,用于接收所述接收单元发送的所述第一DHCP响应报文,封装所述第一DHCP响应报文为第二DHCP响应报文,将所述第二DHCP响应报文传输至所述发送单元;其中,所述第二DHCP响应报文为单播报文,并且携带分配给所述虚拟机的所述IP地址;所述发送单元,还用于接收所述封装单元发送的所述第二DHCP响应报文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响应报文传输至解封装单元;其中,所述第一DHCP响应报文为DHCP Offer报文;解封装单元,用于接收所述接收单元传输的所述第一DHCP响应报文,对所述第一DHCP响应报文进行解封装处理,得到第二DHCP响应报文,所述第二DHCP响应报文中携带有所述虚拟机的IP地址,将所述第二DHCP响应报文传输至发送单元;发送单元,用于根据所述解封装单元发送的所述第二DHCP响应报文,发送所述第二DHCP响应报文至所述;所述接收单元,还用于根据所述DHCP客户端接收到所述第二DHCP响应报文后发送的所述第一DHCP请求报文,其中,所述第一DHCP请求报文为广播报文,将所述第一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任一项所述的装置。

说明书

说明书动态主机配置协议报文的处理方法、装置和系统
技术领域
本发明涉及通信领域,尤其涉及一种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客户端侧的DHCP Request报文后,可根据记录的对端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,用于在预设时间间隔内删除所记录的所述DHCP Offer报文的XID标识信息和所述对端隧道端点设备的地址信息。
具体地,VTEP1在对第一DHCP请求报文进行封装处理得到第二DHCP请求报文后,可在预设的时间间隔内删除记录的所述DHCP响应报文的XID标识信息和所述对端隧道端点设备的地址信息,以便清除冗余数据和防止恶意攻击。
由此,本发明实施例实现了隧道协议中DHCP客户端的隧道端点设备通过单播的形式发送DHCP Request报文,降低网络流量,提高网络资源的利用率。
对于DHCP客户端与DHCP服务器不在同一个VXLAN的场景,或者DHCP客户端位于VXLAN网络、DHCP服务器位于非VXLAN网络的场景,DHCP客户端的VTEP1也可以在接收到的DHCP Offer报文后记录对端VTEP的地址信息,而在 VTEP1接收到DHCP客户端侧的DHCP Request报文后,可根据记录的对端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、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

动态主机配置协议报文的处理方法、装置和系统.pdf_第1页
第1页 / 共26页
动态主机配置协议报文的处理方法、装置和系统.pdf_第2页
第2页 / 共26页
动态主机配置协议报文的处理方法、装置和系统.pdf_第3页
第3页 / 共26页
点击查看更多>>
资源描述

《动态主机配置协议报文的处理方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《动态主机配置协议报文的处理方法、装置和系统.pdf(26页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103944867 A (43)申请公布日 2014.07.23 CN 103944867 A (21)申请号 201310025125.5 (22)申请日 2013.01.23 H04L 29/06(2006.01) H04L 12/801(2013.01) H04L 12/46(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 冯江平 朱旭琪 刘丹 (74)专利代理机构 北京亿腾知识产权代理事务 所 11309 代理人 陈霁 (54) 发明名称 动态主机配置协议报文的处理方法、 装置和 。

2、系统 (57) 摘要 本发明涉及一种 DHCP 报文的处理方法、 装置 和系统。该方法包括 : 接收第一 DHCP 请求报文, 第一DHCP请求报文中携带有虚拟机的MAC地址信 息 ; 对第一 DHCP 请求报文进行解封装处理, 得到 第二 DHCP 请求报文 ; 发送第二 DHCP 请求报文至 DHCP 服务器 ; 接收 DHCP 服务器发送的第一 DHCP 响应报文 ; 其中, 第一 DHCP 响应报文为广播报文, 并且携带有分配给虚拟机的 IP 地址 ; 封装第一 DHCP 响应报文为第二 DHCP 响应报文 ; 其中, 第二 DHCP响应报文为单播报文 ; 发送第二DHCP响应报 文至。

3、对端隧道端点设备。本发明实现了隧道协议 中以单播形式发送 DHCP 响应报文, 提高了网络资 源的利用率。 (51)Int.Cl. 权利要求书 3 页 说明书 15 页 附图 7 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书15页 附图7页 (10)申请公布号 CN 103944867 A CN 103944867 A 1/3 页 2 1. 一种动态主机配置协议 DHCP 报文的处理方法, 其特征在于, 所述方法包括 : 接收对端隧道端点设备发送的第一 DHCP 请求报文, 所述第一 DHCP 请求报文中携带有 虚拟机的 MAC 地址信息 ; 对所述第。

4、一 DHCP 请求报文进行解封装处理, 得到第二 DHCP 请求报文 ; 发送所述第二 DHCP 请求报文至 DHCP 服务器 ; 接收所述 DHCP 服务器根据所述第二 DHCP 请求报文发送的第一 DHCP 响应报文 ; 其中, 所述第一 DHCP 响应报文为广播报文, 并且携带有分配给所述虚拟机的 IP 地址 ; 封装所述第一 DHCP 响应报文为第二 DHCP 响应报文 ; 其中, 所述第二 DHCP 响应报文为 单播报文, 并且携带分配给所述虚拟机的所述 IP 地址 ; 发送所述第二 DHCP 响应报文至所述对端隧道端点设备。 2. 根据权利要求 1 所述的 DHCP 报文的处理方法。

5、, 其特征在于, 所述接收对端隧道端点 设备发送的第一DHCP请求报文之后, 还包括 : 在所述第一DHCP请求报文中提取并记录所述 第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地址信息。 3. 根据权利要求 2 所述的 DHCP 报文的处理方法, 其特征在于, 所述封装所述第一 DHCP 响应报文为第二 DHCP 响应报文具体为 : 根据记录的所述对端隧道端点设备的地址信息, 对 所述第一DHCP响应报文进行封装处理 ; 其中, 所述第一DHCP请求报文的标识信息与所述第 一 DHCP 响应报文的标识信息一致。 4.根据权利要求2所述的DHCP报文的处理方法, 其特征在于, 所。

6、述第一DHCP响应报文 为 DHCP ACK 报文时, 所述对所述第一 DHCP 响应报文进行封装处理之后, 还包括 : 删除所记 录的所述第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地址信息 ; 或者 所述第一 DHCP 响应报文为 DHCP Offer 报文, 并且在预设的时间间隔内没有接收到 DHCP ACK 报文时, 所述方法还包括 : 删除所记录的所述第一 DHCP 请求报文的标识信息和所 述对端隧道端点设备的地址信息。 5. 一种动态主机配置协议 DHCP 报文的处理方法, 其特征在于, 所述方法包括 : 接收对端隧道端点设备发送的第一 DHCP 响应报文, 所述第一。

7、 DHCP 响应报文中携带有 虚拟机的 IP 地址 ; 其中, 所述第一 DHCP 响应报文为 DHCP Offer 报文 ; 对所述第一 DHCP 响应报文进行解封装处理, 得到第二 DHCP 响应报文, 所述第二 DHCP 响应报文中携带有所述虚拟机的 IP 地址 ; 发送所述第二 DHCP 响应报文至所述虚拟机 ; 接收所述虚拟机根据所述第二DHCP响应报文发送的所述第一DHCP请求报文, 其中, 所 述第一 DHCP 请求报文为广播报文 ; 封装所述第一 DHCP 请求报文为第二 DHCP 请求报文 ; 其中, 所述第二 DHCP 请求报文为 单播报文 ; 发送所述第二 DHCP 请求。

8、报文至所述对端隧道端点设备。 6. 根据权利要求 5 所述的 DHCP 报文的处理方法, 其特征在于, 所述接收对端隧道端点 设备发送的第一DHCP响应报文之后, 还包括 : 在所述第一DHCP响应报文中提取并记录所述 第一 DHCP 响应报文的标识信息和所述对端隧道端点设备的地址信息。 7. 根据权利要求 6 所述的 DHCP 报文的处理方法, 其特征在于, 所述封装所述第一 DHCP 请求报文为第二 DHCP 请求报文具体为 : 根据记录的所述对端隧道端点设备的地址信息, 对 权 利 要 求 书 CN 103944867 A 2 2/3 页 3 所述第一DHCP响应报文进行封装处理 ; 其。

9、中, 所述第一DHCP请求报文的标识信息与所述第 一 DHCP 响应报文的标识信息一致。 8. 根据权利要求 6 所述的 DHCP 报文的处理方法, 其特征在于, 所述封装所述第一 DHCP 请求报文为第二 DHCP 请求报文之后, 还包括 : 在预设时间间隔内删除所记录的所述第一 DHCP 响应报文的标识信息和所述对端隧道端点设备的地址信息。 9. 一种动态主机配置协议 DHCP 报文的处理装置, 其特征在于, 所述装置包括 : 接收单元, 用于接收对端隧道端点设备发送的第一DHCP请求报文, 所述第一DHCP请求 报文中携带有虚拟机的 MAC 地址信息, 将所述第一 DHCP 请求报文传输。

10、至解封装单元 ; 所述解封装单元, 用于接收所述接收单元传输的所述第一 DHCP 请求报文, 对所述第一 DHCP请求报文进行解封装处理, 得到第二DHCP请求报文, 将所述第二DHCP请求报文传输至 发送单元 ; 所述发送单元, 用于根据所述解封装单元发送的所述第二 DHCP 请求报文, 发送所述第 二 DHCP 请求报文至 DHCP 服务器 ; 所述接收单元, 还用于接收所述 DHCP 服务器接收到所述第二 DHCP 请求报文后发送的 第一DHCP响应报文, 将所述第一DHCP响应报文传输至封装单元 ; 其中, 所述第一DHCP响应 报文为广播报文, 并且携带有分配给所述虚拟机的 IP 地。

11、址 ; 所述封装单元, 用于接收所述接收单元发送的所述第一 DHCP 响应报文, 封装所述第一 DHCP 响应报文为第二 DHCP 响应报文, 将所述第二 DHCP 响应报文传输至所述发送单元 ; 其 中, 所述第二 DHCP 响应报文为单播报文, 并且携带分配给所述虚拟机的所述 IP 地址 ; 所述发送单元, 还用于接收所述封装单元发送的所述第二DHCP响应报文DHCP报文, 发 送所述第二 DHCP 响应报文至所述对端隧道端点设备。 10. 根据权利要求 9 所述的 DHCP 报文的处理装置, 其特征在于, 所述装置还包括 : 记录 单元, 用于在所述第一 DHCP 请求报文中提取并记录所。

12、述第一 DHCP 请求报文的标识信息和 所述对端隧道端点设备的地址信息。 11. 根据权利要求 10 所述的 DHCP 报文的处理方法, 其特征在于, 所述封装单元具体用 于 : 根据记录的所述对端隧道端点设备的地址信息, 对与记录的所述第一 DHCP 请求报文的 标识信息一致的所述第一 DHCP 响应报文进行封装处理。 12. 根据权利要求 10 所述的 DHCP 报文的处理方法, 其特征在于, 所述装置还包括 : 删 除单元, 用于所述 DHCP 响应报文为 DHCP 确定 ACK 报文时, 或者所述 DHCP 响应报文为 DHCP Offer 报文并且在预设的时间间隔内没有接收到所述 D。

13、HCP ACK 报文时, 删除所记录的所述 第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地址信息。 13. 一种动态主机配置协议 DHCP 报文的处理装置, 其特征在于, 所述装置包括 : 接收单元, 用于接收对端隧道端点设备发送的第一DHCP响应报文, 所述第一DHCP响应 报文中携带有虚拟机的 IP 地址, 将所述第一 DHCP 响应报文传输至解封装单元 ; 其中, 所述 第一 DHCP 响应报文为 DHCP Offer 报文 ; 解封装单元, 用于接收所述接收单元传输的所述第一 DHCP 响应报文, 对所述第一 DHCP 响应报文进行解封装处理, 得到第二DHCP响应报文,。

14、 所述第二DHCP响应报文中携带有所述 虚拟机的 IP 地址, 将所述第二 DHCP 响应报文传输至发送单元 ; 发送单元, 用于根据所述解封装单元发送的所述第二 DHCP 响应报文, 发送所述第二 权 利 要 求 书 CN 103944867 A 3 3/3 页 4 DHCP 响应报文至所述 ; 所述接收单元, 还用于根据所述 DHCP 客户端接收到所述第二 DHCP 响应报文后发送的 所述第一 DHCP 请求报文, 其中, 所述第一 DHCP 请求报文为广播报文, 将所述第一 DHCP 请求 报文传输至封装单元 ; 封装单元, 用于接收所述接收单元发送的所述第一 DHCP 请求报文, 封装。

15、所述第一 DHCP 请求报文为第二 DHCP 请求报文, 将所述第二 DHCP 请求报文至所述发送单元 ; 其中, 所述第 二 DHCP 请求报文为单播报文 ; 所述发送单元, 还用于接收所述封装单元发送的所述第二 DHCP 请求报文, 发送所述第 二 DHCP 请求报文至所述对端隧道端点设备。 14. 根据权利要求 13 所述的 DHCP 报文的处理装置, 其特征在于, 所述装置还包括 : 记 录单元, 用于在所述第一 DHCP 响应报文中提取并记录所述第一 DHCP 响应报文的标识信息 和所述对端隧道端点设备的地址信息。 15. 根据权利要求 14 所述的 DHCP 报文的处理装置, 其特。

16、征在于, 所述封装单元具体用 于 : 根据记录的所述对端隧道端点设备的地址信息, 对与记录的所述第一 DHCP 响应报文的 标识信息一致的所述第一 DHCP 请求报文进行封装处理。 16. 根据权利要求 14 所述的 DHCP 报文的处理装置, 其特征在于, 所述装置还包括 : 删 除单元, 用于在预设时间间隔内删除所记录的所述DHCP Offer报文的标识信息和所述对端 隧道端点设备的地址信息。 17. 一种动态主机配置协议 DHCP 报文的处理系统, 其特征在于, 所述系统包括如权利 要求 9-16 任一项所述的装置。 权 利 要 求 书 CN 103944867 A 4 1/15 页 5。

17、 动态主机配置协议报文的处理方法、 装置和系统 技术领域 0001 本发明涉及通信领域, 尤其涉及一种 DHCP 报文的处理方法、 装置和系统。 背景技术 0002 在通信领域, 为了简化 IP 地址的配置操作, 防止 IP 地址的冲突, 并且由于 IP 资源 有限, 不能给每台连接到互联网上的主机配置一个固定的 IP 地址, 因此通常使用动态主机 配置协议 (Dynamic Host Configuration Protocol, DHCP) 方式对连接网络的主机配置临 时的、 唯一的 IP 地址。对于虚拟化数据中心中的虚拟机而言, 同样可以采用 DHCP 方式获取 IP 地址。 0003 。

18、DHCP 客户端与 DHCP 服务器之间的交互信息中存在大量的广播报文。在使用隧道 协议, 例如可扩展虚拟局域网 (Virtual eXtensible Local Area Network, VXLAN)/ 网络 虚拟化通用路由封装 (Network Virtualizationusing Generic Routing Encapsulation, NVGRE) 的隧道封装协议的网络中, DHCP 客户端与 DHCP 服务器之间传输的广播报文。 0004 在现有技术下, 当隧道端点设备接收到DHCP客户端发送的DHCP广播报文时, 可为 该广播报文封装VXLAN头, 该VXLAN头中配置了。

19、其他隧道端点设备的组播地址, 因此可通过 组播形式发送封装后的报文至其他隧道端点设备 ; 其他隧道端点设备可接收到相应的封装 报文并进行解封装, 解封装后在相应的组播范围内进行广播, 接收到广播报文的 DHCP 服务 器也可通过广播的形式发送响应报文至隧道端点设备, 由隧道端点设备进行封装并通过组 播形式发送封装后的响应报文至其他隧道端点设备, 对网络造成压力, 进而影响网络性能, 浪费网络资源。 发明内容 0005 本发明实施例提供了一种 DHCP 报文的处理方法、 装置和系统, 以实现隧道协议中 通过单播的形式发送 DHCP 响应报文, 降低网络流量, 提高网络资源的利用率。 0006 第。

20、一方面, 本发明实施例提供了一种 DHCP 报文的处理方法, 所述方法包括 : 0007 接收对端隧道端点设备发送的第一 DHCP 请求报文, 所述第一 DHCP 请求报文中携 带有虚拟机的 MAC 地址信息 ; 0008 对所述第一 DHCP 请求报文进行解封装处理, 得到第二 DHCP 请求报文 ; 0009 发送所述第二 DHCP 请求报文至 DHCP 服务器 ; 0010 接收所述DHCP服务器根据所述第二DHCP请求报文发送的第一DHCP响应报文 ; 其 中, 所述第一 DHCP 响应报文为广播报文, 并且携带有分配给所述虚拟机的 IP 地址 ; 0011 封装所述第一 DHCP 响。

21、应报文为第二 DHCP 响应报文 ; 其中, 所述第二 DHCP 响应报 文为单播报文, 并且携带分配给所述虚拟机的所述 IP 地址 ; 0012 发送所述第二 DHCP 响应报文至所述对端隧道端点设备。 0013 在第一种可能的实现方式中, 所述接收对端隧道端点设备发送的第一 DHCP 请求 报文之后, 还包括 : 在所述第一DHCP请求报文中提取并记录所述第一DHCP请求报文的标识 说 明 书 CN 103944867 A 5 2/15 页 6 信息和所述对端隧道端点设备的地址信息。 0014 结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述封装 所述第一 DHCP 。

22、响应报文为第二 DHCP 响应报文具体为 : 根据记录的所述对端隧道端点设备 的地址信息, 对所述第一 DHCP 响应报文进行封装处理 ; 其中, 所述第一 DHCP 请求报文的标 识信息与所述第一 DHCP 响应报文的标识信息一致。 0015 结合第一方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述第一 DHCP响应报文为DHCP ACK报文时, 所述对所述第一DHCP响应报文进行封装处理之后, 还包 括 : 删除所记录的所述第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地址信 息 ; 或者 0016 所述第一 DHCP 响应报文为 DHCP Offer 报文, 并。

23、且在预设的时间间隔内没有接收 到DHCP ACK报文时, 所述方法还包括 : 删除所记录的所述第一DHCP请求报文的标识信息和 所述对端隧道端点设备的地址信息。 0017 第二方面, 本发明实施例还提供了一种 DHCP 报文的处理方法, 所述方法包括 : 0018 接收对端隧道端点设备发送的第一 DHCP 响应报文, 所述第一 DHCP 响应报文中携 带有虚拟机的 IP 地址 ; 其中, 所述第一 DHCP 响应报文为 DHCP Offer 报文 ; 0019 对所述第一 DHCP 响应报文进行解封装处理, 得到第二 DHCP 响应报文, 所述第二 DHCP 响应报文中携带有所述虚拟机的 IP。

24、 地址 ; 0020 发送所述第二 DHCP 响应报文至所述虚拟机 ; 0021 接收所述虚拟机根据所述第二 DHCP 响应报文发送的所述第一 DHCP 请求报文, 其 中, 所述第一 DHCP 请求报文为广播报文 ; 0022 封装所述第一 DHCP 请求报文为第二 DHCP 请求报文 ; 其中, 所述第二 DHCP 请求报 文为单播报文 ; 0023 发送所述第二 DHCP 请求报文至所述对端隧道端点设备。 0024 在第一种可能的实现方式中, 所述接收对端隧道端点设备发送的第一 DHCP 响应 报文之后, 还包括 : 在所述第一DHCP响应报文中提取并记录所述第一DHCP响应报文的标识 。

25、信息和所述对端隧道端点设备的地址信息。 0025 结合第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述封装 所述第一 DHCP 请求报文为第二 DHCP 请求报文具体为 : 根据记录的所述对端隧道端点设备 的地址信息, 对所述第一 DHCP 响应报文进行封装处理 ; 其中, 所述第一 DHCP 请求报文的标 识信息与所述第一 DHCP 响应报文的标识信息一致。 0026 结合第二方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述封装 所述第一DHCP请求报文为第二DHCP请求报文之后, 还包括 : 在预设时间间隔内删除所记录 的所述第一 DHCP 响应报文的标识信。

26、息和所述对端隧道端点设备的地址信息。 0027 第三方面, 本发明实施例提供了一种 DHCP 报文的处理装置, 所述装置包括 : 0028 接收单元, 用于接收对端隧道端点设备发送的第一 DHCP 请求报文, 所述第一 DHCP 请求报文中携带有虚拟机的 MAC 地址信息, 将所述第一 DHCP 请求报文传输至解封装单元 ; 0029 所述解封装单元, 用于接收所述接收单元传输的所述第一 DHCP 请求报文, 对所述 第一 DHCP 请求报文进行解封装处理, 得到第二 DHCP 请求报文, 将所述第二 DHCP 请求报文 传输至发送单元 ; 说 明 书 CN 103944867 A 6 3/1。

27、5 页 7 0030 所述发送单元, 用于根据所述解封装单元发送的所述第二 DHCP 请求报文, 发送所 述第二 DHCP 请求报文至 DHCP 服务器 ; 0031 所述接收单元, 还用于接收所述 DHCP 服务器接收到所述第二 DHCP 请求报文后发 送的第一 DHCP 响应报文, 将所述第一 DHCP 响应报文传输至封装单元 ; 其中, 所述第一 DHCP 响应报文为广播报文, 并且携带有分配给所述虚拟机的 IP 地址 ; 0032 所述封装单元, 用于接收所述接收单元发送的所述第一 DHCP 响应报文, 封装所述 第一 DHCP 响应报文为第二 DHCP 响应报文, 将所述第二 DHC。

28、P 响应报文传输至所述发送单 元 ; 其中, 所述第二 DHCP 响应报文为单播报文, 并且携带分配给所述虚拟机的所述 IP 地 址 ; 0033 所述发送单元, 还用于接收所述封装单元发送的所述第二 DHCP 响应报文 DHCP 报 文, 发送所述第二 DHCP 响应报文至所述对端隧道端点设备。 0034 在第一种可能的实现方式中, 所述装置还包括 : 记录单元, 用于在所述第一 DHCP 请求报文中提取并记录所述第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地 址信息。 0035 结合第三方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述封装 单元具体用于 : 根据。

29、记录的所述对端隧道端点设备的地址信息, 对与记录的所述第一 DHCP 请求报文的标识信息一致的所述第一 DHCP 响应报文进行封装处理。 0036 结合第三方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述装置 还包括 : 删除单元, 用于所述 DHCP 响应报文为 DHCP 确定 ACK 报文时, 或者所述 DHCP 响应报 文为 DHCP Offer 报文并且在预设的时间间隔内没有接收到所述 DHCP ACK 报文时, 删除所 记录的所述第一 DHCP 请求报文的标识信息和所述对端隧道端点设备的地址信息。 0037 第四方面, 本发明实施例还提供了一种 DHCP 报文的处理装置。

30、, 所述装置包括 : 0038 接收单元, 用于接收对端隧道端点设备发送的第一 DHCP 响应报文, 所述第一 DHCP 响应报文中携带有虚拟机的 IP 地址, 将所述第一 DHCP 响应报文传输至解封装单元 ; 其中, 所述第一 DHCP 响应报文为 DHCP Offer 报文 ; 0039 解封装单元, 用于接收所述接收单元传输的所述第一 DHCP 响应报文, 对所述第一 DHCP响应报文进行解封装处理, 得到第二DHCP响应报文, 所述第二DHCP响应报文中携带有 所述虚拟机的 IP 地址, 将所述第二 DHCP 响应报文传输至发送单元 ; 0040 发送单元, 用于根据所述解封装单元发。

31、送的所述第二 DHCP 响应报文, 发送所述第 二 DHCP 响应报文至所述 ; 0041 所述接收单元, 还用于根据所述 DHCP 客户端接收到所述第二 DHCP 响应报文后发 送的所述第一 DHCP 请求报文, 其中, 所述第一 DHCP 请求报文为广播报文, 将所述第一 DHCP 请求报文传输至封装单元 ; 0042 封装单元, 用于接收所述接收单元发送的所述第一 DHCP 请求报文, 封装所述第一 DHCP 请求报文为第二 DHCP 请求报文, 将所述第二 DHCP 请求报文至所述发送单元 ; 其中, 所 述第二 DHCP 请求报文为单播报文 ; 0043 所述发送单元, 还用于接收所。

32、述封装单元发送的所述第二 DHCP 请求报文, 发送所 述第二 DHCP 请求报文至所述对端隧道端点设备。 0044 在第一种可能的实现方式中, 所述装置还包括 : 记录单元, 用于在所述第一 DHCP 说 明 书 CN 103944867 A 7 4/15 页 8 响应报文中提取并记录所述第一 DHCP 响应报文的标识信息和所述对端隧道端点设备的地 址信息。 0045 结合第四方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述封装 单元具体用于 : 根据记录的所述对端隧道端点设备的地址信息, 对与记录的所述第一 DHCP 响应报文的标识信息一致的所述第一 DHCP 请求报文进行封。

33、装处理。 0046 结合第四方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述装置 还包括 : 删除单元, 用于在预设时间间隔内删除所记录的所述 DHCP Offer 报文的标识信息 和所述对端隧道端点设备的地址信息。 0047 第五方面, 本发明实施例提供了一种 DHCP 报文的处理系统, 所述系统包括上述 DHCP 报文的处理装置。 0048 本发明实施例中, DHCP 客户端与 DHCP 服务器在使用隧道协议传输 DHCP 报文时, DHCP 服务器的隧道端点设备接收对端隧道端点设备发送的第一 DHCP 请求报文, 第一 DHCP 请求报文中携带有虚拟机的 MAC 地址信息 。

34、; 对第一 DHCP 请求报文进行解封装处理, 得到第 二 DHCP 请求报文 ; 发送第二 DHCP 请求报文至 DHCP 服务器 ; 接收 DHCP 服务器接收到第二 DHCP 请求报文后发送的第一 DHCP 响应报文 ; 其中, 第一 DHCP 响应报文为广播报文, 并且携 带有分配给虚拟机的 IP 地址 ; 封装第一 DHCP 响应报文为第二 DHCP 响应报文 ; 其中, 第二 DHCP 响应报文为单播报文, 并且携带分配给虚拟机的 IP 地址 ; 发送第二 DHCP 响应报文至 对端隧道端点设备。由此, 本发明实施例实现了隧道协议中 DHCP 服务器的隧道端点设备通 过单播的形式发。

35、送 DHCP 响应报文, 降低网络流量, 提高网络资源的利用率。 附图说明 0049 图 1 为本发明实施例提供的一种 DHCP 报文的处理方法所应用的场景示意图 ; 0050 图 2 为本发明实施例提供的另一 DHCP 报文的处理方法所应用的场景示意图 ; 0051 图 3 为本发明实施例提供的另一 DHCP 报文的处理方法所应用的场景示意图 0052 图 4 为本发明实施例提供的一种 DHCP 报文的处理方法流程图 ; 0053 图 5 为本发明实施例提供的另一 DHCP 报文的处理方法流程图 ; 0054 图 6 为本发明实施例提供的一种隧道协议中 DHCP 报文的处理方法的信息交互 图。

36、 ; 0055 图 7 为本发明实施例提供的一种 DHCP 报文的处理装置示意图 ; 0056 图 8 为本发明实施例提供的另一 DHCP 报文的处理装置示意图。 具体实施方式 0057 以下描述中, 为了说明而不是为了限定, 提出了诸如特定系统结构、 接口、 技术之 类的具体细节, 以便透切理解本发明。然而, 本领域的技术人员应当清楚, 在没有这些具体 细节的其它实施例中也可以实现本发明。 在其它情况中, 省略对众所周知的装置、 电路以及 方法的详细说明, 以免不必要的细节妨碍本发明的描述。 0058 本发明实施例提供的 DHCP 报文的处理方法在实际应用时, 作为一种新的 DHCP 报 文。

37、的处理方法可应用于 DHCP 客户端和 DHCP 服务器在同一个可扩展虚拟局域网的场景, 或 DHCP 客户端和 DHCP 服务器在不同的可扩展虚拟局域网的场景, 或 DHCP 客户端在可扩展虚 说 明 书 CN 103944867 A 8 5/15 页 9 拟局域网但是 DHCP 在虚拟机局域网的场景。图 1 为本发明实施例提供的一种 DHCP 报文的 处理方法所应用的场景示意图。 如图1所示, DHCP客户端和DHCP服务器在同一个可扩展虚 拟局域网中, DHCP 客户端为位于服务器 A 中的虚拟机 1, 并且服务器 A 中部署了一个可扩展 虚拟局域网 VXLAN1, 虚拟机 1 和其他虚。

38、拟机的通信要通过服务器 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 属于同一个 VX。

39、LAN 的 VTEP2 对封 装后的DHCP请求报文进行解封装后可发送到虚拟机2, 并且可以记录该封装后的DHCP请求 报文的源 VTEP 地址, 虚拟机 2 接收到 DHCP 请求报文后, 可发送 DHCP 响应报文至 VTEP2, 其 中, DHCP 响应报文为广播报文。由 VTEP2 根据记录的源 VTEP 地址, 即 VTEP1 的地址对 DHCP 响应报文封装VXLAN头并以单播的方式发送封装后的DHCP响应报文至VTEP1。 由此降低了 DHCP 报文的网络流量, 提高了网络资源的利用率。 0059 图 2 为本发明实施例提供的另一 DHCP 报文的处理方法所应用的场景示意图。如 。

40、图 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的VX。

41、LAN, 则网关中的VTEP3将对该封装后的DHCP请求报 文进行解封装并记录该封装后的 DHCP 请求报文的源 VTEP 地址, 即 VTEP1 的地址, 网关中的 DHCP 中继根据配置信息获取虚拟机 2 的位置信息, VTEP3 根据该虚拟机 2 的位置信息重新 封装 VXLAN 头并转发重新封装后的 DHCP 请求报文到 VXLAN2 的 VTEP2, VTEP2 接收到重新封 装后的 DHCP 请求报文后进行解封装处理, VTEP2 对重新封装后的 DHCP 请求报文进行解封 装后发送到虚拟机 2, 虚拟机 2 接收到 VTEP2 解封装后的 DHCP 请求报文后, 可发送 DHCP。

42、 响 应报文至 VTEP2, VTEP2 对 DHCP 响应报文封装 VXLAN 头并以单播的方式发送封装后的 DHCP 响应报文至 VTEP3, VTEP3 根据记录的 VTEP1 的地址单播发送 DHCP 响应报文至 VTEP1。由 此降低了 DHCP 报文的网络流量, 提高了网络资源的利用率。 0060 图3为本发明实施例提供的另一DHCP报文的处理方法所应用的场景示意图。 如图 3所示, DHCP客户端为位于部署了VXLAN1的服务器A的虚拟机1, DHCP服务器位于非VXLAN 网络中, 虚拟机 1 和其他虚拟机的通信要通过服务器 A 中的 VTEP1。虚拟机 1 发出 DHCP 请。

43、 求报文时, VTEP1 将对该 DHCP 请求报文封装 VXLAN 头, 并按照组播地址或对端 VTEP 地址转 发封装后的 DHCP 请求报文, 其中, 封装后的 DHCP 请求报文携带虚拟机 1 的 MAC 地址 ; 如果 转发地址为不属于 VXLAN, 则网关中的 VTEP3 将对该封装后的 DHCP 请求报文进行解封装并 记录该封装后的 DHCP 请求报文的源 VTEP 地址, 即 VTEP1 的地址, 而网关中的 DHCP 中继根 据配置信息获取 DHCP 服务器的位置信息, VTEP3 则根据该 DHCP 服务器的位置信息对 DHCP 请求报文进行处理并转发到 DHCP 服务器,。

44、 DHCP 服务器接收到 VTEP3 处理后的 DHCP 请求报 文后, 可通过发送 DHCP 响应报文到网关, DHCP 响应报文为广播报文, 网关中的 VTEP3 根据 说 明 书 CN 103944867 A 9 6/15 页 10 记录的源 VTEP 地址, 即以 VTEP1 的地址对 DHCP 响应报文封装 VXLAN 头并以单播的方式发 送封装后的DHCP响应报文至VTEP1。 由此降低了DHCP报文的网络流量, 提高了网络资源的 利用率。 0061 上面只是描述了本发明实施例提供的DHCP报文的处理方法、 装置和系统的3种应 用场景, 但是上述场景并不用于限制本发明的保护范围。本。

45、发明实施例提供的 DHCP 报文的 处理方法、 装置和系统可以应用于隧道协议中 DHCP 报文的传输。 0062 下面的实施例主要以图 1 所述的应用场景为例进行方案的描述, 0063 图 4 为本发明实施例提供的一种 DHCP 报文的处理方法流程图。该实施例主要以 DHCP客户端与DHCP服务器位于同一个VXLAN的应用场景进行描述, 该实施例的执行主体是 DHCP 服务器的隧道端点设备, 如图 4 所示, 该实施例包括以下步骤 : 0064 步骤 401, 接收对端隧道端点设备发送的第一 DHCP 请求报文, 所述第一 DHCP 请求 报文中携带有虚拟机的 MAC 地址信息。 0065 本。

46、实施例中, DHCP 客户端为位于服务器 A 中的虚拟机 1, 并且服务器 A 中部署了 VXLAN1, 服务器 A 中 VXLAN1 的隧道端点为 VTEP1, DHCP 服务器为位于服务器 B 中的虚拟机 2, 并且服务器 B 中也部署了 VXLAN1, 服务器 B 中该 VXLAN1 的隧道端点为 VTEP2。 0066 具体地, VTEP1 接收到虚拟机 1 发送的 DHCP 请求报文后, 对虚拟机 1 发送的 DHCP 请求报文封装 VXLAN 头和外层封装头, 得到第一 DHCP 请求报文 ; 其中, 封装后的 DHCP 请求报文携带虚拟机 1 的 MAC 地址, VXLAN 头中。

47、包括 VXLAN 网络标识 (VXLAN Network Indentifier, VNI) 信息和 Flag 标识信息, 外层封装头包括 VTEP1 的 MAC 地址和 IP 地址, 以及组播组的 MAC 地址信息和 IP 地址信息。 0067 VTEP1 生成第一 DHCP 请求报文后, 根据组播组的 MAC 地址信息和 IP 地址信息, 将 第一 DHCP 请求报文转发到组播组内的所有 VTEP, 包括 VTEP2。 0068 步骤 402, 对所述第一 DHCP 请求报文进行解封装处理, 得到第二 DHCP 请求报文。 0069 VTEP2 接收到第一 DHCP 请求报文后, 可从第一。

48、 DHCP 请求报文中提取 XID 标识信 息, 从第一 DHCP 请求报文的外层封装头中提取 VTEP1 的 MAC 地址和 IP 地址。 0070 VTEP2 接收到第一 DHCP 请求报文后, 还对该第一 DHCP 请求报文进行解封装处理, 得到第二 DHCP 请求报文。 0071 提取 DHCP 报文的 XID 标识信息和 VTEP1 的 MAC 地址和 IP 地址后, 可在数据库中 或者哈希表中保存 XID 标识信息和 VTEP1 的地址信息的映射关系。 0072 步骤 403, 发送所述第二 DHCP 请求报文至 DHCP 服务器。 0073 VTEP2解封装得到第二DHCP请求报。

49、文后, 在VTEP2的VXLAN1范围内广播发送第二 DHCP 请求报文。 0074 步骤 404, 根据所述第二 DHCP 请求报文发送的第一 DHCP 响应报文 ; 其中, 所述第 一 DHCP 响应报文为广播报文, 并且携带有分配给所述虚拟机的 IP 地址。 0075 VTEP2 广播发送第二 DHCP 请求报文后, DHCP 服务器, 即虚拟机 2 接收到该第二 DHCP 请求报文后, 会做出响应, 即发送第一 DHCP 响应报文。 0076 其中, 第一 DHCP 响应报文中 IP 头中的源 IP 地址为虚拟机 2 的 IP 地址, Ethernet 头中的源 MAC 地址为虚拟机 2 的 MAC 地址。该 DHCP 响应报文的 XID 标识信息与 DHCP 请求 报文的 XID 标识信息一致。该第一 DHCP 响应报文携带有虚拟机 2 为虚拟机 1 分配的 IP 地 说 明 书 CN 103944867 A 10 7/15 页 11 址信息。 0077 虚拟机 2 发。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1