CN113542441B - 一种通信处理方法及装置 - Google Patents
一种通信处理方法及装置 Download PDFInfo
- Publication number
- CN113542441B CN113542441B CN202010311809.1A CN202010311809A CN113542441B CN 113542441 B CN113542441 B CN 113542441B CN 202010311809 A CN202010311809 A CN 202010311809A CN 113542441 B CN113542441 B CN 113542441B
- Authority
- CN
- China
- Prior art keywords
- communication
- host
- message
- site
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种通信处理方法及装置,方法应用于VXLAN网络中的第一通信站点,方法包括:接收第一主机广播的请求报文;解析请求报文的报头,以得到请求报文中第二主机的IP地址;如果第二主机的IP地址表征第二主机所属的第二通信站点与第一通信站点不同或者第二主机与第一主机分别对应于不同的VNI,向第一主机传输第一答复报文,第一答复报文中包含第一通信站点的MAC地址,以使得第一主机与第二主机进行通信时能够以第一通信站点的MAC地址为目的MAC地址生成通信报文;第一通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输。
Description
技术领域
本申请涉及网络传输技术领域,尤其涉及一种通信处理方法及装置。
背景技术
扩展的虚拟局域网VXLAN(Virtual eXtensible Local Area Network)是NVO3(Network Virtualizaiton over Layer 3)中的一种网络虚拟化技术,能在三层网络的基础上建立二层以太网网络隧道,从而实现跨地域的二层互连。作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低网络成本、提高业务部署灵活性、降低运维成本等优势已经得到越来越多的认可和部署。并且,VXLAN通过引入类似虚拟局域网标识VLAN ID(VirtualLocal Area Network Identification)的用户标识,称为VXLAN的网络标识VNI(VXLANNetwork Identifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识。
基于此,通过VXLAN,虚拟网络可接入大量租户host,且租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度。而为了实现租户之间的通信,需要分别在租户各自所在的站点以及三层网关上手动配置VNI,并在配置头端复制列表时指定对端VXLAN隧道端点VTEP(VXLAN Tunnel Endpoints)的IP地址。只要租户各自的站点及三层网关上存在到对端VTEP的IP地址的三层路由,就可以建立到对端的VXLAN隧道,进而各租户通过这些VXLAN隧道进行报文传输。
但是,由于在VXLAN中采用MAC inUDP(User Datagram Protocol)的封装方式,而且初始状态下,租户各自所在站点上是没有MAC表项的,因此,租户之间起初只能通过广播泛洪来实现MAC地址的学习,进而在学习到所有租户的MAC地址之后,将目的租户的MAC地址封装到报头中,实现报文传输。基于此,VXLAN网络中的广播流量会随着租户数量增加而变得愈加严重,形成网络拥塞,严重影响网络的稳定。
发明内容
有鉴于此,本申请提供一种通信处理方法及装置,如下:
一种通信处理方法,应用于VXLAN网络中的第一通信站点,所述第一通信站点与其他通信站点之间配置有通信网关,所述方法包括:
接收所述第一通信站点内的第一主机广播的请求报文,所述请求报文用于请求获得第二主机的MAC地址;
解析所述请求报文的报头,以得到所述请求报文中所述第二主机的IP地址;
如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI,向所述第一主机传输第一答复报文,所述第一答复报文中包含的MAC地址为所述第一通信站点的MAC地址,以使得所述第一主机与所述第二主机进行通信时能够以所述第一通信站点的MAC地址为目的MAC地址生成通信报文;
其中,所述第一通信站点在接收到第一主机发送的通信报文后,能够将所述通信报文封装成支持预设类型的IP协议的通信报文,并将所述通信报文通过所述通信网关基于所述IP协议进行传输。
上述方法,优选的,将所述通信报文封装成支持预设类型的IP协议的通信报文,包括:
对所述通信报文按照预设的封装方式进行封装,以使得封装后的通信报文除了所述内层报头还具有外层报头,且所述通信报文中的协议标识表征所述通信报文为预设类型的IP协议报文;
其中,所述外层报头中至少包括所述第一主机对应的VNI和外层目的IP地址,所述外层目的IP地址为所述第一通信站点在所述VXLAN网络中的下一跳IP地址。
上述方法,优选的,将所述通信报文通过所述通信网关基于所述IP协议进行传输,包括:
通过所述第一主机对应的VNI所对应的通信隧道,按照所述外层报头中的外层目的IP地址,将所述通信报文向所述第一通信站点对应的通信网关传输,以使得在所述通信网关对所述外层报头进行修改后,将所述通信报文按照经过修改后的外层报头中的外层目的IP地址传输到所述第二主机所属的第二通信站点;
其中,所述第二通信站点在接收到所述通信报文之后,对所述通信报文按照所述预设的封装方式对应的解封方式进行解封,并至少按照解封出的内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
上述方法,优选的,所述第一通信站点中保存有至少一条映射关系,所述映射关系为:主机的IP地址、主机对应的VNI和主机所属的通信站点之间的映射关系。
上述方法,优选的,在对所述通信报文按照预设的封装方式进行封装之前,所述方法还包括:
判断所述第一通信站点上所述预设的封装方式对应的组件是否被使能;
如果所述预设的封装方式对应的组件被使能,执行所述步骤:对所述通信报文按照预设的封装方式进行封装;
如果所述预设的封装方式对应的组件没有被使能,触发所述预设的封装方式对应的组件进入使能状态,并执行所述步骤:对所述通信报文按照预设的封装方式进行封装。
上述方法,优选的,在向所述第一主机传输第一答复报文之前,所述方法还包括:
判断所述第一通信站点是否支持预设的封装方式;
如果所述第一通信站点支持所述预设的封装方式,执行所述步骤:向所述第一主机传输第一答复报文。
上述方法,优选的,如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点相同且者所述第二主机与所述第一主机分别对应于相同的VNI,所述方法还包括:
向所述第一通信站点内的第二主机传输所述请求报文,以使得第二主机向所述第一主机传输第二答复报文,所述第二答复报文中至少包含所述第二主机的MAC地址,以使得所述第一主机与所述第二主机进行通信时以所述第二主机的MAC地址为目的MAC地址生成通信报文并将所述通信报文根据所述目的MAC地址传输到所述第二主机。
一种通信处理方法,应用于VXLAN网络中的第二通信站点,所述第二通信站点与其他通信站点之间配置有通信网关,所述方法包括:
接收所述通信网关基于预设类型的IP协议传输的通信报文;其中,所述通信报文为第一通信站点内的第一主机以所述第一通信站点的MAC地址为目的MAC地址生成且经过所述第一通信站点封装的支持所述预设类型的IP协议的报文,所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI;
对所述通信报文按照所述预设类型的IP协议对应的解封方式进行解封,以得到所述通信报文的内层报头;
至少按照所述内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
一种通信处理装置,应用于VXLAN网络中的第一通信站点,所述第一通信站点与其他通信站点之间配置有通信网关,所述装置包括:
接收单元,用于接收所述第一通信站点内的第一主机发送的请求报文,所述请求报文用于请求获得第二主机的MAC地址;
解析单元,用于解析所述请求报文的报头,以得到所述请求报文中所述第二主机的IP地址;
代答单元,用于如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI,向所述第一主机传输第一答复报文,所述第一答复报文中包含的MAC地址为所述第一通信站点的MAC地址,以使得所述第一主机与所述第二主机进行通信时能够以所述第一通信站点的MAC地址为目的MAC地址生成通信报文;
封装单元,在所述接收单元接收所述第一主机发送的通信报文后,用于将所述通信报文封装成支持预设类型的IP协议的通信报文;
传输单元,用于将所述通信报文通过所述通信网关基于所述IP协议进行传输。
一种通信处理装置,应用于VXLAN网络中的第二通信站点,所述第二通信站点与其他通信站点之间配置有通信网关,所述装置包括:
接收单元,用于接收所述通信网关基于预设类型的IP协议传输的通信报文;其中,所述通信报文为第一通信站点内的第一主机以所述第一通信站点的MAC地址为目的MAC地址生成且经过所述第一通信站点封装的支持所述预设类型的IP协议的报文,所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI;
解封单元,用于对所述通信报文按照所述预设类型的IP协议对应的解封方式进行解封,以得到所述通信报文的内层报头;
传输单元,用于至少按照所述内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
从上述技术方案可以看出,本申请提供的一种适用于VXLAN网络的通信处理方法及装置中,在通信站点上接收到第一主机广播的请求报文时,在解析出请求报文中的目的IP地址之后,通过判断该目的IP地址是否表征目的主机所属的通信站点与当前的通信站点不同或者目的主机与第一主机分别对应于不同的VNI,如果任意一条满足,那么即可确定目的主机与第一主机之间是跨站点的报文通信,此时本申请中并不是直接进行报文广播,而是进行报文代答,也就是说向第一主机传输包含当前通信站点的MAC地址的答复报文,由此,就可以避免广播请求报文所造成的广播流量严重的情况,从而避免网络拥塞,以达到提高网络稳定性的目的。
同时,基于以上代答方案,在第一主机接收到当前通信站点所传输的答复报文之后,第一主机与目的主机进行通信时能够以当前通信站点的MAC地址为目的MAC地址生成通信报文,而当前的通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过所述通信网关基于所述IP协议进行传输,由此不再使用MAC地址也能够实现报文传输。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-图7分别为VXLAN网络中进行报文传输的示例图;
图8及图9分别为本申请实施例一提供的一种通信处理方法的实现流程图;
图10为本申请实施例中的封装报文的示意图;
图11a和图11b分别为本申请实施例二提供的一种通信处理装置的结构示意图;
图12为本申请实施例三提供的一种通信处理装置的结构示意图;
图13为本申请实施例提供的一种电子设备的结构示意图;
图14-图19分别为本申请实施例适用于VXLAN网络进行报文传输的相关示例图。
具体实施方式
如图1所示,VXLAN网络中可以部署有多台服务器,如sever1-serverN,而一台服务器可虚拟成多台虚拟机,如vm1-vmN,甚至更多,而一台虚拟机相当于一台主机,基于此,在VXLAN网络中主机的数量就可以呈现数量级的变化。同时,VXLAN网络中通过引入类似VLANID的用户标识,称为VXLAN网络标识VNI(VXLAN NetworkIdentifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识。通过VXLAN,虚拟网络可接入大量租户,且租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度。但是VXLAN并没有解决二层网络流量泛洪的问题,并且由于VXLAN技术支持更多的用户接入,二层网络的泛洪问题变得愈加严重。
以图2为例,VXLAN隧道由一对VTEP IP地址确定,静态VXLAN隧道的创建完全通过手工配置本端和远端的VNI、VTEP IP地址和头端复制列表来完成,只要VXLAN隧道的两端VTEP IP是三层路由可达的,VXLAN隧道就可以建立成功。如图2中所示,通信站点Leaf1上部署了主机(也可以称为租户)Host1和Host3,Leaf2上部署了Host2,通信网关Spine上部署三层网关。
为了实现Host3和Host2之间的通信,需要分别在Leaf1和Leaf2上手动配置VNI,并在配置头端复制列表时指定对端VTEP IP地址。只要Leaf1和Leaf2上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道。同理,为了实现Host1和Host2之间的通信,需要分别在Leaf1和Spine、Spine和Leaf2上手动配置VNI,并在配置头端复制列表时指定对端VTEP IP地址。只要Leaf1和Spine上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道;同样的,只要Spine和Leaf2上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道。
初始状态下,Leaf1和Leaf2上是没有MAC表项的,Host1和Host2之间起初通信只能通过广播泛洪来解决。假设Host1要访问Host2,在Leaf1上使用Host2的IP地址192.168.20.1查地址解析协议ARP(Address Resolution Protocol)表,如果无法命中,那么就会广播发送ARP请求报文,由此,VXLAN网络中的广播流量会随着租户数量增加而变得愈加严重,形成网络拥塞,严重影响网络的稳定。
基于图3,以下对Leaf1或Leaf2中的广播域进行简单说明:
在网络虚拟边缘节点NVE(Network Virtualization Edge)上将连接vm的出接口Port和隧道都绑到BD(Bridge Domain)中,用BD构建了一个二层广播域,BD中只能包含一个VXLAN隧道,但是可以有多个Port。假设Port1收包,如果是单播报文,那么根据目的MAC地址和BD的ID查找具体的出接口,如果出接口是VNI,证明是要入VXLAN隧道,那么封装VXLAN报文,将报文发到对端。如果收到是广播报文,那么报文将复制多份,除了收包口Port1以外,BD中的其它端口都会发送一份报文,即Port2、Port3、Port4和VXLAN隧道。而如果是跨VNI访问,就需要用到三层VXLAN网关。
目前,为了解决VXLAN网络内的广播泛洪问题,当前的解决方案是利用MAC学习功能,在初次广播泛洪后,学习到各主机的MAC地址,那么下一次报文转发时,就会变成单播转发,而避免广播泛洪。
以下对数据面上的MAC地址动态学习进行说明,如图4中所示:
1、Host3向Leaf1发送报文之后,Leaf1在进行报文转发时,如果找不到MAC地址,则触发MAC学习,或者,Host3主动ARP请求报文。以后一种情况为例,Host3发送包含源MAC地址为MAC3地址、目的MAC地址为全F、源IP地址为IP3地址、目的IP地址为IP2地址的ARP请求报文,以请求Host2的MAC地址。
2、Leaf1收到该ARP请求后,在广播域内进行广播,由于Port1和VXLAN隧道被配置在同一个广播域即BD域内,所以会有一份报文进入VXLAN隧道,并确定报文所对应的VNI(预先配置为20,BD和VNI是1:1的对应关系)。此时,Leaf1学习到了Host3的MAC地址、BDID(二层广播域标识)和报文入接口(即二层子接口对应的物理接口Port1)的对应关系,并在本地MAC表中生成Host3的MAC表项,其出接口为Port1。
3、Leaf1对该ARP请求报文进行VXLAN封装,如图5所示,封装的VNI是绑定当前BD的VNI,封装的外层源IP地址为Leaf1的VTEP IP地址,外层目的IP地址为Leaf2的VTEP IP地址,外层源MAC地址为Leaf1的NVE1接口MAC地址,外层目的MAC地址为去往目的IP的网络下一跳的MAC地址。封装后的报文根据外层MAC和IP信息在IP网络中传输,送达Leaf2。
4、Leaf2收到报文后进行解封装,得到Host3发送的原始ARP请求报文,同时Leaf2学习到Host3的MAC地址、BDID和Leaf1上VTEP IP地址的对应关系,并在本地的MAC表中生成Host3的MAC表项,其出接口需根据下一跳(即Leaf1的VTEP IP地址)进行迭代,最终迭代结果是指向Leaf1的VXLAN隧道。
5、Leaf2在对应的二层域内广播ARP请求报文。Host2在收到ARP请求后,比较报文中的目的IP是否为本机的IP地址,如果是,则将Host3的MAC地址保存到本地的MAC表中,并以Host2的MAC地址进行ARP应答。
由于此时Host2已经学习到了Host3的MAC地址,所以Host2向Host3反馈的ARP应答报文为单播报文,后续的ARP应答报文发送过程与上述过程类似,这里不再赘述。Host3和Host2互相学习到对方的MAC地址之后,双方将采用单播通信。
在管理面上的MAC地址动态学习和通告如图6中所示:
EVPN(Ethernet Virtual Private Network)是一种用于二层网络互联的虚拟专用网络VPN(Virtual Private Network)技术。EVPN技术采用类似于边界网关协议BGP(Border Gateway Protocol)/多协议标签交换MPLS(Multi-Protocol Label Switching)IP VPN的机制,通过扩展BGP协议,使用扩展后的可达性信息,使不同站点的二层网络间的MAC地址学习和发布过程从数据平面转移到控制平面,具体如下:
1、Host3首次与Leaf1通信时,通过动态ARP请求报文,Leaf1学习到Host3的MAC地址、BDID(二层广播域标识)和报文入接口(即二层子接口对应的物理接口Port1)的对应关系,并在本地MAC表中生成Host3的MAC表项,其出接口为Port1。同时,Leaf1根据Host3的ARP表项生成BGP EVPN路由并发送给对等体Leaf2,该路由携带本端EVPN实例的出方向VPN-Target、路由下一跳属性以及BGP EVPN协议新定义的Type2路由即MAC/IP路由。其中,路由下一跳属性携带的是本端VTEP IP地址;MAC/IP路由如图7所示,Host3的MAC地址存放在MACAddress Length和MAC Address字段中,二层VNI存放在MPLS Label1字段中。
2、Leaf2收到Leaf1发来的BGP EVPN路由后,首先检查该路由携带的EVPN实例的出方向VPN-Target,如果与本端EVPN实例的入方向VPN-Target相等,则接收该路由,否则丢弃该路由。在接收该路由后,Leaf2获得Host3的MAC地址、BDID和Leaf1上VTEP IP地址(下一跳属性)的对应关系,并在本地的MAC表中生成Host3的MAC表项,其出接口需根据下一跳进行迭代,最终迭代结果是指向Leaf1的VXLAN隧道。
其中,Leaf1学习Host2的主机MAC的过程与上述过程相同,这里不再赘述。
基于以上,Leaf1上如果提前学习到了Leaf2的MAC,那么Host3首次与Leaf1通信时,就无需再进行跨站点发送ARP广播请求,直接单播通信即可。
由此可见,以上为了避免泛洪所提出的数据面上MAC地址学习的技术方案中,不同站点互通时,在没有学到对方的MAC之前,仍然需要进行广播泛洪,并且不同站点所学习到的MAC不能互通。如Leaf1学到了Leaf2中的MAC,无法通告给其它Leaf,如Leaf3,Leaf3要访问Leaf2时,仍然需要广播泛洪。也就是说,该方案只是解决了首包之后的单播传输问题,首包泛洪的问题仍然很严重,并且随着Leaf数量的增加,Leaf内租户数量的增加,泛洪给网络带来的影响愈加严重。
而在管理面进行MAC地址动态学习和通告的方案,虽然解决了不同站点学习到的MAC不能互通的问题,例如通过EVPN技术,将Leaf1学习到的MAC通告到其它Leaf,如Leaf2,Leaf2要访问Leaf1时,由于已经学习到了MAC,不再需要泛洪,但是管理面学习MAC存在性能问题,在大规模二层网络的情况下,Leaf2在访问Leaf1时,管理面还未学习到Leaf1的MAC,那么泛洪仍然无法避免。
有鉴于此,本申请的发明人经过进一步研究发现,如果不使用MAC in UDP实现跨站点或VNI的报文传输,那么可以在某个Host跨站点或者跨VNI进行请求报文的广播时,在相应通信站点上以站点的MAC地址进行代答,而无需广播ARP请求报文,基于此,Host在后续进行跨站点或者跨VNI的报文传输时,就可以以通信站点的MAC地址为目的MAC地址和Host的IP地址进行内层报头封装,再经过通信站点基于预设类型的IP协议对应的封装方式封装通信报文的外层报头之后,就可以基于IP协议进行报文传输,而通信报文到达对端通信站点之后可以按照IP协议对应的解封方式解封外层报头,以内层报头中的目的IP地址将通信报文传输到相应的Host上,具体如下:
在第一通信站点如图2中的Leaf1一侧:
第一通信站点接收第一通信站点内的第一主机如Host3广播的请求报文,所述请求报文用于请求获得第二主机如Leaf2内的Host2的MAC地址;解析请求报文的报头,以得到请求报文中第二主机的IP地址;如果第二主机的IP地址表征第二主机所属的第二通信站点与第一通信站点不同或者第二主机与第一主机分别对应于不同的VNI,向第一主机传输第一答复报文,第一答复报文中包含的MAC地址为第一通信站点的MAC地址,以使得第一主机与第二主机进行通信时能够以第一通信站点的MAC地址为目的MAC地址生成通信报文;
其中,第一通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输。
基于此,在第一通信站点上接收到第一主机广播的请求报文时,在解析出请求报文中的目的IP地址之后,通过判断该目的IP地址是否表征第二主机所属的通信站点与当前的通信站点不同或者第二主机与第一主机分别对应于不同的VNI,如果任意一条满足,那么即可确定第二主机与第一主机之间是跨站点或跨VNI的报文通信,此时本申请中并不是直接进行报文广播,而是进行报文代答,也就是向第一主机传输包含第一通信站点的MAC地址的答复报文,由此,就可以避免广播请求报文所造成的广播流量严重的情况,从而避免网络拥塞,以达到提高网络稳定性的目的。
同时,基于以上代答方案,在第一主机接收到第一通信站点所传输的答复报文之后,第一主机与跨站点或跨VNI的第二主机进行通信时能够以当前通信站点的MAC地址为目的MAC地址生成通信报文,而第一通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输,由此不再使用MAC地址也能够实现报文传输。
在一种实现方式中,将通信报文封装成支持预设类型的IP协议的通信报文,可以为:对通信报文按照预设的封装方式进行封装,以使得封装后的通信报文除了内层报头还具有外层报头,且通信报文中的协议标识表征通信报文为预设类型的IP协议报文;
其中,外层报头中至少包括第一主机对应的VNI和外层目的IP地址,外层目的IP地址为第一通信站点在VXLAN网络中的下一跳IP地址。
基于此,将通信报文通过通信网关基于IP协议进行传输,包括:通过第一主机对应的VNI所对应的通信隧道,按照外层报头中的外层目的IP地址,将通信报文向第一通信站点对应的通信网关传输,以使得在通信网关对外层报头进行修改后,将通信报文按照经过修改后的外层报头中的外层目的IP地址传输到第二主机所属的第二通信站点;
而在第二通信站点如图2中的Leaf2一侧,第二通信站点在接收通信网关传输的通信报文之后,对通信报文按照预设的封装方式对应的解封方式进行解封,以得到通信报文的内层报头;之后再至少按照内层报头中的内层目的IP地址将通信报文传输到所述第二主机。
其中,第一通信站点和第二通信站点中均保存有至少一条映射关系,映射关系为:主机的IP地址、主机对应的VNI和主机所属的通信站点之间的映射关系,用以进行通信报文的封装、解封和转发。
另外,在对通信报文按照预设的封装方式进行封装之前,还可以先判断第一通信站点上预设的封装方式对应的组件是否被使能;如果预设的封装方式对应的组件被使能,执行步骤:对通信报文按照预设的封装方式进行封装;如果预设的封装方式对应的组件没有被使能,触发预设的封装方式对应的组件进入使能状态,并执行步骤:对通信报文按照预设的封装方式进行封装。
除此之外,在向第一主机传输第一答复报文之前,可以先判断第一通信站点是否支持预设的封装方式;如果第一通信站点支持预设的封装方式,执行步骤:向第一主机传输第一答复报文。
而如果第二主机的IP地址表征第二主机所属的第二通信站点与第一通信站点相同且者第二主机与第一主机分别对应于相同的VNI,可以向第一通信站点内的第二主机传输请求报文;以使得第二主机向第一主机传输第二答复报文,第二答复报文中至少包含第二主机的MAC地址,以使得第一主机与第二主机进行通信时以第二主机的MAC地址为目的MAC地址生成通信报文并将所述通信报文根据所述目的MAC地址传输到所述第二主机。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图8和图9中所示,为本申请实施例一提供的一种通信处理方法中第一通信站点和第二通信站点之间通过通信网关进行报文传输的交互示意图,本实施例中的通信处理方法主要在VXLAN网络中的通信站点上做改进。本实施例中的技术方案主要用于避免报文传输中的广播泛洪,从而避免网络拥塞,以达到提高网络稳定性的目的。
具体实现中,本实施例中的通信处理方法可以包括以下流程:
步骤801:第一主机生成请求报文。
其中,第一主机为第一通信站点内的虚拟机,如Host3,该第一主机对应有一个VNI,如VNI20。第一主机在需要与第二主机进行通信时,需要用到第二主机的MAC地址,因此,需要学习第二主机的MAC地址。基于此,第一主机生成请求报文,该请求报文主要用于请求获得第二主机的MAC地址,在请求报文中包括有报头,在报头中包含有源MAC地址、目的MAC地址、源IP地址和目的IP地址,其中的目的MAC地址中的地址字段为全F字段,以表征该请求报文为广播报文。以Host3为例,想要学习Host2的MAC地址时,Host3生成目的MAC地址为全F的请求报文,其中源MAC地址为Host3的MAC地址,源IP地址为Host3的IP地址,目的IP地址为Host2的IP地址。
另外,请求报文的报文头中还可以包含有第一主机对应的VNI,如Host3对应的VNI20。
需要说明的是,各通信站点、各主机及通信网关的IP地址和VNI预先配置。
步骤802:第一主机将请求报文进行广播,相应的第一通信站点接收到第一主机广播的请求报文。
其中,请求报文中的目的MAC地址为全F,因此,第一通信站点可以接收到请求报文。
步骤803:第一通信站点解析请求报文的报头,以得到请求报文中第二主机的IP地址。
其中,第一通信站点可以根据其所收到的所有主机传来的报文来记录各个主机的主机的IP地址、主机对应的VNI以及主机所属的通信站点之间的映射关系,由此,在第一通信站点中保存有一条或多条映射关系,每条映射关系为:相应主机的主机的IP地址、主机对应的VNI和主机所属的通信站点之间的映射关系。
步骤804:第一通信站点根据第二主机的IP地址,判断第二主机所属的第二通信站点与第一通信站点不同或者第二主机与第一主机分别对应于不同的VNI,如果第二主机的IP地址表征第二主机与第一主机属于同步的通信站点或者第二主机与第一主机虽然属于相同的通信站点但是分别对应于不同的VNI,即跨站点或跨VNI,执行步骤805,如果第二主机与第一主机属于相同的通信站点而且对应于同一个VNI,那么执行步骤806。
例如,Host3与Host2分别属于通信站点Leaf1和通信站点Leaf2,但是对应于相同的VNI20,Host3和Host1属于相同的通信站点Leaf1,但是对应于不同的VNI,Host3对应于VNI20,Host1对应于VNI10。
步骤805:判断第一通信站点是否均支持预设的封装方式,如果第一通信站点支持预设的封装方式,执行步骤807,如果不支持,那么仍然采用原始的MAC地址学习方案,即通过将请求报文进行广播,直到获得到第二主机反馈的MAC地址。
其中,这里的预设的封装方式可以为VXLAN-GPE的封装方式,本实施例中可以通过判断第一通信站点是否配置有VXLAN-GPE功能,来判断其是否支持预设VXLAN-GPE的封装方式,如果在第一通信站点上配置有VXLAN-GPE功能,那么表明第一通信站点是支持预设的封装方式的。
需要说明的是,VXLAN-GPE的封装方式和VXLAN的封装方式的区别在于,VXLAN内部封装的是以太报文,VXLAN-GPE支持多种协议的封装。在本实施例中,VXLAN-GPE的封装方式具体可以为IP报文的封装方式,由此VXLAN-GPE的封装方式所封装的报文为IP报文,不再需要主机的MAC地址。
步骤806:第一通信站点向第一通信站点内的第二主机传输请求报文。
其中,本实施例中可以通过广播的方式在第一通信站点内的所有主机广播请求报文,相应的第二主机能够接收到请求报文,并将本机的IP地址与请求报文中的目的IP地址进行比对,确定本机就是请求报文的目的主机。
需要说明的是,第一通信站点内的其他接收到请求报文的主机可以通过IP地址的比对发现本机不是请求报文的目的主机,进而丢弃该请求报文,不做任何处理。
步骤808:第二主机向第一主机传输第二答复报文。
其中,第二答复报文中至少包含第二主机的MAC地址。具体的,第二主机在接收到第一通信站点转发来的请求报文之后,第二主机学习到请求报文中第一主机的MAC地址,由此,第二主机根据该第一主机的MAC地址生成第二答复报文,第二答复报文中的目的MAC地址为第一主机的MAC地址,同时包含源MAC地址为第二主机的MAC地址,由此,第一主机在接收到第二答复报文之后,学习到第二主机的MAC地址。
步骤809:第一主机在与第二主机进行通信时,以第二主机的MAC地址为目的MAC地址生成通信报文。
步骤810:第一主机将所述通信报文根据目的MAC地址传输到第二主机。
其中,此时的第二主机是与第一主机属于同一通信站点且对应于同一VNI的虚拟机,此时的通信报文的传输不需要VXLAN隧道传输,不再通过第一通信站点进行报文传输。
需要说明的是,在步骤806和步骤808所描述的MAC地址学习过程中,第一通信站点也学习到第一主机的MAC地址和第二主机的MAC地址。
步骤807:第一通信站点向第一主机传输第一答复报文。
其中,第一答复报文中包含的MAC地址为第一通信站点的MAC地址。
步骤811:第一主机在需要与第二主机进行通信时,以第一通信站点的MAC地址为目的MAC地址生成通信报文。
其中,此时的第二主机为与第一主机属于不同通信站点或者对应于不同VNI的虚拟机,此时第一主机在需要与第二主机进行通信时,需要通过通信站点及通信网关来实现报文传输,因此,第一主机的通信报文的下一跳肯定是第一通信站点,因此,本实施例中在第一通信站点上,可以将第一通信站点的MAC地址作为跨站点跨VNI的报文传输的目的MAC地址,并将该目的MAC地址答复给第一主机,而不再将请求报文广播出去,避免广播泛洪所导致的网络不稳定的情况。
步骤812:第一主机向第一通信站点发送通信报文,以使得第一通信站点接收第一主机发送的通信报文。
其中,通信报文中包含有内层报头(相对于后续的外层报头),内存报头中包含有源MAC地址、目的MAC地址、源IP地址和目的IP地址,还记录有VNI,其中的目的MAC地址中的地址字段为第一通信站点的MAC地址,源MAC地址为第一主机的MAC地址,源IP地址为第一主机的IP地址,目的IP地址为第二主机的IP地址。以Host3为例,想要与Host2进行通信时,Host3生成目的MAC地址为Leaf1的MAC地址的通信报文,其中源MAC地址为Host3的MAC地址,源IP地址为Host3的IP地址,目的IP地址为Host2的IP地址。
步骤813:判断第一通信站点上预设的封装方式对应的组件是否被使能,如果预设的封装方式对应的组件被使能,执行步骤814;而如果预设的封装方式对应的组件没有被使能,先执行步骤815,再执行步骤814。
步骤814:第一通信站点对通信报文按照预设的封装方式进行封装,以将通信报文封装成支持预设类型的IP协议的通信报文,执行步骤816。
具体的,第一通信站点可以按照预设的封装方式如前文中的VXLAN-GPE的IP报文封装方式对通信报文进行封装,例如,在通信报文的内层报头的外层再封装一个报头,即外层报头,如图10中所示,此时的通信报文中具有内层报头、UDP头和外层报头,并且,在通信报文中的协议标识设置为表征通信报文为预设类型的IP协议报文的符号,如原始载荷部分的type字段中的数值表征通信报文为支持IPV4协议的报文。
需要说明的是,在通信报文中内层报头中的内层目的MAC地址与第一通信站点的MAC地址是一致的。
具体的,通信报文的外层报头中至少包括第一主机对应的VNI和外层目的IP地址,外层目的IP地址为第一通信站点在VXLAN网络中的下一跳IP地址,另外,在外层报头中还包含有:外层源IP地址、外层目的MAC地址和外层源MAC地址,其中的外层源IP地址为第一通信站点如Leaf1的IP地址,外层目的MAC地址为下一跳的MAC地址即通信网关的MAC地址,外层源MAC地址为第一通信站点如Leaf1的MAC地址。
步骤815:第一通信节点触发预设的封装方式对应的组件进入使能状态。
其中,本实施例中在第一通信节点的配置界面上可以设置有组件触发控件,可以通过指令触发的方式自动触发预设的封装方式对应的组件进入使能状态,或者向用户发送提示信息,以提示用户在配置界面上对组件触发控件进行点击等操作,以使得预设的封装方式对应的组件进入使能状态。
需要说明的是,第一通信站点上在支持预设的封装方式如支持VXLAN-GPE的IP报文封装方式的情况下,需要让该预设的封装方式对应的组件处于使能状态,才能实现相应的报文封装,因此,本实施例中在进行报文封装之前,先判断组件是否被使能,如果没有被使能那么先执行步骤815对组件进行触发使能。
步骤816:第一通信站点将通信报文传输到通信网关。
具体的,第一通信站点通过第一主机对应的VNI所对应的通信隧道,按照外层报头中的外层目的IP地址,将通信报文向第一通信站点对应的通信网关传输。例如,按照VNI20对应的VXLAN-GPE隧道,将通信报文向第一通信站点对应的通信网关进行传输。
其中,第一主机对应的VNI所对应的通信隧道是指通过通信网关搭建在第一通信站点和第二通信站点之间的通信隧道。
步骤817:通信网关基于通信报文的协议标识所表征的IP协议,对通信报文的外层报头进行修改。
例如,通信网关根据内层报头中的内层目的IP地址将外层报头中的外层目的MAC地址修改为第二通信站点如Leaf2的MAC地址,将外层源MAC地址修改为通信网关如spine的MAC地址,将外层源IP地址修改为通信网关的IP地址,将外层目的IP地址修改为第二通信站点的IP地址。
步骤818:通信网关将通信报文传输到第二主机所属的第二通信站点。
步骤819:第二通信站点在接收到通信报文之后,对通信报文按照预设的封装方式对应的解封方式进行解封。
例如,第二通信站点按照预设类型的IP协议通过VXLAN-GPE的IP报文解封方式对通信报文进行解封,以读取到通信报文的内层报头,进而得到内层报头中的目的IP地址。
步骤820:第二通信站点至少按照解封出的内层报头中的内层目的IP地址将通信报文传输到第二主机。
其中,第二主机在接收到通信报文之后,将内层报头中的内层目的IP地址与本机的IP地址进行比对,如果比对一致,那么第二主机确定该通信报文是发给本机的报文,再对通信报文执行后续处理,如报文内容读取及计算等。
由上述方案可知,本申请实施例一提供的一种适用于VXLAN网络的通信处理方法中,在通信站点上接收到第一主机广播的请求报文时,在解析出请求报文中的目的IP地址之后,通过判断该目的IP地址是否表征目的主机所属的通信站点与当前的通信站点不同或者目的主机与第一主机分别对应于不同的VNI,如果任意一条满足,那么即可确定目的主机与第一主机之间是跨站点的报文通信,此时本实施例中并不是直接进行报文广播,而是进行报文代答,也就是说向第一主机传输包含当前通信站点的MAC地址的答复报文,由此,就可以避免广播请求报文所造成的广播流量严重的情况,从而避免网络拥塞,以达到提高网络稳定性的目的。
同时,基于以上代答方案,在第一主机接收到当前通信站点所传输的答复报文之后,第一主机与目的主机进行通信时能够以当前通信站点的MAC地址为目的MAC地址生成通信报文,而当前的通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输,由此不再使用MAC地址也能够实现报文传输。
参考图11a,为本申请实施例二提供的一种通信处理装置的结构示意图,该装置可以配置在VXLAN网络中的第一通信站点,并执行图8和图9中第一通信站点的相关步骤。
具体的,本实施例中的装置可以包括以下单元:
接收单元1101,用于接收第一通信站点内的第一主机发送的请求报文,请求报文用于请求获得第二主机的MAC地址;
解析单元1102,用于解析请求报文的报头,以得到请求报文中第二主机的IP地址;
代答单元1103,用于如果第二主机的IP地址表征第二主机所属的第二通信站点与第一通信站点不同或者第二主机与第一主机分别对应于不同的VNI,向第一主机传输第一答复报文,第一答复报文中包含的MAC地址为第一通信站点的MAC地址,以使得第一主机与第二主机进行通信时能够以第一通信站点的MAC地址为目的MAC地址生成通信报文;
封装单元1104,在接收单元接收第一主机发送的通信报文后,用于将通信报文封装成支持预设类型的IP协议的通信报文。
例如,封装单元1104对所述通信报文按照预设的封装方式进行封装,以使得封装后的通信报文除了所述内层报头还具有外层报头,且所述通信报文中的协议标识表征所述通信报文为预设类型的IP协议报文;其中,所述外层报头中至少包括所述第一主机对应的VNI和外层目的IP地址,所述外层目的IP地址为所述第一通信站点在所述VXLAN网络中的下一跳IP地址。
传输单元1105,用于将通信报文通过通信网关基于IP协议进行传输。
例如,传输单元1105通过所述第一主机对应的VNI所对应的通信隧道,按照所述外层报头中的外层目的IP地址,将所述通信报文向所述第一通信站点对应的通信网关传输,以使得在所述通信网关对所述外层报头进行修改后,将所述通信报文按照经过修改后的外层报头中的外层目的IP地址传输到所述第二主机所属的第二通信站点;其中,所述第二通信站点在接收到所述通信报文之后,对所述通信报文按照所述预设的封装方式对应的解封方式进行解封,并至少按照解封出的内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
由上述方案可知,本申请实施例二提供的一种适用于VXLAN网络的通信处理装置中,在通信站点上接收到第一主机广播的请求报文时,在解析出请求报文中的目的IP地址之后,通过判断该目的IP地址是否表征目的主机所属的通信站点与当前的通信站点不同或者目的主机与第一主机分别对应于不同的VNI,如果任意一条满足,那么即可确定目的主机与第一主机之间是跨站点的报文通信,此时本实施例中并不是直接进行报文广播,而是进行报文代答,也就是说向第一主机传输包含当前通信站点的MAC地址的答复报文,由此,就可以避免广播请求报文所造成的广播流量严重的情况,从而避免网络拥塞,以达到提高网络稳定性的目的。
同时,基于以上代答方案,在第一主机接收到当前通信站点所传输的答复报文之后,第一主机与目的主机进行通信时能够以当前通信站点的MAC地址为目的MAC地址生成通信报文,而当前的通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输,由此不再使用MAC地址也能够实现报文传输。
其中,所述第一通信站点中保存有至少一条映射关系,所述映射关系为:主机的IP地址、主机对应的VNI和主机所属的通信站点之间的映射关系。
在一种实现方式中,本实施例中的装置还可以包括有以下单元,如图11b中所示:
使能单元1106,用于在封装单元1104在对所述通信报文按照预设的封装方式进行封装之前,判断所述第一通信站点上所述预设的封装方式对应的组件是否被使能;如果所述预设的封装方式对应的组件被使能,触发封装单元1104,如果所述预设的封装方式对应的组件没有被使能,触发所述预设的封装方式对应的组件进入使能状态,再触发封装单元1104对所述通信报文按照预设的封装方式进行封装。
在一种实现方式中,本实施例中的装置还可以包括有以下单元,如图11中所示:
判断单元1107,用于在代答单元1103向所述第一主机传输第一答复报文之前,判断所述第一通信站点是否支持预设的封装方式;如果所述第一通信站点支持所述预设的封装方式,触发代答单元1103,向所述第一主机传输第一答复报文。
另外,如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点相同且者所述第二主机与所述第一主机分别对应于相同的VNI,传输单元1105还用于:向所述第一通信站点内的第二主机传输所述请求报文,以使得第二主机向所述第一主机传输第二答复报文,所述第二答复报文中至少包含所述第二主机的MAC地址,以使得所述第一主机与所述第二主机进行通信时以所述第二主机的MAC地址为目的MAC地址生成通信报文并将所述通信报文根据所述目的MAC地址传输到所述第二主机。
参考图12,为本申请实施例三提供的一种通信处理装置的结构示意图,该装置可以配置在VXLAN网络中的第二通信站点,并执行图8和图9中第二通信站点的相关步骤。
具体的,本实施例中的装置可以包括以下单元:
接收单元1201,用于接收通信网关基于预设类型的IP协议传输的通信报文;其中,通信报文为第一通信站点内的第一主机以第一通信站点的MAC地址为目的MAC地址生成且经过第一通信站点封装的支持预设类型的IP协议的报文,第二主机所属的第二通信站点与第一通信站点不同或者第二主机与第一主机分别对应于不同的VNI;
解封单元1202,用于对通信报文按照预设类型的IP协议对应的解封方式进行解封,以得到通信报文的内层报头;
传输单元1203,用于至少按照内层报头中的内层目的IP地址将通信报文传输到第二主机。
由上述方案可知,本申请实施例三提供的一种适用于VXLAN网络的通信处理装置中,在通信站点上接收到第一主机广播的请求报文时,在解析出请求报文中的目的IP地址之后,通过判断该目的IP地址是否表征目的主机所属的通信站点与当前的通信站点不同或者目的主机与第一主机分别对应于不同的VNI,如果任意一条满足,那么即可确定目的主机与第一主机之间是跨站点的报文通信,此时本实施例中并不是直接进行报文广播,而是进行报文代答,也就是说向第一主机传输包含当前通信站点的MAC地址的答复报文,由此,就可以避免广播请求报文所造成的广播流量严重的情况,从而避免网络拥塞,以达到提高网络稳定性的目的。
同时,基于以上代答方案,在第一主机接收到当前通信站点所传输的答复报文之后,第一主机与目的主机进行通信时能够以当前通信站点的MAC地址为目的MAC地址生成通信报文,而当前的通信站点在接收到第一主机发送的通信报文后,能够将通信报文封装成支持预设类型的IP协议的通信报文,并将通信报文通过通信网关基于IP协议进行传输,由此不再使用MAC地址也能够实现报文传输。
另外,本申请实施例还提供了一种电子设备,如图13中所示,该电子设备包括至少一个处理器1301、以及与处理器1301连接的至少一个存储器1302、总线1303;其中,处理器1301、存储器1302通过总线1303完成相互间的通信;处理器1301用于调用存储器1302中的程序指令,以执行上述的通信处理方法。本文中的电子设备可以是作为通信站点的服务器等。
本申请还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如图8中所示的流程方案。
以下以图2中的网络架构为例,对本申请的技术方案进行举例说明:
在本申请中,不再采用MAC in UDP的VXLAN报文传输(这种方案中通信站点之间的通信必须携带对方站点的目的MAC),在本申请区别于这种方案,基于VXLAN-GPE,设计一套全新的VXLAN-GPE报文,通信站点之间通信的不再是MAC inUDP的VXLAN报文,而是IP inUDP的VXLAN-GPE报文。
其中,VXLAN-GPE封装格式如图14中所示,本申请中相对于原始的VXLAN报文,改造VXLAN的报文的报头字段,使得VXLAN能够支持IP报文的传输,具体报头的改造如下:
1、第5bit位的改造:即协议标志位(P位)的改造,本申请中设置为1,表明封装在VXLAN里面的原始报文有可能不是默认的以太报文,相应的协议类型需要根据报文头中的NP字段来进行判断;
2、VXLAN头第一个32bit中的后8bit,代表NP(Next Protocol Field),是封装的有效负载的协议,0x1代表的是IPv4(当然也可以是IPv6或者其他协议类型);
3、VXLAN后封装的有效负载,就是IP报文,而不再是以太报文。
可见,VXLAN-GPE封装和VXLAN封装的区别在于,VXLAN内部封装的是以太报文,VXLAN-GPE支持多种协议的封装,本申请中主要涉及的是IP报文的封装。由于VXLAN-GPE的是IP报文,不再需要租户IP对应的MAC,因此解决站点之间广播泛洪的问题。
以下结合图15中的VXLAN-GPE功能架构,该功能架构部署在每个通信站点的服务器中,其中:
VXLAN-GPE功能架构分控制面和转发面。其中的控制面主要负责配置、协议交互、站点租户IP地址的管理、以及部分需要控制面下发的协议报文,如果通信报文通过VXLAN-GPE隧道进行传输,则需要进行VXLAN-GPE封装。其中的数据面主要接收从控制面下发的参数和协商结果,完成数据报文的转发以及站内异网租户的ARP代答。具体的功能如图15所示,各模块的功能如下:
控制面VXLAN-GPE配置模块:配置VXLAN-GPE的使能状态,开启VXLAN-GPE功能,触发VXLAN-GPE协商。同时支持对VXLAN-GPE的参数进行配置,相关的参数(如支持IPV4报文、V6报文或其他协议的参数)需要下发到转发面。
控制面VXLAN-GPE协议交互模块:VXLAN-GPE VTEP之间进行协议交互,建立VXLAN-GPE隧道,需要两端都打开了VXLAN-GPE功能。VXLAN-GPE隧道由一对VTEP IP地址确定,创建VXLAN-GPE隧道实际上是两端VTEP获取对端VTEP IP地址的过程,只要对端VTEP IP地址是三层路由可达的,VXLAN隧道就可以建立成功。
控制面VXLAN-GPE租户IP映射关系管理模块:管理租户IP、VNI、站点之间的对应关系。该关系通过配置或者协议协商的方式获取。
控制面VXLAN-GPE报文封装模块:从控制面下发的协议报文,如果出接口是VXLAN隧道,需要在控制面封装好后,指定发送接口直接下插到转发面,转发面不再做处理,直接进行从指定接口发送。
转发面VXLAN-GPE模块:接收从控制面下发的参数和协商结果,是VXLAN-GPE在转发面的基础模块,提供表项的存储、查询服务。
转发面VXLAN-GPE租户IP映射关系管理模块:接收控制面模块下发的租户IP、VIN、站点之间的映射关系,对转发面其它模块提供转发流程选择支持(如使用VXLAN-GPE封装转发还是使用VXLAN封装转发)。
转发面VXLAN-GPE报文封装模块:数据报文转发,出接口是VXLAN-GPE隧道,进行VXLAN-GPE封装。从VXLAN-GPE出来的报文,提供解封装支持。
转发面异网异站点租户的ARP代答模块:连接VNE的租户,在访问其它租户时,由于没有对应租户的MAC,需要发送ARP请求,为了防止ARP请求报文通过VXLAN-GPE隧道跨站点广播,在VNE处需要进行ARP代理应答。
以下对VXLAN-GPE场景下的ARP代答进行说明:
在通信节点上对广播的请求报文进行ARP代答,能够避免广播泛洪的问题(ARP广播,以及未学到ARP之前,数据报文的泛洪)。VNE处只对目的IP异网异站点的租户进行ARP代答,ARP代答流程如图16所示。
1、Host3首次与Leaf1通信时,通过动态ARP报文,Leaf1学习到Host3的MAC地址、BDID(二层广播域标识)和报文入接口(即二层子接口对应的物理接口Port1)的对应关系,并在本地MAC表中生成Host3的MAC表项,其出接口为Port1。
2、Leaf1收到该ARP请求后,由于配置VXLAN-GPE使能,判断目的IP是否需要进行ARP代答,由于目的IP是Leaf2的Host2,因此Leaf1进行ARP代答,告诉Host3:IP192.168.20.1的目的MAC是MAC4,即Leaf1自己的MAC地址。
其中,判断目的IP是否需要进行ARP代答的判断流程见图17中所示:首先在发现报文为ARP请求报文的情况下,判断是否开启了VXLAN-GPE,如果VXLAN-GPE,那么再判断目的IP地址是否为其他通信站点的IP地址,如果目的IP地址是本地通信站点的IP地址,再判断目标IP地址对应的VNI是否与出接口PORT1的VNI不同,而如果目的IP地址是为其他通信站点的IP地址或者目标IP地址对应的VNI与出接口PORT1的VNI不同,那么确定进行ARP代答,如果目的IP地址是为本地通信站点的IP地址且目标IP地址对应的VNI与出接口PORT1的VNI相同,不进行ARP代答。
基于以上实现,Leaf1通过ARP代答,避免了ARP请求报文的广播发送。只有在异网或者异站点的租户才需要进行ARP代答。
需要说明的是,图17中的ARP请求报文的目的MAC是全0xFF,本申请中在通信站点上如果发现ARP请求报文是其它异站点非同一个VNI的租户IP,则进行代答。具体的,图17中目的IP地址的通信站点判断以及VNI的判断,需要用到租户IP映射关系管理模块中的映射关系。
以下对VXLAN-GPE场景下的报文转发流程进行说明,其中,通信报文进入到VXLAN-GPE隧道的流程如图18中所示:在发现通信报文中的目的MAC地址与本地通信站点的MAC地址一致,那么需要通过三层路由即VXLAN-GPE隧道进行报文转发流程,接下来判断是否开启了VXLAN-GPE,如果没有开启VXLAN-GPE,那么继续按照原始的报文转发流程进行转发,而如果开启了VXLAN-GPE,那么利用映射关系通过目的MAC地址获取到对端通信站点的VTEP信息,区别于VXLAN的封装方式,以VXLAN-GPE的封装方式对通信报文进行封装,再将通信报文通过VXLAN-GPE隧道通过通信网关进行传输。
需要说明的是,由于VNI的ARP代答,所有入VXLAN-GPE隧道的目的MAC都是VNI的本地MAC。其中,图18中通过目的IP地址获取对端VTEP信息,需要用到租户IP映射关系管理模块中的映射关系。此时,进入到VXLAN-GPE隧道后的报文格式是IP in UDP格式。
而通信报文出VXLAN-GPE隧道流程如图19中所示:
在通信站点上离开VXLAN-GPE隧道之前,先判断通信站点是否开启了VXLAN-GPE,如果开启了VXLAN-GPE且通信报文是VXLAN-GPE的封装方式所封装的报文,那么可以采用VXLAN-GPE的解封方式进行报文解封,在解封之后,进行报文转发,而如果没有开启VXLAN-GPE或者通信报文不是VXLAN-GPE的封装方式所封装的报文,那么按照原始的报文转发流程进行转发。
其中,图19中在解封出报文后,还原出用户原始IP报文,走正常的三层转发流程。
另外,VXLAN-GPE租户映射关系管理模块:在VNE上需要维护租户IP、站点、VNI的映射关系,在ARP代答以及入VXLAN-GPE隧道流程中都可以用到。而映射关系的维护,可以通过配置,也可以通过协议动态学习。
VXLAN-GPE支持配置生效模块:VXLAN隧道默认情况下是普通的VXLAN模式,只支持MAC in UDP,需要配置VXLAN-GPE使能开关,才支持VXLAN-GPE隧道。
综上,在通信站点中配置有一个使能开关,只有当开关打开时,本申请中的技术方案才能生效。生效后的技术方案中,通过对当前VXLAN封装格式进行扩充,支持封装IP报文。其中,进入VXLAN-GPE隧道的报文,不再需要目的租户的MAC地址,而是直接将用户原始的IP报文封装在VXLAN-GPE中。而出VXLAN-GPE隧道的报文,判断是VXLAN-GPE报文,并且VXLAN-GPE功能已经打开的情况下,按照VXLAN-GPE的格式进行解封装,然后走普通的三层转发流程。另外,通过目的IP获取对端VTEP信息,则创建一个租户IP、站点、VNI的映射关系。该映射关系,通过静态配置生成或者协议动态协商生成。同时,VNE对域内的租户的ARP请求进行代答,代答目的IP是其它VTEP内的租户的ARP请求报文,回复ARP请求,MAC地址是VNE本地MAC地址。由于进行了ARP代答,那么跨站点访问的报文,VNE上收到的报文,目的MAC是VNE的本地MAC,在VXLAN-GPE功能开启的情况下,通过目的IP获取VTEP信息,进行VXLAN-GPE封装后,入隧道。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种通信处理方法,其特征在于,应用于VXLAN网络中的第一通信站点,所述第一通信站点与其他通信站点之间配置有通信网关,所述方法包括:
接收所述第一通信站点内的第一主机广播的请求报文,所述请求报文用于请求获得第二主机的MAC地址;
解析所述请求报文的报头,以得到所述请求报文中所述第二主机的IP地址;
如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI,向所述第一主机传输第一答复报文,所述第一答复报文中包含的MAC地址为所述第一通信站点的MAC地址,以使得所述第一主机与所述第二主机进行通信时能够以所述第一通信站点的MAC地址为目的MAC地址生成通信报文;
其中,所述第一通信站点在接收到第一主机发送的通信报文后,能够将所述通信报文封装成支持预设类型的IP协议的通信报文,并将所述通信报文通过所述通信网关基于所述IP协议进行传输。
2.根据权利要求1所述的方法,其特征在于,将所述通信报文封装成支持预设类型的IP协议的通信报文,包括:
对所述通信报文按照预设的封装方式进行封装,以使得封装后的通信报文除了内层报头还具有外层报头,且所述通信报文中的协议标识表征所述通信报文为预设类型的IP协议报文;
其中,所述外层报头中至少包括所述第一主机对应的VNI和外层目的IP地址,所述外层目的IP地址为所述第一通信站点在所述VXLAN网络中的下一跳IP地址。
3.根据权利要求2所述的方法,其特征在于,将所述通信报文通过所述通信网关基于所述IP协议进行传输,包括:
通过所述第一主机对应的VNI所对应的通信隧道,按照所述外层报头中的外层目的IP地址,将所述通信报文向所述第一通信站点对应的通信网关传输,以使得在所述通信网关对所述外层报头进行修改后,将所述通信报文按照经过修改后的外层报头中的外层目的IP地址传输到所述第二主机所属的第二通信站点;
其中,所述第二通信站点在接收到所述通信报文之后,对所述通信报文按照所述预设的封装方式对应的解封方式进行解封,并至少按照解封出的内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
4.根据权利要求2所述的方法,其特征在于,所述第一通信站点中保存有至少一条映射关系,所述映射关系为:主机的IP地址、主机对应的VNI和主机所属的通信站点之间的映射关系。
5.根据权利要求2所述的方法,其特征在于,在对所述通信报文按照预设的封装方式进行封装之前,所述方法还包括:
判断所述第一通信站点上所述预设的封装方式对应的组件是否被使能;
如果所述预设的封装方式对应的组件被使能,执行所述步骤:对所述通信报文按照预设的封装方式进行封装;
如果所述预设的封装方式对应的组件没有被使能,触发所述预设的封装方式对应的组件进入使能状态,并执行所述步骤:对所述通信报文按照预设的封装方式进行封装。
6.根据权利要求1所述的方法,其特征在于,在向所述第一主机传输第一答复报文之前,所述方法还包括:
判断所述第一通信站点是否支持预设的封装方式;
如果所述第一通信站点支持所述预设的封装方式,执行所述步骤:向所述第一主机传输第一答复报文。
7.根据权利要求1所述的方法,其特征在于,如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点相同且者所述第二主机与所述第一主机分别对应于相同的VNI,所述方法还包括:
向所述第一通信站点内的第二主机传输所述请求报文,以使得第二主机向所述第一主机传输第二答复报文,所述第二答复报文中至少包含所述第二主机的MAC地址,以使得所述第一主机与所述第二主机进行通信时以所述第二主机的MAC地址为目的MAC地址生成通信报文并将所述通信报文根据所述目的MAC地址传输到所述第二主机。
8.一种通信处理方法,其特征在于,应用于VXLAN网络中的第二通信站点,所述第二通信站点与其他通信站点之间配置有通信网关,所述方法包括:
接收所述通信网关基于预设类型的IP协议传输的通信报文;其中,所述通信报文为第一通信站点内的第一主机以所述第一通信站点的MAC地址为目的MAC地址生成且经过所述第一通信站点封装的支持所述预设类型的IP协议的报文,第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI;
对所述通信报文按照所述预设类型的IP协议对应的解封方式进行解封,以得到所述通信报文的内层报头;
至少按照所述内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
9.一种通信处理装置,其特征在于,应用于VXLAN网络中的第一通信站点,所述第一通信站点与其他通信站点之间配置有通信网关,所述装置包括:
接收单元,用于接收所述第一通信站点内的第一主机发送的请求报文,所述请求报文用于请求获得第二主机的MAC地址;
解析单元,用于解析所述请求报文的报头,以得到所述请求报文中所述第二主机的IP地址;
代答单元,用于如果所述第二主机的IP地址表征所述第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI,向所述第一主机传输第一答复报文,所述第一答复报文中包含的MAC地址为所述第一通信站点的MAC地址,以使得所述第一主机与所述第二主机进行通信时能够以所述第一通信站点的MAC地址为目的MAC地址生成通信报文;
封装单元,在所述接收单元接收所述第一主机发送的通信报文后,用于将所述通信报文封装成支持预设类型的IP协议的通信报文;
传输单元,用于将所述通信报文通过所述通信网关基于所述IP协议进行传输。
10.一种通信处理装置,其特征在于,应用于VXLAN网络中的第二通信站点,所述第二通信站点与其他通信站点之间配置有通信网关,所述装置包括:
接收单元,用于接收所述通信网关基于预设类型的IP协议传输的通信报文;其中,所述通信报文为第一通信站点内的第一主机以所述第一通信站点的MAC地址为目的MAC地址生成且经过所述第一通信站点封装的支持所述预设类型的IP协议的报文,第二主机所属的第二通信站点与所述第一通信站点不同或者所述第二主机与所述第一主机分别对应于不同的VNI;
解封单元,用于对所述通信报文按照所述预设类型的IP协议对应的解封方式进行解封,以得到所述通信报文的内层报头;
传输单元,用于至少按照所述内层报头中的内层目的IP地址将所述通信报文传输到所述第二主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311809.1A CN113542441B (zh) | 2020-04-20 | 2020-04-20 | 一种通信处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311809.1A CN113542441B (zh) | 2020-04-20 | 2020-04-20 | 一种通信处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542441A CN113542441A (zh) | 2021-10-22 |
CN113542441B true CN113542441B (zh) | 2023-02-17 |
Family
ID=78093719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010311809.1A Active CN113542441B (zh) | 2020-04-20 | 2020-04-20 | 一种通信处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542441B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396367B (zh) * | 2022-07-06 | 2023-07-21 | 北京百度网讯科技有限公司 | 流量调度方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200069A (zh) * | 2013-03-29 | 2013-07-10 | 华为技术有限公司 | 一种报文处理的方法和设备 |
CN104335532A (zh) * | 2012-06-04 | 2015-02-04 | 瑞典爱立信有限公司 | 使用单独管理将vlan标记的分组路由到虚拟转发实例的远端地址 |
CN106210157A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 抑制地址解析协议消息的方法与系统、控制器 |
CN106850379A (zh) * | 2015-12-04 | 2017-06-13 | 中国电信股份有限公司 | 用于实现子网互通的方法和系统 |
CN107770294A (zh) * | 2016-08-18 | 2018-03-06 | 中兴通讯股份有限公司 | Evpn 中ip 地址冲突的处理方法及装置 |
CN107800625A (zh) * | 2016-08-30 | 2018-03-13 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108270878A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团江西有限公司 | 在vxlan中发送arp报文的方法、vtep设备 |
CN109257265A (zh) * | 2018-08-10 | 2019-01-22 | 锐捷网络股份有限公司 | 一种泛洪抑制方法、vxlan网桥、网关及系统 |
CN110048925A (zh) * | 2018-01-15 | 2019-07-23 | 厦门靠谱云股份有限公司 | 一种基于开源EVPN的IaaS OverLay控制平面实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2854377B1 (en) * | 2013-09-27 | 2016-07-13 | Alcatel Lucent | A method for centralized address resolution |
US10243916B2 (en) * | 2016-04-07 | 2019-03-26 | Cisco Technology, Inc. | Control plane based technique for handling multi-destination traffic in overlay networks |
-
2020
- 2020-04-20 CN CN202010311809.1A patent/CN113542441B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104335532A (zh) * | 2012-06-04 | 2015-02-04 | 瑞典爱立信有限公司 | 使用单独管理将vlan标记的分组路由到虚拟转发实例的远端地址 |
CN103200069A (zh) * | 2013-03-29 | 2013-07-10 | 华为技术有限公司 | 一种报文处理的方法和设备 |
CN106210157A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 抑制地址解析协议消息的方法与系统、控制器 |
CN106850379A (zh) * | 2015-12-04 | 2017-06-13 | 中国电信股份有限公司 | 用于实现子网互通的方法和系统 |
CN107770294A (zh) * | 2016-08-18 | 2018-03-06 | 中兴通讯股份有限公司 | Evpn 中ip 地址冲突的处理方法及装置 |
CN107800625A (zh) * | 2016-08-30 | 2018-03-13 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108270878A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团江西有限公司 | 在vxlan中发送arp报文的方法、vtep设备 |
CN110048925A (zh) * | 2018-01-15 | 2019-07-23 | 厦门靠谱云股份有限公司 | 一种基于开源EVPN的IaaS OverLay控制平面实现方法 |
CN109257265A (zh) * | 2018-08-10 | 2019-01-22 | 锐捷网络股份有限公司 | 一种泛洪抑制方法、vxlan网桥、网关及系统 |
Non-Patent Citations (1)
Title |
---|
基于大二层互连技术的数据中心网络设计与实现;严智;《电脑迷》;20180605(第06期);230 * |
Also Published As
Publication number | Publication date |
---|---|
CN113542441A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11374862B2 (en) | Packet sending and processing method and apparatus, PE node, and node | |
EP3863237B1 (en) | Packet forwarding method, packet transmission device, and packet reception device | |
CN109873760B (zh) | 处理路由的方法和装置、以及数据传输的方法和装置 | |
CN108574616B (zh) | 一种处理路由的方法、设备及系统 | |
US8782288B2 (en) | Multicast-enabled address resolution protocol (ME-ARP) | |
US20230155932A1 (en) | Multicast traffic transmission method and apparatus, communication node, and storage medium | |
US7716369B2 (en) | Data transmission system with a mechanism enabling any application to run transparently over a network address translation device | |
CN104579954B (zh) | 报文跨域转发方法、装置及通信设备 | |
WO2015165311A1 (zh) | 传输数据报文的方法和供应商边缘设备 | |
CN106572021B (zh) | 一种实现网络虚拟化叠加的方法与网络虚拟化边缘节点 | |
US20190319871A1 (en) | Multi-VRF Universal Device Internet Protocol Address for Fabric Edge Devices | |
CN115225568B (zh) | 对以太网虚拟私有网络—虚拟可扩展局域网的快速重路由 | |
US10454882B2 (en) | DHCP in layer-3 overlay with anycast address support and network address transparency | |
CN107135118B (zh) | 一种单播通信方法、网关以及vxlan接入设备 | |
CN113542441B (zh) | 一种通信处理方法及装置 | |
WO2001097485A2 (en) | Method for providing transparent public addressed networks within private networks | |
CN112929284A (zh) | 一种IPv6 VXLAN场景下的ND报文识别方法与系统 | |
WO2023082779A1 (zh) | 报文转发方法、电子设备及存储介质 | |
JP2024517717A (ja) | Pfcpセッション負荷分散装置 | |
CN112688887B (zh) | 一种隧道的配置方法和节点设备 | |
WO2023284675A1 (zh) | 转发表的查找方法及装置、存储介质及电子装置 | |
KR102280854B1 (ko) | Ip 모빌리티 지원 방법 및 ip 모빌리티 제공 시스템 | |
CN113347101B (zh) | 一种路由信息的发送控制方法、vtep及计算机可读存储介质 | |
WO2024001221A1 (zh) | 一种组播信息转发方法、装置、组播信息汇聚节点及介质 | |
US11902166B2 (en) | Policy based routing in extranet networks |
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 |