一种路由处理方法、网关设备及计算机存储介质与流程

文档序号:26590476发布日期:2021-09-10 20:45阅读:61来源:国知局
一种路由处理方法、网关设备及计算机存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种路由处理方法、网关设备及计算机存储介质。


背景技术:

2.为了提高网络的可靠性,大多数企业通常利用跨设备链路聚合组(multi-chassis link aggregation group,m-lag)机制在数据中心内部配置双活网关,其中,双活网关(active-active gateway)中的两台设备通过对等体链路(peer-link)进行连接,当peer-link出现故障时,网络中可能出现丢包或者路由环路问题。
3.现有技术通过将双活网关中m-lag状态为备的设备侧上行eth-trunk链路设置为error-down状态,使得internet发送给客户端的报文可以直接经由双活网关中m-lag状态为主的设备到达用户主机,从而解决了由于peer-link出现故障而导致的丢包或者路由环路问题。但是,当m-lag状态为备的设备上存在单归接入的客户端时,利用上述方法将导致单归接入的客户端无法正常进行业务访问,产生大量的业务损失。


技术实现要素:

4.为了解决上述问题,本技术实施例公开了一种路由处理方法、网关设备及计算机存储介质,能够有效地解决双活网关中peer-link出现故障而产生的丢包或者路由环路问题。
5.第一方面,本技术提供了一种路由处理方法,应用于虚拟扩展局域网(virtual extensible local area network,vxlan)中,所述vxlan网络包括第一双活网关,所述第一双活网关包括第一网关设备和第二网关设备,所述第一网关设备与所述第二网关设备之间包括peer-link,所述方法包括:
6.所述第一网关设备确定所述peer-link是否存在故障,其中,所述第一网关设备的vxlan隧道端点vtep网际互联协议(internet protocol,ip)地址是虚拟ip地址;
7.当所述第一网关设备确定所述peer-link存在故障,所述第一网关设备将从ip地址确定为所述第一网关设备的vtep ip地址;
8.所述第一网关设备发布路由更新消息,其中,所述路由更新消息包括目标路由,所述目标路由的下一跳地址为所述从ip地址,所述路由更新消息用于触发与所述第一网关设备通信的边界路由器根据所述目标路由刷新路由表项。
9.在一些可能的设计中,所述vxlan网络还包括第一路由反射器(route reflector,rr)和第一边界路由器,所述第一rr分别与所述第一双活网关、所述第一边界路由器组成基于边界网关协议的以太网虚拟专用网(border gateway protocol ethernet virtual private network,bgp evpn)邻居,所述第一边界路由器与所述第一双活网关之间通过第一vxlan隧道进行通信。
10.在一些可能的设计中,所述vxlan网络还包括第二双活网关、第二rr和第二边界路
由器,所述第一rr分别与所述第二双活网关、所述第二边界路由器组成bgp evpn邻居,所述第二rr分别与所述第一双活网关、所述第一边界路由器、所述第二双活网关以及所述第二边界路由器组成bgp evpn邻居;所述第一边界路由器与所述第二双活网关之间通过第二vxlan隧道进行通信,所述第二边界路由器与所述第一双活网关之间通过第三vxlan隧道进行通信,所述第二边界路由器与所述第二双活网关之间通过第四vxlan隧道进行通信,所述第一双活网关和所述第二双活网关之间通过第五vxlan隧道进行通信;当所述第一网关设备确定所述peer-link存在故障,所述路由更新消息还用于触发所述第二双活网关根据所述目标路由刷新路由表项。
11.在一些可能的设计中,所述第一网关设备为主设备,所述第二网关设备为备设备,当所述peer-link不存在故障时,所述方法还包括:所述第一网关设备接收第一客户端发送的第一数据包,其中,所述第一客户端双归接入所述第一双活网关,所述第一数据包的源ip地址为所述第一客户端的ip地址;所述第一网关设备通过所述第一vxlan隧道向所述第一边界路由器发送所述第一数据包;
12.当所述peer-link存在故障时,所述方法还包括:所述第一网关设备接收所述第一边界路由器根据第一路由表项发送的第二数据包,其中,所述第一路由表项为所述第一边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第一路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述从ip地址,所述第二数据包为所述第一数据包的响应数据包,所述第二数据包的目的ip地址为所述第一客户端的ip地址;所述第一网关设备将所述第二数据包发送给所述第一客户端。
13.在一些可能的设计中,当所述peer-link不存在故障时,所述方法还包括:所述第一网关设备接收第二客户端发送的第三数据包,其中,所述第二客户端单归接入所述第一网关设备,所述第三数据包的源ip地址为所述第二客户端的ip地址;所述第一网关设备通过所述第一vxlan隧道向所述第一边界路由器发送所述第三数据包;
14.当所述peer-link存在故障时,所述方法还包括:所述第一网关设备接收所述第一边界路由器根据第一路由表项发送的第四数据包,其中,所述第一路由表项为所述第一边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第一路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述从ip地址,所述第四数据包为所述第三数据包的响应数据包,所述第四数据包的目的ip地址为所述第二客户端的ip地址;所述第一网关设备将所述第四数据包发送给所述第二客户端。
15.在一些可能的设计中,所述第一网关设备为主设备,所述第二网关设备为备设备,当所述peer-link不存在故障时,所述方法还包括:所述第一网关设备接收第一客户端发送的第一数据包,其中,所述第一客户端双归接入所述第一双活网关,所述第一数据包的源ip地址为所述第一客户端的ip地址;所述第一网关设备通过所述第三vxlan隧道向所述第二边界路由器发送所述第一数据包;
16.当所述peer-link存在故障时,所述方法还包括:所述第一网关设备接收所述第二边界路由器根据第二路由表项发送的第二数据包,其中,所述第二路由表项为所述第二边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为
所述第一客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第二路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述从ip地址,所述第二数据包为所述第一数据包的响应数据包,所述第二数据包的目的ip地址为所述第一客户端的ip地址;所述第一网关设备将所述第二数据包发送给所述第一客户端。
17.在一些可能的设计中,当所述peer-link不存在故障时,所述方法还包括:所述第一网关设备接收第二客户端发送的第三数据包,其中,所述第二客户端单归接入所述第一网关设备,所述第三数据包的源ip地址为所述第二客户端的ip地址;所述第一网关设备通过所述第三vxlan隧道向所述第二边界路由器发送所述第三数据包;
18.当所述peer-link存在故障时,所述方法还包括:所述第一网关设备接收所述第二边界路由器根据第二路由表项发送的第四数据包,其中,所述第二路由表项为所述第二边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第二路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述从ip地址,所述第四数据包为所述第三数据包的响应数据包,所述第四数据包的目的ip地址为所述第二客户端的ip地址;所述第一网关设备将所述第四数据包发送给所述第二客户端。
19.可以看出,当第一网关设备与第二网关设备之间的peer-link不存在故障时,第一网关设备的vtep ip地址为虚拟ip地址;当第一网关设备与第二网关设备之间的peer-link存在故障时,第一网关设备的vtep ip地址为从地址。因此,当vxlan网络中仅包括第一双活网关时,利用上述方法使得第二数据包通过第一网关设备发送到第一客户端,第四数据包通过第一网关设备发送到第二客户端,从而避免了第二数据包和第四数据包在第二网关设备处丢包;当vxlan网络中包括两个或两个以上的双活网关(例如,第二双活网关)时,利用上述方法使得第二数据包通过第一网关设备发送到第一客户端,第四数据包通过第一网关设备发送到第二客户端,从而避免了第二数据包和第四数据包在网络中环路。
20.第二方面,本技术提供了一种第一网关设备,所述第一网关设备应用于vxlan网络中,所述vxlan网络包括第一双活网关,所述第一双活网关包括所述第一网关设备和第二网关设备,所述第一网关设备与所述第二网关设备之间包括对等体链路peer-link,所述第一网关设备包括:
21.判断单元,用于确定所述peer-link是否存在故障,其中,所述第一网关设备的vtep ip地址是虚拟ip地址;
22.刷新单元,用于当所述peer-link存在故障时,将从ip地址确定为所述第一网关设备的vtep ip地址,其中,所述从ip地址与所述虚拟ip地址不同;
23.发布单元,用于发布路由更新消息,其中,所述路由更新消息包括目标路由,所述目标路由的下一跳地址为所述从ip地址,所述路由更新消息用于触发与所述第一网关设备通信的边界路由器根据所述目标路由刷新路由表项。
24.在一些可能的设计中,所述vxlan网络还包括第一rr和第一边界路由器,所述第一rr分别与所述第一双活网关、所述第一边界路由器组成bgp evpn邻居,所述第一边界路由器与所述第一双活网关之间通过第一vxlan隧道进行通信。
25.在一些可能的设计中,所述vxlan网络还包括第二双活网关、第二rr和第二边界路由器,所述第一rr分别与所述第二双活网关、所述第二边界路由器组成bgp evpn邻居,所述
第二rr分别与所述第一双活网关、所述第一边界路由器、所述第二双活网关以及所述第二边界路由器组成bgp evpn邻居;所述第一边界路由器与所述第二双活网关之间通过第二vxlan隧道进行通信,所述第二边界路由器与所述第一双活网关之间通过第三vxlan隧道进行通信,所述第二边界路由器与所述第二双活网关之间通过第四vxlan隧道进行通信,所述第一双活网关和所述第二双活网关之间通过第五vxlan隧道进行通信;当所述第一网关设备确定所述peer-link存在故障,所述路由更新消息还用于触发所述第二双活网关根据所述目标路由刷新路由表项。
26.在一些可能的设计中,所述第一网关设备为主设备,所述第二网关设备为备设备,当所述peer-link不存在故障时,所述第一网关设备还包括:接收单元,用于接收所述第一客户端发送的第一数据包,其中,所述第一客户端双归接入所述第一双活网关,所述第一数据包的源ip地址为所述第一客户端的ip地址;发送单元,用于通过所述第一vxlan隧道向所述第一边界路由器发送所述第一数据包;
27.当所述peer-link存在故障时,所述接收单元还用于接收所述第一边界路由器根据第一路由表项发送的第二数据包,其中,所述第一路由表项为所述第一边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第一路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述从ip地址,所述第二数据包为所述第一数据包的响应数据包,所述第二数据包的目的ip地址为所述第一客户端的ip地址;所述发送单元还用于将所述第二数据包发送给所述第一客户端。
28.在一些可能的设计中,当所述peer-link不存在故障时,所述第一网关设备还包括:接收单元,用于接收第二客户端发送的第三数据包,其中,所述第二客户端单归接入所述第一网关设备,所述第三数据包的源ip地址为所述第二客户端的ip地址;发送单元,用于所述第一网关设备通过所述第一vxlan隧道向所述第一边界路由器发送所述第三数据包;
29.当所述peer-link存在故障时,所述接收单元还用于接收所述第一边界路由器根据第一路由表项发送的第四数据包,其中,所述第一路由表项为所述第一边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第一路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述从ip地址,所述第四数据包为所述第三数据包的响应数据包,所述第四数据包的目的ip地址为所述第二客户端的ip地址;所述发送单元还用于将所述第四数据包发送给所述第二客户端。
30.在一些可能的设计中,所述第一网关设备为主设备,所述第二网关设备为备设备,当所述peer-link不存在故障时,所述第一网关设备还包括:接收单元,用于接收第一客户端发送的第一数据包,其中,所述第一客户端双归接入所述第一双活网关,所述第一数据包的源ip地址为所述第一客户端的ip地址;发送单元,用于通过所述第三vxlan隧道向所述第二边界路由器发送所述第一数据包;
31.当所述peer-link存在故障时,所述接收单元还用于接收所述第二边界路由器根据第二路由表项发送的第二数据包,其中,所述第二路由表项为所述第二边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第一客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第二路由表项中目的ip地址为所述
第一客户端的ip地址对应的下一跳地址为所述从ip地址,所述第二数据包为所述第一数据包的响应数据包,所述第二数据包的目的ip地址为所述第一客户端的ip地址;所述发送单元还用于将所述第二数据包发送给所述第一客户端。
32.在一些可能的设计中,当所述peer-link不存在故障时,所述第一网关设备还包括:接收单元,用于接收第二客户端发送的第三数据包,其中,所述第二客户端单归接入所述第一网关设备,所述第三数据包的源ip地址为所述第二客户端的ip地址;发送单元,用于通过所述第三vxlan隧道向所述第二边界路由器发送所述第三数据包;
33.当所述peer-link存在故障时,所述接收单元还用于接收所述第二边界路由器根据第二路由表项发送的第四数据包,其中,所述第二路由表项为所述第二边界路由器根据所述目标路由刷新本地路由表项得到的,所述本地路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述虚拟ip地址,所述第二路由表项中目的ip地址为所述第二客户端的ip地址对应的下一跳地址为所述从ip地址,所述第四数据包为所述第三数据包的响应数据包,所述第四数据包的目的ip地址为所述第二客户端的ip地址;所述发送单元还用于将所述第四数据包发送给所述第二客户端。
34.可以看出,当第一网关设备与第二网关设备之间的peer-link存在故障时,第一网关设备将其vtep ip地址从虚拟ip地址更改为从ip地址,从而使得接入第一双活网关的客户端能够接收到其他网络设备发送的数据包,同时也避免了vxlan网络中由于第一网关设备与第二网关设备之间的peer-link故障而出现的丢包或者路由环路问题。
35.第三方面,本技术提供了一种网关设备,包括处理器、通信接口和存储器,通信接口在处理器的控制下与其他设备进行通信,处理器执行存储器中的代码以实现第一方面涉及的任一项所述的方法。
36.第四方面,本技术提供了一种计算机存储介质,存储有计算机程序,所述计算机程序被硬件执行以实现第一方面涉及的任一项所述的方法。
附图说明
37.图1示出了本技术提供的一种分布式vxlan网络的结构示意图;
38.图2示出了本技术提供的一种可能的数据包转发路径的示意图;
39.图3示出了本技术提供的一种可能的数据包转发路径的示意图;
40.图4示出了本技术提供的一种可能的数据包转发路径的示意图;
41.图5示出了本技术提供的一种可能的数据包转发路径的示意图;
42.图6示出了本技术提供的另一种分布vxlan网络的结构示意图;
43.图7示出了本技术提供的一种可能的数据包转发路径的示意图;
44.图8示出了本技术提供的一种可能的数据包转发路径的示意图;
45.图9示出了本技术提供的一种可能的数据包转发路径的示意图;
46.图10示出了本技术提供的一种可能的数据包转发路径的示意图;
47.图11示出了本技术提供的一种可能的数据包转发路径的示意图;
48.图12示出了本技术提供的一种可能的数据包转发路径的示意图;
49.图13示出了本技术提供的一种可能的数据包转发路径的示意图;
50.图14示出了本技术提供的一种可能的数据包转发路径的示意图;
51.图15示出了本技术提供的一种可能的数据包转发路径的示意图;
52.图16示出了本技术提供的一种路由处理方法的流程示意图;
53.图17示出了本技术提供的一种第一网关设备的结构示意图;
54.图18示出了本技术提供的另一种第一网关设备的结构示意图。
具体实施方式
55.请参见图1,图1示出了本技术实施例涉及的一个具体应用场景,即分布式vxlan网络,该分布式vxlan网络应用于数据中心网络中。分布式vxlan网络中包括边界叶(border leaf)节点、脊(spine)节点、服务器叶(server leaf)节点以及客户端。其中,边界叶节点可以作为数据中心网络的边缘节点,脊节点可以作为数据中心网络的汇聚节点,服务器叶节点可以作为数据中心网络的数据中心交换机。以图1为例,边界叶节点可以是第一边界叶节点border leaf1,脊节点可以是第一脊节点spine1,服务器叶节点可以是第一服务器叶节点server leaf1,客户端包括第一客户端pc1、第二客户端pc2以及第三客户端pc3。其中,服务器叶节点在本技术中也可以被称作双活网关,因此第一服务器叶节点server leaf1可以被称为第一双活网关。第一双活网关server leaf1包括设备a与设备b,第一双活网关server leaf1既可以作为二层网关,也可以作为三层网关。具体的,第一客户端pc1双归接入第一双活网关中的设备a以及设备b,第二客户端pc2单归接入第一双活网关server leaf1中的设备a,第三客户端pc3单归接入第一双活网关server leaf1中的设备b。第一双活网关server leaf1连接第一脊节点spine1,第一脊节点spine1连接第一边界叶节点border leaf1,第一边界叶节点border leaf1接入ip网络。
56.在一可能的实施例中,第一脊节点spine1分别与第一双活网关server leaf1、第一边界叶节点border leaf1之间建立bgp evpn邻居。具体的,分别将第一脊节点spine1与第一双活网关server leaf1、第一脊节点spine1与第一边界叶节点border leaf1部署为内部边界网关协议(internal border gateway protocol,ibgp)对等体,其中,第一脊节点spine1作为rr,可以用于接收第一双活网关server leaf1发送的evpn路由,并将其反射给第一边界叶节点border leaf1,还可以用于接收第一边界叶节点border leaf1发送的evpn路由,并将其反射给第一双活网关server leaf1。
57.需要说明的,第一脊节点spine1与第一双活网关server leaf1之间可以部署为ibgp对等体,也可以部署为外部边界网关协议(external border gateway protocol,ebgp)对等体,此处不作具体限定。第一脊节点spine1与第一边界叶节点border leaf1之间可以部署为ibgp对等体,也可以均部署为ebgp对等体,此处不作具体限定。应理解,若将第一脊节点spine1与第一双活网关server leaf1以及第一脊节点spine1与第一边界叶节点border leaf1之间均部署为ibgp对等体,则需要部署rr,rr可以部署在第一脊节点,也可以部署在第一双活网关、第一边界叶节点或者其他设备等等,此处不作具体限定;若将第一脊节点spine1与第一双活网关server leaf1以及第一脊节点spine1与第一边界叶节点border leaf1之间均部署为ebgp对等体,则不需要部署rr。
58.在本技术具体的实施例中,第一边界叶节点border leaf1和第一双活网关server leaf1均作为vxlan隧道端点(vxlan tunnel endpoints,vtep),并且第一边界叶节点border leaf1与第一双活网关server leaf1之间建立了第一vxlan隧道。其中,第一边界叶
节点border leaf1和第一双活网关server leaf1之间通过传递evpn路由动态建立第一vxlan隧道。下面以第一客户端pc1访问ip网络为例,详细介绍第一vxlan隧道的建立过程:
59.步骤一,第一客户端pc1向第一双活网关server leaf1发送第一地址解析协议(address resolution protocol,arp)报文。
60.步骤二,第一双活网关server leaf1根据第一arp报文,学习到第一客户端pc1的arp表项。同时,第一双活网关server leaf1在接收到第一arp报文之后,还获取到第一客户端pc1所属的二层桥接域(bridge domain,bd)。
61.其中,第一客户端pc1的arp表项反映了第一客户端pc1的ip地址与第一客户端pc1的mac地址之间的对应关系。
62.步骤三,第一双活网关server leaf1的evpn组件基于三层网关接口收集第一客户端pc1的主机信息,从而生成第一evpn路由。
63.首先,第一双活网关server leaf1根据二层bd,获得对应的二层vxlan网络标识(vxlan network identifier,vni)、三层网关接口、三层虚拟专用网络(virtual private network,vpn)以及三层vni。其中,三层网关接口是基于二层bd创建的三层逻辑接口,且三层vpn配置在三层网关接口下,三层vni用于标识三层vpn。
64.其次,第一双活网关server leaf1的evpn组件根据学习到的第一客户端pc1的arp表项、二层vni以及三层vni,生成集成路由与桥接(integrated routing and bridging,irb)类型路由。其中,irb类型路由携带有第一客户端pc1的mac地址、第一客户端pc1的ip地址、二层vni以及三层vni。
65.然后,第一双活网关server leaf1的evpn组件从irb类型路由中获取第一客户端pc1的ip地址和三层vni,并发送给三层vpn,从而在三层vpn的路由表中保存第一路由,其中,第一路由包括目的地址(第一客户端pc1的ip地址)、三层vni以及下一跳(在三层网关接口下配置的三层网关的ip地址)。
66.最后,第一双活网关server leaf1的evpn组件根据上述信息生成第一evpn路由。其中,第一evpn路由携带有出方向路由目标(export route target,ert)、下一跳(第一双活网关server leaf1的ip地址)以及irb类型路由。
67.步骤四,第一双活网关server leaf1的evpn组件将第一evpn路由发送给第一边界叶节点border leaf1。
68.具体的,第一双活网关server leaf1先将第一evpn路由分别发送给第一脊节点spine1和第二脊节点spine2,然后再由第一脊节点spine1和第二脊节点spine2将第一evpn路由反射给第一边界叶节点border leaf1。
69.步骤五,第一边界叶节点border leaf1接收第一evpn路由,并根据第一evpn路由中携带的下一跳,得到第一双活网关server leaf1的ip地址,从而建立由第一边界叶节点border leaf1到第一双活网关server leaf1的vxlan隧道。同时,第一边界叶节点border leaf还根据第一evpn路由在其路由表中保存了第二路由。
70.具体的,在第一边界叶节点border leaf1接收到第一evpn路由之后,首先检查第一evpn路由中携带的ert是否与本地vpn中配置的入方向路由目标(import route target,irt)相匹配,若ert与irt匹配,则第一边界叶节点border leaf1将根据第一evpn路由得到第一双活网关server leaf1的ip地址,从而建立由第一边界叶节点border leaf1到第一双
活网关server leaf1的vxlan隧道;同时第一边界叶节点还获取到第一客户端pc1的ip地址以及三层vni,从而在其路由表中保存第二路由,其中,第二路由包括目的ip地址(第一客户端pc1的ip地址)、下一跳(第一双活网关server leaf1的ip地址)以及三层vni。
71.为了简便陈述,上述步骤一至步骤五只介绍了从第一边界叶节点border leaf1建立到第一双活网关server leaf1的vxlan隧道的过程,应理解,从第一双活网关server leaf1建立到第一边界叶节点server leaf1的vxlan隧道的过程与从第一边界叶节点border leaf1建立到第一双活网关server leaf1的vxlan隧道的过程类似,此处不再展开赘述。当从第一双活网关server leaf1建立到第一边界叶节点server leaf1的vxlan隧道以及从第一边界叶节点border leaf1建立到第一双活网关server leaf1的vxlan隧道均建立完成之后,第一vxlan隧道建立完成。另外,还可以通过人工建立第一vxlan隧道,或者通过传递其他类型的bgp evpn路由(如,ip前缀路由)动态建立第一vxlan隧道,此处不作具体限定。
72.需要说明的,从步骤五可以看出,在第一vxlan隧道的建立过程中,第一边界叶节点border leaf1还通过第一evpn路由得到第二路由,即第一客户端pc1的路由表项。类似的,第一边界叶节点border leaf1还可以通过第一vxlan隧道学习到第二客户端pc2的路由表项以及第三客户端pc3的路由表项。其中,第一客户端pc1的路由表项用于指示目的ip地址为第一客户端pc1的ip地址的下一跳以及出接口等信息,第二客户端pc2的路由表项用于指示目的ip地址为第二客户端pc2的ip地址的下一跳以及出接口等信息,第三客户端pc3的路由表项用于指示目的ip地址为第三客户端pc3的ip地址的下一跳以及出接口等信息。
73.在本技术具体的实施例中,第一双活网关server leaf1的ip地址为ip1,第一双活网关server leaf1中的设备a与设备b通过m-lag进行配置,从而将设备a与设备b虚拟为一台设备,因此设备a的ip地址和设备b的ip地址均为ip1。其中,将设备a的第一接口和设备b的第二接口均配置为peer-link接口,使得设备a与设备b之间通过peer-link连接。
74.在一更具体的实施例中,设备a与设备b之间通过peer-link进行m-lag协商报文的交互,从而确定设备a与设备b的m-lag状态。假设,设备a为m-lag状态为备的设备(以下简称为备设备),设备b为m-lag状态为主的设备(以下简称为主设备)。当设备a与设备b之间的peer-link不存在故障时,设备a侧的下行eth-trunk链路状态为up,且设备b侧的下行eth-trunk链路的状态为up;当设备a与设备b之间的peer-link存在故障时,设备a侧的下行eth-trunk链路状态变为down,而设备b侧的下行eth-trunk链路的状态仍为up。其中,设备a侧的下行eth-trunk链路为设备a与第一客户端pc1之间的eth-trunk链路,设备b侧的下行eth-trunk链路为设备b与第一客户端pc1之间的eth-trunk链路。因此,当设备a与设备b之间的peer-link不存在故障时,设备a与设备b均可以接收到第一客户端pc1发送的arp报文,从而生成第一客户端的路由表项;当设备a与设备b之间的peer-link存在故障时,设备b仍可以接收到第一客户端pc1发送的arp报文,从而生成第一客户端的路由表项,而设备a无法接收到第一客户端pc1发送的arp报文,并且设备a也无法接收到设备b通过peer-link发送的m-lag同步报文,从而无法生成第一客户端的路由表项。
75.应理解,设备a与设备b之间的peer-link出现故障的原因可能是物理链路出现故障,也可能是第一接口和/或第二接口的配置错误等等,此处不作具体限定。
76.在本技术具体的实施例中,第一客户端pc1、第二客户端pc2以及第三客户端pc3可
以处于同一网段,也可以处于不同网段中,还可以是第一客户端pc1和第二客户端pc2处于同一网段,第三客户端pc3在另一个网段等等,此处不作具体限定。
77.应理解,图1示出的网络架构及其实施例仅用于进行举例,在实际应用中,分布式vxlan网络中还可以包括更多的边界叶节点、脊节点、叶节点、客户端或者其他网络设备,此处不作具体限定。边界叶节点、脊节点以及叶节点上部署的设备可以是图1示出的交换机,也可以是虚拟化集群中的宿主机,还可以是其他网络设备,此处不作具体限定。
78.基于图1示出的分布式vxlan网络及其相关描述,当ip网络向接入到第一双活网关server leaf1的客户端发送数据包时,若设备a与设备b之间的peer-link不存在故障,则数据包将先后经由第一边界叶节点border leaf1、第一脊节点spine1以及第一双活网关server leaf1,最后到达客户端;若设备a与设备b之间的peer-link存在故障,则数据包可能无法到达该客户端。其中,客户端可以是双归接入第一双活网关server leaf1的客户端(如,第一客户端pc1),也可以是单归接入设备a的客户端(如,第二客户端pc2),还可以是单归接入设备b的客户端(如,第三客户端pc3)。具体原因如下,
79.在设备a与设备b之间的peer-link不存在故障的情况下,以第一客户端pc1为例,说明ip网络发送给第一客户端pc1的数据包p1的转发路径,具体请参见图2。
80.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p1,其中,数据包p1的目的ip地址为第一客户端pc1的ip地址。
81.步骤二,第一边界叶节点border leaf1在接收到数据包p1之后,对数据包p1进行vxlan封装,从而得到数据包p1

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p1


82.在本技术具体的实施例中,第一边界叶节点border leaf1在接收到数据包p1之后,首先根据数据包p1确定与ip网络相连的三层vpn,从而得到第一边界叶节点border leaf1的路由表。然后,第一边界叶节点border leaf1根据数据包p1的目的ip地址以及第一边界叶节点border leaf1的路由表得到第二路由,从而获取三层vni以及下一跳,其中,下一跳为第一双活网关server leaf1的ip地址(ip1)。之后,第一边界叶节点border leaf1在数据包p1的外层依次添加vxlan头、udp头、外层ip头以及外层mac头,从而得到数据包p1

,其中,vxlan头中携带了三层vni,外层ip头中源ip地址为第一边界叶节点border leaf1的ip地址,目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层mac头中目的mac地址为第一双活网关server leaf1的mac地址,源mac地址为第一边界叶节点border leaf1的mac地址。最后,第一边界叶节点border leaf1根据下一跳将数据包p1

发送给第一双活网关server leaf1。
83.应理解,第一边界叶节点通常与ip网络或者外网设备直接相连,因此在配置第一边界叶节点时,可以不进行二层bd的配置,而直接配置三层vpn,也就是说,当第一边界叶节点border leaf1接收到数据包p1后,可以根据数据包p1确定与ip网络相连的三层vpn,从而得到第二路由。
84.在本技术具体的实施例中,第一边界叶节点border leaf1先将数据包p1

发送给第一脊节点spine1,然后再由第一脊节点spine1将数据包p1

转发到第一双活网关server leaf1。这是因为:路由必须有直连的下一跳才能够指导转发,而对于第一边界叶节点border leaf1来说,第一双活网关server leaf1的ip地址(ip1)不是直连的下一跳,因此需
要通过路由迭代的方式先将数据包p1

发送到第一脊节点spine1,然后再由第一脊节点spine1将数据包p1

转发到第一双活网关server leaf1。应理解,由于第一脊节点spine1为rr,因此第一脊节点spine1接收到数据包p1

之后,不对数据包p1

进行解封装或者封装,而是直接将数据包p1

转发给第一双活网关server leaf1。
85.步骤三,第一双活网关server leaf1接收到数据包p1

之后,对数据包p1

进行解封装,从而得到数据包p1,然后向第一客户端pc1发送数据包p1。
86.在本技术具体的实施例中,第一双活网关server leaf1接收到数据包p1

之后,首先对第二数据包进行解封装,从而得到三层vni和数据包p1,并根据三层vni查找到第一双活网关server leaf1中的三层vpn,得到第一双活网关server leaf1的路由表,从而得到第一路由;然后根据第一路由将数据包p1转发给第一客户端pc1。
87.需要说明的,在设备a与设备b之间的peer-link不存在故障的情况下,数据包p1

可能发送给设备a,也可能发送给设备b,也就是说,数据包p1可能经由第一边界叶节点border leaf1、第一脊节点spine1以及设备a发送给第一客户端,也可能经由第一边界叶节点、第二脊节点以及设备b发送给第一客户端,此处不作具体限定。
88.为了简便陈述,上述实施例仅介绍了在设备a与设备b之间的peer-link不存在故障的情况下,由ip网络发送给第一客户端pc1的数据包p1的转发路径。在实际应用场景下,由ip网络发送给第二客户端pc2的数据包p2的转发路径以及由ip网络发送给第三客户端pc3的数据包p3的转发路径与数据包p1的转发路径类似,此处不再展开赘述。应理解,设备a和设备b均可能接收到数据包,当设备a接收到数据包p1时,设备a将直接把数据包发送给第一客户端pc1;当设备b接收到数据包p1时,设备b将直接把数据包发送给第一客户端pc1。当设备a接收到数据包p2时,设备a将直接把数据包发送给第二客户端pc2;当设备b接收到数据包p2时,设备b将通过设备a与设备b之间的peer-link将数据包p2发送给设备a,再由设备a将数据包p2发送给第二客户端pc2。当设备b接收到数据包p3时,设备b将直接把数据包发送给第三客户端pc3;当设备a接收到数据包p3时,设备a将通过设备a与设备b之间的peer-link将数据包p3发送给设备b,再由设备b将数据包p3发送给第三客户端pc3。
89.在设备a与设备b之间的peer-link存在故障的情况下,可分为以下三种情况:
90.(1)客户端为双归接入第一双活网关server leaf1的客户端,如第一客户端pc1。那么,ip网络发送给第一客户端pc1的数据包p1可能在设备a处丢包,数据包p1的转发路径如图3所示。
91.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p1,其中,数据包p1的目的ip地址为第一客户端pc1的ip地址。
92.步骤二,第一边界叶节点border leaf1在接收到数据包p1之后,对数据包p1进行vxlan封装,从而得到数据包p1

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p1


93.应理解,在设备a与设备b之间的peer-link存在故障的情况下,第一边界叶节点border leaf1封装数据包p1的过程以及第一边界叶节点border leaf1向第一双活网关server leaf1发送数据包p1

的过程与在设备a与设备b之间的peer-link不存在故障的情况下,第一边界叶节点border leaf1封装数据包p1的过程以及第一边界叶节点border leaf1向第一双活网关server leaf1发送数据包p1

的过程相同,此处不再展开赘述。
94.步骤三,若设备a接收数据包p1

,则设备a首先对数据包p1

进行解封装,得到三层vni和数据包p1;然后根据三层vni确定设备a中的三层vpn,从而得到设备a的路由表。由于设备a与设备b之间的peer-link存在故障,因此设备a的路由表中未保存第一客户端pc1的路由表项,也就是说,根据数据包p1的目的ip地址以及设备a的路由表,将无法获取第一客户端pc1的路由表项。此时,设备a将丢弃数据包p1

,那么第一客户端pc1将无法接收到数据包p1。
95.若设备b接收到数据包p1

,则设备b首先对数据包p1

进行解封装,从而得到三层vni和数据包p1,然后根据三层vni得到设备b中的三层vpn,从而得到设备b的路由表;然后根据数据包p1的目的地址以及设备b的路由表,将数据包p1发送给第一客户端pc1。
96.(2)客户端为单归接入设备a的客户端,如第二客户端pc2。那么,ip网络发送给第二客户端pc2的数据包p2可能在设备b处丢包,数据包p2的转发路径如图4所示。
97.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p2,其中,数据包p2的目的ip地址为第二客户端pc2的ip地址。
98.步骤二,第一边界叶节点border leaf1在接收到数据包p2之后,对数据包p2进行vxlan封装,从而得到数据包p2

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p2

p2


99.在本技术具体的实施例中,第一边界叶节点border leaf1在接收到数据包p2之后,首先根据数据包p2确定与ip网络相连的三层vpn,从而得到第一边界叶节点border leaf1的路由表。然后,第一边界叶节点border leaf1根据数据包p2的目的ip地址以及第一边界叶节点border leaf1的路由表,得到三层vni以及下一跳,其中,下一跳为第一双活网关server leaf1的ip地址(ip1)。之后,第一边界叶节点border leaf1对数据包p2进行vxlan封装,得到数据包p2

,其中,数据包p2

的外层源ip地址为第一边界叶节点border leaf1的ip地址,外层目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层源mac地址为第一边界叶节点border leaf1的mac地址,外层目的mac地址为第一双活网关server leaf1的mac地址。最后,第一边界叶节点border leaf1根据下一跳将数据包p2

发送给第一双活网关server leaf1。
100.在本技术具体的实施例中,第一边界叶节点border leaf1先将数据包p2

发送给第一脊节点spine1,然后再由第一脊节点spine1将数据包p2

转发到第一双活网关server leaf1。
101.步骤三,若设备b接收到数据包p2

,则设备b首先对数据包p2

进行解封装,得到三层vni和数据包p2;然后根据三层vni确定设备b中的三层vpn,从而得到设备b的路由表。由于设备a与设备b之间的peer-link存在故障,因此设备b的路由表中未保存第二客户端pc2的路由表项,也就是说,根据数据包p2的目的ip地址以及设备b的路由表,将无法获取第二客户端pc2的路由表项。此时,设备b将丢弃数据包p2

,那么第二客户端pc2将无法接收到数据包p2。
102.若设备a接收到数据包p2

,则设备a首先对数据包p2

进行解封装,从而得到三层vni和数据包p2,然后根据三层vni得到设备a中的三层vpn,从而得到设备a的路由表;然后根据数据包p2的目的地址以及设备a的路由表,将数据包p2发送给第二客户端pc2。
103.(3)客户端为单归接入设备b的客户端,如第三客户端pc3。那么,ip网络发送给第
三客户端pc3的数据包p3可能在设备a处丢包,数据包p3的转发路径如图5所示。
104.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p3,其中,数据包p3的目的ip地址为第三客户端pc3的ip地址。
105.步骤二,第一边界叶节点border leaf1在接收到数据包p3之后,对数据包p3进行vxlan封装,从而得到数据包p3

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p3


106.在本技术具体的实施例中,第一边界叶节点border leaf1在接收到数据包p3之后,首先根据数据包p3确定与ip网络相连的三层vpn,从而得到第一边界叶节点border leaf1的路由表。然后,第一边界叶节点border leaf1根据数据包p3的目的ip地址以及第一边界叶节点border leaf1的路由表,得到三层vni以及下一跳,其中,下一跳为第一双活网关server leaf1的ip地址(ip1)。之后,第一边界叶节点border leaf1对数据包p3进行vxlan封装,得到数据包p3

,其中,数据包p3

的外层源ip地址为第一边界叶节点border leaf1的ip地址,外层目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层源mac地址为第一边界叶节点border leaf1的mac地址,外层目的mac地址为第一双活网关server leaf1的mac地址。最后,第一边界叶节点border leaf1根据下一跳将数据包p3

发送给第一双活网关server leaf1。
107.在本技术具体的实施例中,第一边界叶节点border leaf1先将数据包p3

发送给第一脊节点spine1,然后再由第一脊节点spine1将数据包p3

转发到第一双活网关server leaf1。
108.步骤三,若设备a接收到数据包p3

,则设备a首先对数据包p3

进行解封装,得到三层vni和数据包p3;然后根据三层vni确定设备a中的三层vpn,从而得到设备a的路由表。由于设备a与设备b之间的peer-link存在故障,因此设备a的路由表中未保存第三客户端pc3的路由表项,也就是说,根据数据包p3的目的ip地址以及设备a的路由表,将无法获取第三客户端pc3的路由表项。此时,设备a将丢弃数据包p3

,那么第三客户端将无法接收到数据包p3。
109.若设备b接收到数据包p3

,则设备b首先对数据包p3

进行解封装,从而得到三层vni和数据包p3,然后根据三层vni得到设备b中的三层vpn,从而得到设备b的路由表;然后根据数据包p3的目的地址以及设备b的路由表,将数据包p3发送给第三客户端pc3。
110.应理解,路由必须有直连的下一跳才能够指导转发,而对于第一边界叶节点border leaf1来说,第一双活网关server leaf1的ip地址(ip1)不是直连的下一跳,因此当第一边界叶节点border leaf1向第一双活网关server leaf1发送数据包(如,数据包p1

、数据包p2

以及数据包p3

)时,需要通过路由迭代的方式先将数据包发送到第一脊节点spine1,然后再由第一脊节点spine1将数据包转发到第一双活网关server leaf1。还应理解,由于第一脊节点spine1为rr,因此第一脊节点spine1接收到数据包之后,不对数据包进行解封装或者封装,而是直接将数据包转发给第一双活网关server leaf1。
111.因此,当设备a与设备b之间的peer-link存在故障时,图1示出的分布式vxlan网络中可能发生丢包现象(如图3至图5所示),此时接入第一双活网关server leaf1的客户端将无法接收到ip网络发送的数据包。
112.基于图1示出的应用场景及其实施例,图6示出了本技术实施例涉及的另一个具体
应用场景。图6示出的分布式vxlan网络也可以应用于数据中心网络,以图6为例,边界叶节点包括第一边界叶节点border leaf1和第二边界叶节点border leaf2,脊节点包括第一脊节点spine1和第二脊节点spine2,服务器叶节点包括第一服务器叶节点server leaf1和第二服务器叶节点server leaf2,客户端包括第一客户端pc1、第二客户端pc2以及第三客户端pc3。其中,第一服务器叶节点server leaf1可以被称为第一双活网关server leaf1,第二服务器叶节点server leaf2可以被称为第二双活网关server leaf2。第一双活网关server leaf1包括设备a与设备b,第二双活网关server leaf2包括设备c和设备d,设备c和设备d通过m-lag进行配置,从而将设备c与设备d虚拟为一台设备,因此设备c的ip地址和设备d的ip地址相同。第一双活网关和第二双活网关server leaf2既可以作为二层网关,也可以作为三层网关。具体的,第一客户端pc1双归接入第一双活网关中的设备a以及设备b,第二客户端pc2单归接入第一双活网关server leaf1中的设备a,第三客户端pc3单归接入第一双活网关server leaf1中的设备b。第一双活网关server leaf1分别连接第一脊节点spine1和第二脊节点spine2,第二双活网关server leaf2分别连接第一脊节点spine1和第二脊节点spine2,第一脊节点spine1分别连接第一边界叶节点border leaf1和第二边界叶节点border leaf2,第二脊节点spine2分别连接第一边界叶节点border leaf1和第二边界叶节点border leaf2。第一边界叶节点border leaf1和第二边界叶节点border leaf2均接入ip网络。
113.在一可能的实施例中,第一脊节点spine1分别与第一双活网关server leaf1、第二双活网关server leaf2、第一边界叶节点border leaf1以及第二边界叶节点border leaf2之间建立bgp evpn邻居;第二脊节点spine2节点分别与第一双活网关server leaf1、第二双活网关server leaf2、第一边界叶节点border leaf1以及第二边界叶节点border leaf2之间建立bgp evpn邻居。具体的,分别将第一脊节点spine1与第一双活网关server leaf1、第一脊节点spine1与第二双活网关server leaf2、第一脊节点spine1与第一边界叶节点border leaf1、第一脊节点spine1与第二边界叶节点border leaf2、第二脊节点spine2与第一双活网关server leaf1、第二脊节点spine2与第二双活网关server leaf2、第二脊节点spine2与第一边界叶节点border leaf1、第二脊节点spine2与第二边界叶节点border leaf2部署为ibgp对等体,其中,第一脊节点spine1作为rr,用于接收第一脊节点spine1的ibgp对等体发送的evpn路由,并将接收到的evpn路由反射给第一脊节点spine1的其他ibgp对等体;第二脊节点spine2作为rr,用于接收第一脊节点spine1的ibgp对等体发送的evpn路由,并接收到的evpn路由反射给第二脊节点spine1的其他ibgp对等体。
114.需要说明的,第一脊节点spine1与第一双活网关server leaf1、第一脊节点spine1与第二双活网关server leaf2、第一脊节点spine1与第一边界叶节点border leaf1、第一脊节点spine1与第二边界叶节点border leaf2、第二脊节点spine2与第一双活网关server leaf1、第二脊节点spine2与第二双活网关server leaf2、第二脊节点spine2与第一边界叶节点border leaf1、第二脊节点spine2与第二边界叶节点border leaf2可以均部署为ibgp对等体,也可以均部署为ebgp对等体,还可以一部分部署为ibgp对等体,一部分部署为ebgp对等体等等,此处不作具体限定。应理解,若将上述bgp evpn邻居均部署为ibgp对等体,则需要部署rr,rr可以部署在第一脊节点和第二脊节点,也可以部署在第一双活网关、第二双活网关、第一边界叶节点、第二边界叶节点或者其他设备等等,此处不作具
体限定;若将上述bgp evpn邻居均部署为egbp对等体,则不需要部署rr。
115.在本技术具体的实施例中,第一边界叶节点border leaf1、第二边界叶节点border leaf2、第一双活网关server leaf1以及第二双活网关server leaf2均作为vtep,其中,第一边界叶节点border leaf1与第一双活网关server leaf1之间建立了第一vxlan隧道,第一边界叶节点border leaf1与第二双活网关server leaf2之间建立了第二vxlan隧道,第二边界叶节点border leaf2与第一双活网关server leaf1之间建立了第三vxlan隧道,第二边界叶节点border leaf2与第二双活网关server leaf2之间建立了第四vxlan隧道,第一双活网关server leaf1与第二双活网关server leaf2之间建立了第五vxlan隧道。
116.应理解,图6中的第一vxlan隧道、第二vxlan隧道、第三vxlan隧道、第四vxlan隧道以及第五vxlan隧道的建立过程与图1中的第一vxlan隧道的建立过程类似,此处不再展开赘述。还应理解,在上述vxlan隧道的建立过程中,第一边界叶节点border leaf1将学习到第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项,第二边界叶节点border leaf2将学习到第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项,第二双活网关server leaf2将学习到第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项。
117.在本技术具体的实施例中,第一双活网关server leaf1的缺省路由中的下一跳为第二双活网关server leaf2的ip地址,也就是说,设备a的缺省路由中下一跳为设备c或者设备d,设备b的缺省路由中下一跳为设备c或者设备d。
118.应理解,图6示出的网络架构及其实施例仅用于进行举例,在实际应用中,分布式vxlan网络中还可以包括更多的边界叶节点、脊节点、叶节点、客户端或者其他网络设备,此处不作具体限定。边界叶节点、脊节点以及叶节点上部署的设备可以是图6示出的交换机,也可以是虚拟化集群中的宿主机,还可以是其他网络设备,此处不作具体限定。
119.基于图6示出的分布式vxlan网络及其相关描述,当ip网络向接入到第一双活网关server leaf1的客户端发送数据包时,若设备a与设备b之间的peer-link不存在故障,则数据包可能先后经由第一边界叶节点border leaf1、第一脊节点spine1以及第一双活网关server leaf1,最后到达该客户端;若设备a与设备b之间的peer-link存在故障,则数据包可能由于路由环路而无法到达客户端,其中,客户端可以是双归接入第一双活网关server leaf1的客户端(如,第一客户端pc1),也可以是单归接入设备a的客户端(如,第二客户端pc2),还可以是单归接入设备b的客户端(如,第三客户端pc3)。具体原因如下,
120.在设备a与设备b之间的peer-link不存在故障的情况下,ip网络发送给第一客户端pc1的数据包p1可能经由第一边界叶节点border leaf1、第一脊节点spine1以及第一双活网关server leaf1发送给第一客户端pc1(如图2所示),也可能经由第一边界叶节点、第二脊节点以及第一双活网关发送给第一客户端,还可能经由第二边界叶节点、第一脊节点以及第一双活网关发送给第一客户端,还可能经由第二边界叶节点、第二脊节点以及第一双活网关发送给第一客户端等等,此处不作具体限定。
121.为了简便陈述,上述实施例并没有对在设备a与设备b之间的peer-link不存在故障的情况下,ip网络向第一客户端pc1发送数据包p1的具体过程展开描述,也没有对在设备a与设备b之间的peer-link不存在故障的情况下,ip网络向第一客户端pc2发送数据包p2的
具体过程展开描述,还没有对在设备a与设备b之间的peer-link不存在故障的情况下,ip网络向第三客户端pc3发送数据包p3的具体过程展开描述,具体请参见图2及其相关介绍。
122.在设备a与设备b之间的peer-link存在故障的情况下,可分为以下三种情况:
123.(1)客户端为双归接入第一双活网关server leaf1的客户端,那么,ip网络发送给第一客户端pc1的数据包p1可能由于路由环路而无法到达第一客户端pc1,数据包p1的转发路径如图7所示。
124.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p1,其中,数据包p1的目的ip地址为第一客户端pc1的ip地址。
125.步骤二,第一边界叶节点border leaf1在接收到数据包p1之后,对数据包p1进行vxlan封装,从而得到数据包p1

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p1


126.步骤三,若设备a接收数据包p1

,则设备a首先对数据包p1

进行解封装,得到三层vni和数据包p1;然后根据三层vni确定设备a中的三层vpn,从而得到设备a的路由表。由于设备a与设备b之间的peer-link出现故障,因此设备a的路由表中未保存第一客户端pc1的路由表项,也就是说,根据数据包p1的目的ip地址以及设备a的路由表,将无法获取第一客户端pc1的路由表项。此时,设备a将根据缺省路由,先将数据包p1进行vxlan封装,得到数据包p1

,然后将数据包p1

通过第五vxlan隧道发送至第二双活网关server leaf2,其中,数据包p1

的外层源ip地址为第一双活网关server leaf1的ip地址,外层目的ip地址为第二双活网关server leaf2的ip地址,外层源mac地址为第一双活网关server leaf1的mac地址,外层mac地址为第二双活网关server leaf2的mac地址。第二双活网关server leaf2在接收到数据包p1

之后,首先对数据包p1

进行解封装,得到三层vni1以及数据包p1,然后根据三层vni得到第二双活网关server leaf2中的三层vpn,从而得到第二双活网关server leaf2的路由表;之后,根据数据包p1的目的ip地址以及第二双活网关server leaf2的路由表,确定下一跳为第一双活网关的ip地址;然后,第二双活网关server leaf2对数据包p1重新进行封装,得到数据包p1
″′
,并将数据包p1
″′
通过第五vxlan隧道发送给第一双活网关,其中,数据包p1
″′
的外层源ip地址为第二双活网关server leaf2的ip地址,外层目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层源mac地址为第二双活网关server leaf2的mac地址,外层mac地址为第一双活网关server leaf1的mac地址。由于设备a的ip地址与设备b的ip地址均为ip1,因此数据包p1
″′
可能转发至设备a,也可能转发至设备b;若设备a接收到数据包p1
″′
,则重复步骤三的转发过程,直至数据包p1的生存时间(time to live,ttl)为0,其中,数据包p1中的ttl是数据包p1在网络中可以转发的最大跳数,在转发过程中数据包p1每转发一次,ttl都会减1,从而避免数据包p1的无限循环和收发。
127.若设备b接收到数据包p1

,则设备b首先对数据包p1

进行解封装,从而得到三层vni和数据包p1,然后根据三层vni得到设备b中的三层vpn,从而得到设备b的路由表;然后根据数据包p1的目的地址以及设备b的路由表,将数据包p1发送给第一客户端pc1。
128.在本技术具体的实施例中,第二双活网关server leaf2的ip地址不是设备a的直连下一跳,因此当设备a将数据包p1

通过第五vxlan隧道发送给第二双活网关server leaf2时,数据包p1

会先到达第二脊节点spine2,然后再由第二脊节点spine2转发至第二双活网关server leaf2。同样的,第一双活网关server leaf1的ip地址不是第二双活网关
server leaf2的直连下一跳,因此当第二双活网关server leaf2将数据包p1
″′
通过第五vxlan隧道发送给第一双活网关server leaf1时,数据包p1
″′
会先到达第一脊节点spine1,然后再由第一脊节点spine1转发至第一双活网关server leaf1。
129.(2)客户端为单归接入设备a的客户端,如第二客户端pc2。那么,ip网络发送给第二客户端pc2的数据包p2可能由于路由环路而无法到达第二客户端pc2,数据包p2的转发路径如图8所示。
130.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p2,其中,数据包p2的目的ip地址为第二客户端pc2的ip地址。
131.步骤二,第一边界叶节点border leaf1在接收到数据包p2之后,对数据包p2进行vxlan封装,从而得到数据包p2

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p2


132.步骤三,若设备b接收到数据包p2

,则设备b首先对数据包p2

进行解封装,得到三层vni和数据包p2;然后根据三层vni确定设备b中的三层vpn,从而得到设备b的路由表。由于设备a与设备b之间的peer-link出现故障,因此设备b的路由表中未保存第二客户端pc2的路由表项,也就是说,根据数据包p2的目的ip地址以及设备b的路由表,将无法获取第二客户端pc2的路由表项。此时,设备b将根据缺省路由,先将数据包p2进行vxlan封装,得到数据包p2

,然后将数据包p2

通过第五vxlan隧道转发至第二双活网关server leaf2,其中,数据包p2

的外层源ip地址为第一双活网关server leaf1的ip地址(ip1),外层目的ip地址为第二双活网关server leaf2的ip地址,外层源mac地址为第一双活网关server leaf1的mac地址,外层mac地址为第二双活网关server leaf2的mac地址。第二双活网关server leaf2在接收到数据包p2

之后,首先对数据包p2

进行解封装,得到三层vni以及数据包p2,然后根据三层vni得到第二双活网关server leaf2中的三层vpn,从而得到第二双活网关server leaf2的路由表;之后,根据数据包p2的目的ip地址以及第二双活网关server leaf2的路由表,确定下一跳为第一双活网关的ip地址(ip1);然后,第二双活网关server leaf2对数据包p2重新进行封装,得到数据包p2
″′
,并将数据包p2
″′
发送给第一双活网关,其中,数据包p2
″′
的外层源ip地址为第二双活网关server leaf2的ip地址,外层目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层源mac地址为第二双活网关server leaf2的mac地址,外层mac地址为第一双活网关server leaf1的mac地址。由于设备a的ip地址与设备b的ip地址均为ip1,因此数据包p2
″′
可能转发至设备a,也可能转发至设备b;若设备b接收到数据包p2
″′
,则重复步骤三的转发过程,直至数据包p2的ttl为0。
133.若设备a接收到数据包p2

,则设备a首先对数据包p2

进行解封装,从而得到三层vni和数据包p2,然后根据三层vni得到设备a中的三层vpn,从而得到设备a的路由表;然后根据数据包p2的目的地址以及设备a的路由表,将数据包p2发送给第二客户端pc2。
134.在本技术具体的实施例中,第二双活网关server leaf2的ip地址不是设备b的直连下一跳,因此当设备b将数据包p2

通过第五vxlan隧道发送给第二双活网关server leaf2时,数据包p2

会先到达第二脊节点spine2,然后再由第二脊节点spine2转发至第二双活网关server leaf2。同样的,第一双活网关server leaf1的ip地址不是第二双活网关server leaf2的直连下一跳,因此当第二双活网关server leaf2将数据包p2
″′
通过第五vxlan隧道发送给第一双活网关server leaf1时,数据包p2
″′
会先到达第一脊节点spine1,
然后再由第一脊节点spine1转发至第一双活网关server leaf1。
135.(3)客户端为单归接入设备b的客户端,如第三客户端pc3。那么,ip网络发送给第三客户端pc3的数据包p3可能由于路由环路而无法到达第三客户端pc3,数据包p3的转发路径如图9所示。
136.步骤一,ip网络向第一边界叶节点border leaf1发送数据包p3,其中,数据包p3的目的ip地址为第三客户端pc3的ip地址。
137.步骤二,第一边界叶节点border leaf1在接收到数据包p3之后,对数据包p3进行vxlan封装,从而得到数据包p3

,然后通过第一vxlan隧道向第一双活网关server leaf1发送数据包p3


138.步骤三,若设备a接收到数据包p3

,则设备a首先对数据包p3

进行解封装,得到三层vni和数据包p3;然后根据三层vni确定设备a中的三层vpn,从而得到设备a的路由表。由于设备a与设备b之间的peer-link出现故障,因此设备a的路由表中未保存第三客户端pc3的路由表项,也就是说,根据数据包p3的目的ip地址以及设备a的路由表,将无法获取第三客户端pc3的路由表项。此时,设备a将根据缺省路由,先将数据包p3进行vxlan封装,得到数据包p3

,然后将数据包p3

通过第五vxlan隧道转发至第二双活网关server leaf2,其中,数据包p3

的外层源ip地址为第一双活网关server leaf1的ip地址(ip1),外层目的ip地址为第二双活网关server leaf2的ip地址,外层源mac地址为第一双活网关server leaf1的mac地址,外层mac地址为第二双活网关server leaf2的mac地址。第二双活网关server leaf2在接收到数据包p3

之后,首先对数据包p3

进行解封装,得到三层vni以及数据包p3,然后根据三层vni得到第二双活网关server leaf2中的三层vpn,从而得到第二双活网关server leaf2的路由表;之后,根据数据包p3的目的ip地址以及第二双活网关server leaf2的路由表,确定下一跳为第一双活网关的ip地址(ip1);然后,第二双活网关server leaf2对数据包p3重新进行封装,得到数据包p3
″′
,并将数据包p3
″′
发送给第一双活网关,其中,数据包p3
″′
的外层源ip地址为第二双活网关server leaf2的ip地址,外层目的ip地址为第一双活网关server leaf1的ip地址(ip1),外层源mac地址为第二双活网关server leaf2的mac地址,外层mac地址为第一双活网关server leaf1的mac地址。由于设备a的ip地址与设备b的ip地址均为ip1,因此数据包p3
″′
可能转发至设备a,也可能转发至设备b;若设备a接收到数据包p3
″′
,则重复步骤三的转发过程,直至数据包p3的ttl为0。
139.若设备b接收到数据包p3

,则设备b首先对数据包p3

进行解封装,从而得到三层vni和数据包p3,然后根据三层vni得到设备b中的三层vpn,从而得到设备b的路由表;然后根据数据包p3的目的地址以及设备b的路由表,将数据包p3发送给第三客户端pc3。
140.在本技术具体的实施例中,当设备a将数据包p3

通过第五vxlan隧道发送给第二双活网关server leaf2时,数据包p3

会先到达第二脊节点spine2,然后再由第二脊节点spine2转发至第二双活网关server leaf2。同样的,当第二双活网关server leaf2将数据包p3
″′
通过第五vxlan隧道发送给第一双活网关server leaf1时,数据包p3
″′
会先到达第一脊节点spine1,然后再由第一脊节点spine1转发至第一双活网关server leaf1。
141.应理解,由于第一脊节点spine1和第二脊节点spine2均为rr,因此第一脊节点spine1接收到数据包之后,不对数据包进行解封装或者封装,而是直接将数据包转发给第一双活网关server leaf1;第二脊节点spine2接收到数据包之后,不对数据包进行解封装
或者封装,而是直接将数据包转发给第二双活网关server leaf2。
142.需要说明的,由ip网络发送给客户端的数据包(如,数据包p1、数据包p2以及数据包p3)可能经由第一边界叶节点和第一脊节点的转发到达设备a或者设备b,也可能经由第一边界叶节点和第二脊节点的转发到达设备a或者设备b,还可能经由第二边界叶节点和第一脊节点的转发到达设备a或者设备b,还可能经由第二边界叶节点和第二脊节点的转发到达设备a或者设备b等等,此处不作具体限定。
143.为了简便陈述,上述实施例并没有具体说明第一边界叶节点border leaf1将数据包p1封装为数据包p1

的过程,第一边界叶节点border leaf1将数据包p2封装为数据包p2

的过程以及第一边界叶节点border leaf1将数据包p3封装为数据包p3

的过程,具体请参见图3至图5及其相关描述。
144.因此,在设备a与设备b之间的peer-link存在故障的情况下,图6示出的分布式vxlan网络中可能发生路由环路(如图7至图9所示),此时数据包可能在vxlan网络中被重复传递128次,不仅占用网络中的带宽,而且增加网络设备的中央处理器(central processing unit,cpu)占用率。
145.针对图3至图5示出的丢包问题以及图7至图9示出的路由环路问题,本技术提供了一种路由处理方法,该方法通过在设备a下增设第一从ip地址,在设备b下增设第二从ip地址,在设备a与设备b之间的peer-link不存在故障的情况下,设备a与设备b的ip地址均为虚拟ip地址(ip1);在设备a与设备b之间的peer-link存在故障的情况下,将设备a的ip地址从虚拟ip地址刷新为第一从ip地址,设备b的ip地址从虚拟ip地址刷新为第二从ip地址,从而解决了上述丢包问题以及路由环路问题。
146.下面首先基于图1示出的vxlan网络及其相关描述,对本技术提供的路由处理方法进行详细介绍。
147.在本技术具体的实施例中,在设备a的网络虚拟边缘节点(network virtualization edge,nve)接口下配置虚拟ip地址和第一从ip地址,在设备b的nve接口下配置虚拟ip地址和第二从ip地址。其中,虚拟ip地址和第一从ip地址不同,虚拟ip地址和第二从ip地址不同。
148.在设备a与设备b之间的peer-link没有出现故障的情况下,当接入到第一双活网关server leaf1的客户端首次与第一双活网关server leaf1通信时(例如,客户端访问ip网络),客户端将首先向第一双活网关server leaf1发送动态arp报文,使得第一双活网关server leaf1学习到客户端的arp表项以及路由表项,并生成evpn路由,然后第一双活网关server leaf1通过发送evpn路由,使得网络中的其他设备学习到客户端的路由表项,然后客户端便可以向ip网络发送数据包。下面以第一客户端pc1为例进行详细说明。
149.步骤一,第一客户端pc1向第一双活网关server leaf1发送第一arp报文。
150.步骤二,第一双活网关server leaf1根据第一arp报文,学习到第一客户端pc1的arp表项,并在本地arp表中保存第一客户端pc1的arp表项。同时,第一双活网关server leaf1在接收到arp报文之后,还获取到第一客户端pc1所属的二层bd,从而在本地mac表中保存第一客户端的mac表项。
151.其中,第一客户端pc1的arp表项反映了第一客户端pc1的ip地址与第一客户端pc1的mac地址之间的对应关系。二层bd是指vxlan网络中转发数据报文的二层广播域。第一客
户端的mac表项反映了第一客户端pc1所属的bd、第一客户端pc1的mac地址以及第一arp报文入接口之间的对应关系。
152.步骤三,第一双活网关server leaf1的evpn组件基于三层网关接口收集第一客户端pc1的主机信息,从而生成第一evpn路由。
153.步骤四,第一双活网关server leaf1的evpn组件将第一evpn路由发送给第一边界叶节点border leaf1,使得第一边界叶节点border leaf1学习到第一客户端pc1的路由表项,其中,第一客户端pc1的路由表项用于指示目的ip地址为第一客户端pc1的ip地址的下一跳和出接口等。
154.在本技术具体的实施例中,第一双活网关server leaf1先将第一evpn路由发送第一脊节点spine1,在第一脊节点spine1接收到第一evpn路由之后,将其反射给第一边界叶节点border leaf1。
155.步骤五,第一客户端pc1向第一双活网关server leaf1发送第一数据包。其中,第一数据包的源ip地址为第一客户端pc1的ip地址,第一数据包的目的ip地址为ip网络的ip地址。
156.步骤六,第一双活网关server leaf1通过第一vxlan隧道向第一边界叶节点border leaf1发送第一数据包,第一边界叶节点border leaf1接收到第一数据包之后,向ip网络发送第一数据包。
157.在本技术具体的实施中,第一双活网关server leaf1接收到第一数据包之后,首先根据第一数据包的入接口查找到二层bd,然后根据二层bd查找到三层vpn,从而得到本地路由表。然后,第一双活网关server leaf1根据第一数据包的目的ip地址以及本地路由表确定下一跳为第一边界路由器border leaf1的ip地址以及三层vni。第一双活网关server leaf1对第一数据包进行vxlan封装,得到第一封装包。其中,第一封装包的外层源ip地址为第一双活网关server leaf1的ip地址(虚拟ip地址),外层目的ip地址为第一边界叶节点border leaf1的ip地址,外层源mac地址为第一双活网关server leaf1的mac地址,外层目的mac地址为第一边界叶节点border leaf1的mac地址。第一边界叶节点border leaf1接收到第一封装包之后,首先对第一封装包进行解封装,得到第一数据包和三层vni,从而得到第一边界叶节点border leaf1中的三层vpn以及本地路由表;然后根据第一数据包的目的地址以及本地路由表,将第一数据包发送给ip网络。
158.为了简便陈述,上述实施例并没有对第一双活网关server leaf1的evpn组件生成第一evpn路由的过程以及第一边界叶节点border leaf1得到第一客户端pc1的路由表项进行详细阐述,具体请参见图1及其关于建立vxlan隧道的具体描述。另外,上述实施例仅介绍了第一客户端pc1路由表项的学习过程,应理解,第二客户端pc2路由表项的学习过程和第三客户端pc3路由表项的学习过程与第一客户端pc1路由表项的学习过程类似,此处不再展开赘述。也就是说,经过上述路由表项的学习过程,第一边界叶节点border leaf1的路由表、存储有第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项。
159.应理解,第一双活网关server leaf1包括设备a和设备b,设备a和设备b通过m-lag进行配置可在逻辑上虚拟为“一台设备”,因此上述实施例中均采用第一双活网关server leaf1进行统一叙述。在实际应用中,当设备a接收到第一客户端pc1发送第一arp报文,设备
a将学习第一客户端pc1的arp表项,然后设备a将第一客户端pc1的apr表项通过peer-link同步给设备b,从而使得设备b也学习到第一客户端pc1的arp表项。或者,当设备b接收到第一客户端pc1发送第一arp报文,设备b将学习第一客户端pc1的arp表项,然后设备b将第一客户端pc1的apr表项通过peer-link同步给设备a,从而使得设备a也学习到第一客户端pc1的arp表项。之后,设备a的evpn组件生成第一evpn路由,并将第一evpn路由发送给第一边界叶节点border leaf1,且设备b的evpn组件生成第一evpn路由,并将第一evpn路由发送给第一边界叶节点border leaf1。因此第一边界叶节点border leaf1接收并保存设备a发送的第一evpn路由,也接收并保存设备b发送的第一evpn路由。此时第一边界叶节点border leaf1将根据bgp选择路由的策略来选择最佳路由以得到第一客户端pc1的路由表项。例如,当第一脊节点spine1的router id小于第二脊节点spine2的router id时,第一边界叶节点border leaf1优先接收第一脊节点spine1发送的第一evpn路由。
160.在设备a与设备b之间的peer-link存在故障的情况下,设备a的peer-link接口状态为down,且设备b的peer-link接口状态为down。通过以下三种情况来说明本技术提供的路由处理方法,具体如下:
161.首先,需要说明的是在设备a与设备b之间的peer-link存在故障之前,也就是在设备a与设备b之间的peer-link不存在故障时,第一边界叶节点border leaf1的路由表和第一双活网关server leaf1的路由表(包括设备a的路由表和设备b的路由表)中均存储有第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项。
162.(1)客户端为双归接入第一双活网关server leaf1的客户端,如第一客户端pc1。
163.步骤一,第一客户端pc1向第一双活网关server leaf1发送第一arp报文,使得设备b学习到第一客户端pc1的arp表项,而设备a无法学习到第一客户端pc1的arp表项。
164.在本技术具体的实施例中,设备a为备设备,设备b为主设备,当设备a与设备b之间的peer-link存在故障时,设备a侧的下行eth-trunk链路的状态为down,而设备b侧下行的eth-trunk链路的状态仍为up,因此设备a无法接收到第一arp报文,也无法根据arp报文学习到第一客户端pc1的arp表项,而设备b可以接收到第一arp报文,因此设备b可以学习到第一客户端pc1的arp表项。又由于当设备a与设备b之间的peer-link存在故障时,设备b无法将第一客户端pc1的arp表项通过peer-link同步给设备a,因此设备a无法学习到第一客户端pc1的arp表项。
165.步骤二,设备a的evpn组件根据设备a的peer-link接口的状态(down),撤销本地arp表项中保存的第一客户端pc1的arp表项、本地路由表中的保存的第一客户端pc1的路由表项以及设备a生成的第一evpn路由,并通过第一vxlan隧道向第一边界叶节点border leaf1发送路由撤销报文。其中,路由撤销报文用于触发第一边界叶节点border leaf1撤销本地存储的设备a发送的第一evpn路由。
166.在本技术更具体的实施例中,设备a首先对路由撤销报文进行vxlan封装,得到路由撤销封装报文,其中,路由撤销封装报文中携带有三层vni,路由撤销封装报文的外层源ip地址为第一从ip地址,外层目的ip地址为第一边界叶节点border leaf1的ip地址,外层源mac地址为设备a的mac地址,外层目的ip地址为第一边界叶节点border leaf1的mac地址;然后设备a将路由撤销封装报文通过第一vxlan隧道发送给第一边界叶节点border leaf1,换句话说,路由撤销封装报文经由第一脊节点spine1的转发到达第一边界叶节点
border leaf1。
167.步骤三,设备b的evpn组件根据设备b的peer-link接口的状态(down),将设备b生成的第一evpn路由中的下一跳更改为第二从ip地址,然后通过第一vxlan隧道向第一边界叶节点border leaf1发送第一路由更新报文。其中,第一路由更新报文携带了目的ip地址为第一客户端pc1的下一跳,下一跳为第二从ip地址。第一路由更新报文用于触发第一边界叶节点border leaf1刷新路由表项,使得第一边界叶节点border leaf1的路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
168.在本技术具体的实施例中,设备b首先对第一路由更新报文进行vxlan封装,得到第一封装报文,其中,第一封装报文中携带有三层vni,第一封装报文的外层源ip地址为第二从ip地址,外层目的ip地址为第一边界叶节点border leaf1的ip地址,外层源mac地址为设备b的mac地址,外层目的ip地址为第一边界叶节点border leaf1的mac地址;然后设备b将第一封装报文通过第一vxlan隧道发送给第一边界叶节点border leaf1,换句话说,第一封装报文经由第一脊节点spine1的转发到达第一边界叶节点border leaf1。
169.步骤四,第一边界节点border leaf1接收第一路由更新报文,并根据第一路由更新报文刷新本地路由表,使得本地路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
170.在本技术具体的实施例中,第一边界叶节点border leaf1接收第一双活网关server leaf1通过第一vxlan隧道发送的第一封装报文,并对第一封装报文进行解封装,从而得到三层vni和第一路由更新报文;然后根据三层vni查找到第一边界叶节点border leaf1的路由表,从而得到第一边界叶节点border leaf1的路由表中存储的第一客户端pc1的路由表项;然后刷新第一客户端pc1的路由表项,将第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
171.因此,当ip网络向第一客户端pc1发送数据包p1时,数据包p1的转发路径如图10所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p1,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为第二从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p1发送给设备b,然后再由设备b将数据包p1发送给第一客户端pc1,从而避免了图3示出的丢包问题。
172.(2)客户端为单归接入设备a的客户端,如第二客户端pc2。
173.步骤一,第二客户端pc2向设备a发送第二arp报文,使得设备a学习到第二客户端pc2的arp表项,而设备b无法学习到第二客户端pc2的arp表项。
174.在本技术具体的实施例中,设备a可以根据第二arp报文学习到第二客户端pc2的arp表项,当设备a与设备b之间的peer-link存在故障时,设备a无法将第二客户端pc2的arp表项通过peer-link同步给设备b,因此设备b无法学习到第二客户端pc2的arp表项。
175.步骤二,设备b的evpn组件根据设备b的peer-link接口的状态(down),撤销本地arp表项中保存的第二客户端pc2的arp表项、本地路由表中的保存的第二客户端pc2的路由表项。
176.步骤三,设备a的evpn组件根据设备a的peer-link接口的状态(down),将第二evpn路由中的下一跳更改为第一从ip地址,然后通过第一vxlan隧道向第一边界叶节点border leaf1发送第二路由更新报文。其中,第二evpn路由为设备a根据第二客户端pc2的主机信息
生成的,第二路由更新报文携带了目的ip地址为第二客户端pc2的下一跳,下一跳为第一从ip地址。第二路由更新报文用于触发第一边界叶节点border leaf1刷新路由表项,使得第一边界叶节点border leaf1的路由表中存储的第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。
177.在本技术具体的实施例中,设备a首先对第二路由更新报文进行vxlan封装,得到第二封装报文,其中,第二封装报文中携带有三层vni,第二封装报文的外层源ip地址为第一从ip地址,外层目的ip地址为第一边界叶节点border leaf1的ip地址,外层源mac地址为设备a的mac地址,外层目的ip地址为第一边界叶节点border leaf1的mac地址;然后设备a将第一封装报文通过第一vxlan隧道发送给第一边界叶节点border leaf1,换句话说,第二封装报文经由第一脊节点spine1的转发到达第一边界叶节点border leaf1。
178.步骤四,第一边界节点border leaf1接收第二路由更新报文,并根据第二路由更新报文刷新本地路由表,使得本地路由表中存储的第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。
179.在本技术具体的实施例中,第一边界叶节点border leaf1接收第一双活网关server leaf1通过第一vxlan隧道发送的第二封装报文,并对第二封装报文进行解封装,从而得到三层vni和第二路由更新报文;然后根据三层vni查找到第一边界叶节点border leaf1的路由表,从而得到第一边界叶节点border leaf1的路由表中存储的第二客户端pc2的路由表项;然后刷新第二客户端pc2的路由表项,将第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。
180.因此,当ip网络向第二客户端pc2发送数据包p2时,数据包p2的转发路径如图11所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p2,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为第一从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p2发送给设备a,然后再由设备a将数据包p2发送给第二客户端pc2,从而避免了图4示出的丢包问题。
181.(3)客户端为单归接入设备b的客户端,如第三客户端pc3。
182.步骤一,第三客户端pc3向设备b发送第三arp报文,使得设备b学习到第三客户端pc3的arp表项,而设备a无法学习到第三客户端pc3的arp表项。
183.在本技术具体的实施例中,设备b可以根据第三arp报文学习到第三客户端pc3的arp表项,当设备a与设备b之间的peer-link存在故障时,设备b无法将第三客户端pc3的arp表项通过peer-link同步给设备a,因此设备a无法学习到第三客户端pc3的arp表项。
184.步骤二,设备a的evpn组件根据设备a的peer-link接口的状态(down),撤销本地arp表项中保存的第三客户端pc3的arp表项、本地路由表中的保存的第三客户端pc3的路由表项。
185.步骤三,设备b的evpn组件根据设备b的peer-link接口的状态(down),将第三evpn路由中的下一跳更改为第二从ip地址,然后通过第一vxlan隧道向第一边界叶节点border leaf1发送第三路由更新报文。其中,第三evpn路由为设备b根据第三客户端pc3的主机信息生成的,第三路由更新报文携带了目的ip地址为第三客户端pc3的下一跳,下一跳为第二从ip地址。第三路由更新报文用于触发第一边界叶节点border leaf1刷新路由表项,使得第一边界叶节点border leaf1的路由表中存储的第三客户端pc3的路由表项中的下一跳从虚
拟ip地址更改为第二从ip地址。
186.在本技术更具体的实施例中,设备b首先对第三路由更新报文进行vxlan封装,得到第三封装报文,其中,第三封装报文中携带有三层vni,第三封装报文的外层源ip地址为第二从ip地址,外层目的ip地址为第一边界叶节点border leaf1的ip地址,外层源mac地址为设备b的mac地址,外层目的ip地址为第一边界叶节点border leaf1的mac地址;然后设备b将第三封装报文通过第一vxlan隧道发送给第一边界叶节点border leaf1,换句话说,第三封装报文经由第一脊节点spine1的转发到达第一边界叶节点border leaf1。
187.步骤四,第一边界节点border leaf1接收第三路由更新报文,并根据第三路由更新报文刷新本地路由表,使得本地路由表中存储的第三客户端pc3的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
188.在本技术具体的实施例中,第一边界叶节点border leaf1接收第一双活网关server leaf1通过第一vxlan隧道发送的第三封装报文,并对第三封装报文进行解封装,从而得到三层vni和第三路由更新报文;然后根据三层vni查找到第一边界叶节点border leaf1的路由表,从而得到第一边界叶节点border leaf1的路由表中存储的第三客户端pc3的路由表项;然后刷新第三客户端pc3的路由表项,将第三客户端pc3的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
189.因此,当ip网络向第三客户端pc3发送数据包p3时,数据包p3的转发路径如图12所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p3,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为第二从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p3发送给设备b,然后再由设备b将数据包p3发送给第三客户端pc3,从而避免了图5示出的丢包问题。
190.为了简便叙述,上述实施例并没有对设备a生成第二evpn路由的过程以及设备b生成第三evpn路由的过程进行描述,具体请参见图1及其关于建立vxlan隧道的过程,此处不再展开赘述。
191.需要说明的,在第一客户端pc1首次与第一双活网关server leaf1通信之前,若设备a与设备b的peer-link存在故障,则设备b的evpn组件根据设备b的peer-link接口状态以及第一客户端pc1的主机信息生成的evpn路由中下一跳为第二从ip地址,由于设备a中未存储有第一客户端pc1的arp表项、第一客户端的主机路由以及evpn路由,因此设备a无需对其进行撤销操作。同理可得,在第二客户端pc2首次与第一双活网关server leaf1通信之前,若设备a与设备b的peer-link存在故障,则设备a的evpn组件根据设备a的peer-link接口状态以及第二客户端pc2的主机信息生成evpn路由中下一跳为第一从ip地址。在第三客户端pc3首次与第一双活网关server leaf1通信之前,若设备a与设备b的peer-link存在故障,则设备b的evpn组件根据设备b的peer-link接口状态以及第三客户端pc3的主机信息生成的evpn路由中下一跳为第二从ip地址。
192.接下来,基于图6示出的vxlan网络及其相关描述,对本技术提供的路由处理方法进行详细介绍。
193.在本技术具体的实施例中,在设备a的网络虚拟边缘节点(network virtualization edge,nve)接口下配置虚拟ip地址(ip1)和第一从ip地址,在设备b的nve接口下配置虚拟ip地址和第二从ip地址。其中,虚拟ip地址和第一从ip地址不同,虚拟ip地
址和第二从ip地址不同。
194.在设备a与设备b之间的peer-link不存在故障的情况下,当接入到第一双活网关server leaf1的客户端首次与第一双活网关server leaf1通信时(例如,客户端访问ip网络),客户端将向第一双活网关server leaf1发送动态arp报文,使得第一双活网关server leaf1学习到客户端的arp表项以及路由表项,并生成evpn路由,然后第一双活网关server leaf1通过发送evpn路由,使得网络中的其他设备(如,第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2)学习到客户端的路由表项,然后客户端便可以向ip网络发送数据包。具体请参见图1中第一边界叶节点border leaf1学习第一客户端pc1的路由表项的过程以及第一数据包的发送过程,此处不再展开赘述。此时,第一边界叶节点border leaf1的路由表、第二边界叶节点border leaf2的路由表、第一双活网关server leaf1的路由表(包括设备a的路由表和设备b的路由表)以及第二双活网关server leaf2的路由表(包括设备c的路由表和设备d的路由表)中均存储有第一客户端pc1的路由表项、第二客户端pc2的路由表项以及第三客户端pc3的路由表项。因此,第一数据包的转发路径可以是第一客户端第一双活网关server第一脊节点第一边界叶节点borderip网络,还可以是第一客户端第一双活网关server第二脊节点第一边界叶节点borderp网络,还可以是第一客户端第一双活网关server第一脊节点第二边界叶节点borderip网络,还可以是第一客户端第一双活网关server第二脊节点第二边界叶节点borderip网络,此处不作具体限定。
195.在设备a与设备b之间的peer-link存在故障的情况下,设备a的peer-link接口状态为down,且设备b的peer-link接口状态为down。通过以下三种情况来说明本技术提供的路由处理方法,具体如下:
196.(1)客户端为双归接入第一双活网关server leaf1的客户端,如第一客户端pc1。
197.步骤一,第一客户端pc1向第一双活网关server leaf1发送第一arp报文,使得设备b学习到第一客户端pc1的arp表项,而设备a无法学习到第一客户端pc1的arp表项。
198.步骤二,设备a的evpn组件根据设备a的peer-link接口的状态(down),撤销本地arp表项中保存的第一客户端pc1的arp表项、本地路由表中的保存的第一客户端pc1的路由表项以及第一evpn路由,并分别向第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2发送路由撤销报文。其中,路由撤销报文用于触发第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2撤销本地存储的设备a发送的第一evpn路由。
199.步骤三,设备b的evpn组件根据设备b的peer-link接口的状态(down),将设备b生成的第一evpn路由中的下一跳更改为第二从ip地址,然后分别向第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2发送第一路由更新报文。其中,第一路由更新报文携带了目的ip地址为第一客户端pc1的下一跳,下一跳为第二从ip地址。第一路由更新报文用于触发第一边界叶节点border leaf1刷新路由表项,使得第一边界叶节点border leaf1的路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
200.步骤四,第一边界节点border leaf1接收第一路由更新报文,并根据第一路由更新报文刷新本地路由表,使得本地路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。第二边界叶节点border leaf2接收第一路由更新报文,并根据第一路由更新报文刷新本地路由表,从而将本地路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。第二双活网关server leaf2接收第一路由更新报文,并根据第一路由更新报文刷新本地路由表,从而将本地路由表中存储的第一客户端pc1的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
201.因此,当ip网络向第一客户端pc1发送数据包p1时,数据包p1的转发路径可能如图13所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p1,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为第二从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p1发送给设备b,然后再由设备b将数据包p1发送给第一客户端pc1,从而避免了图7示出路由环路问题。应理解,数据包p1的转发路径还可能是第一边界叶节点border第二脊节点设备第一客户端pc1,还可能是第二边界叶节点border第一脊节点设备第一客户端pc1,还可能是第二边界叶节点border第二脊节点设备第一客户端pc1等等,此处不作具体限定。
202.(2)客户端为单归接入设备a的客户端,如第二客户端pc2。
203.步骤一,第二客户端pc2向设备a发送第二arp报文,使得设备a学习到第二客户端pc2的arp表项,而设备b无法学习到第二客户端pc2的arp表项。
204.步骤二,设备b的evpn组件根据设备b的peer-link接口的状态(down),撤销本地arp表项中保存的第二客户端pc2的arp表项、本地路由表中的保存的第二客户端pc2的路由表项。
205.步骤三,设备a的evpn组件根据设备a的peer-link接口的状态(down),将第二evpn路由中的下一跳更改为第一从ip地址,然后分别向第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2发送第二路由更新报文。其中,第二evpn路由为设备a根据第二客户端pc2的主机信息生成的,第二路由更新报文携带了目的ip地址为第二客户端pc2的下一跳,下一跳为第一从ip地址。
206.步骤四,第一边界节点border leaf1接收第二路由更新报文,并根据第二路由更新报文刷新本地路由表,使得本地路由表中存储的第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。第二边界叶节点border leaf2接收第二路由更新报文,并根据第二路由更新报文刷新本地路由表,从而将本地路由表中存储的第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。第二双活网关server leaf2接收第二路由更新报文,并根据第二路由更新报文刷新本地路由表,从而将本地路由表中存储的第二客户端pc2的路由表项中的下一跳从虚拟ip地址更改为第一从ip地址。
207.因此,当ip网络向第二客户端pc2发送数据包p2时,数据包p2的转发路径可能如图14所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p2,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p2发送给设备a,然后再由设备a将数据包p2
发送给第二客户端pc2,从而避免了图8示出的路由环路问题。应理解,数据包p2的转发路径还可能是第一边界叶节点border第二脊节点设备第二客户端pc2,还可能是第二边界叶节点border第一脊节点设备第二客户端pc2,还可能是第二边界叶节点border第二脊节点设备第二客户端pc2等等,此处不作具体限定。
208.(3)客户端为单归接入设备b的客户端,如第三客户端pc3。
209.步骤一,第三客户端pc3向设备b发送第三arp报文,使得设备b学习到第三客户端pc3的arp表项,而设备a无法学习到第三客户端pc3的arp表项。
210.步骤二,设备a的evpn组件根据设备a的peer-link接口的状态(down),撤销本地arp表项中保存的第三客户端pc3的arp表项、本地路由表中的保存的第三客户端pc3的路由表项。
211.步骤三,设备b的evpn组件根据设备b的peer-link接口的状态(down),将第三evpn路由中的下一跳更改为第二从ip地址,然后分别向第一边界叶节点border leaf1、第二边界叶节点border leaf2以及第二双活网关server leaf2发送第三更新报文。其中,第三evpn路由为设备b根据第三客户端pc3的主机信息生成的,第三路由更新报文携带了目的ip地址为第三客户端pc3的下一跳,下一跳为第二从ip地址。
212.步骤四,第一边界节点border leaf1接收第三路由更新报文,并根据第三路由更新报文刷新本地路由表,使得本地路由表中存储的第三客户端pc3的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。第二边界叶节点border leaf2接收第三路由更新报文,并根据第三路由更新报文刷新本地路由表,从而将本地路由表中存储的第三客户端pc3的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。第二双活网关server leaf2接收第三路由更新报文,并根据第三路由更新报文刷新本地路由表,从而将本地路由表中存储的第三客户端pc3的路由表项中的下一跳从虚拟ip地址更改为第二从ip地址。
213.因此,当ip网络向第三客户端pc3发送数据包p3时,数据包p3的转发路径可能如图15所示,具体的,第一边界叶节点border leaf1接收ip网络发送的数据包p3,第一边界叶节点border leaf1通过查询本地路由表得到下一跳为第二从ip地址,因此,第一边界叶节点border leaf1将通过第一vxlan隧道将数据包p3发送给设备b,然后再由设备b将数据包p3发送给第三客户端pc3,从而避免了图9示出的路由环路问题。应理解,数据包p3的转发路径还可能是第一边界叶节点border第二脊节点设备第三客户端pc3,还可能是第二边界叶节点border第一脊节点设备第三客户端pc3,还可能是第二边界叶节点border第二脊节点设备第三客户端pc3等等,此处不作具体限定。
214.为了简便陈述,上述实施例并没有对设备a和设备b生成第一evpn路由、设备a生成第二evpn路由以及设备b生成第三evpn路由的具体过程展开详细描述,具体请参见图1及其关于建立vxlan隧道的过程,此处不再展开赘述。本实施例也没有对路由撤销报文和路由更新报文(如,第一路由更新报文、第二路由更新报文以及第三路由更新报文)的发送以及接收过程进行描述,具体请参见图10至图12及其相关描述,此处不再展开赘述。
215.需要说明的,在第一客户端pc1首次与第一双活网关server leaf1通信之前,若设
备a与设备b的peer-link存在故障,则设备b的evpn组件根据设备b的peer-link接口状态以及第一客户端pc1的主机信息生成的evpn路由中下一跳为第二从ip地址,由于设备a中未存储有第一客户端pc1的arp表项、第一客户端的主机路由以及evpn路由,因此设备a无需对其进行撤销操作。同理可得,在第二客户端pc2首次与第一双活网关server leaf1通信之前,若设备a与设备b的peer-link存在故障,则设备a的evpn组件根据设备a的peer-link接口状态以及第二客户端pc2的主机信息生成evpn路由中下一跳为第一从ip地址。在第三客户端pc3首次与第一双活网关server leaf1通信之前,若设备a与设备b的peer-link存在故障,则设备b的evpn组件根据设备b的peer-link接口状态以及第三客户端pc3的主机信息生成的evpn路由中下一跳为第二从ip地址。
216.请参见图16,图16为本技术提供的一种路由处理方法的流程示意图,该方法应用于vxlan网络中,vxlan网络包括第一双活网关,第一双活网关包括第一网关设备和第二网关设备,第一网关设备与第二网关设备之间包括peer-link。本实施方式的路由处理方法具体可包括如下步骤:
217.s101、第一网关设备确定第一网关设备与第二网关设备之间的peer-link是否存在故障。
218.在本技术具体的实施例中,第一网关设备根据第一网关设备的peer-link接口状态确定第一网关设备和第二网关设备之间的peer-link是否存在故障。若第一网关设备和第二网关设备之间的peer-link不存在故障,则第一网关设备的peer-link接口的状态为up;若第一网关设备和第二网关设备之间的存在故障,则第一网关设备的peer-link接口的状态为down。
219.s102、当第一网关设备与第二网关设备之间peer-link存在故障时,第一网关设备将第一从ip地址确定为第一网关设备的vtep ip地址。
220.在本技术具体的实施例中,在第一网关设备的nve接口下为第一网关设备配置vtep ip地址,具体可包括:虚拟ip地址和第一从ip地址。并且,第一从ip地址与虚拟ip地址不同。
221.在本技术具体的实施例中,当第一网关设备与第二网关设备之间的peer-link不存在故障时,第一网关设备将虚拟ip地址确定为第一网关设备的vtep ip地址。
222.s103、第一网关设备发布第一路由更新消息。
223.在本技术具体的实施例中,第一路由更新消息包括第一目标路由,第一目标路由的下一跳地址为第一从ip地址,第一路由更新消息用于触发与第一网关设备通信的边界路由器根据第一路由刷新路由表项。
224.在本技术具体的实施例中,第二网关设备确定第一网关设备与第二网关设备之间的peer-link是否存在故障。当第一网关设备与第二网关设备之间的peer-link不存在故障时,第二网关设备将虚拟ip地址确定为第二网关设备的vtep ip地址;当第一网关设备与第二网关设备之间的peer-link存在故障时,第二网关设备将第二从ip地址确定为第二网关设备的vtep ip地址,并发布第二路由更新消息。其中,第二从ip地址和虚拟ip地址为配置在第二网关设备的nve接口下,且第二从ip地址与虚拟ip地址不同。第二路由更新消息包括第二目标路由,第二目标路由的下一跳地址为第二从ip地址,第二路由更新消息用于触发与第二网关设备通信的边界路由器根据第二目标路由刷新路由表项。
225.在一更具体的实施例中,第二网关设备根据第二网关设备的peer-link接口状态确定第一网关设备和第二网关设备之间的peer-link是否存在故障。若第一网关设备和第二网关设备之间的peer-link不存在故障,则第二网关设备的peer-link接口的状态为up;若第一网关设备和第二网关设备之间的peer-link存在故障,则第二网关设备的peer-link接口的状态为down。因此,当第二网关设备确定第二网关设备的peer-link接口状态为up时,第二网关设备的vtep ip地址为虚拟ip地址;当第二网关设备确定第二网关设备的peer-link接口状态为down时,第二网关设备将第二网关设备的vtep ip地址从虚拟ip地址更改为第二从ip地址,并向与第二网关设备通信的边界路由器发布第二路由更新消息。
226.需要说明的,为了区分第一网关设备和第二网关设备,因此本实施将第一网关设备的从ip地址称为第一从ip地址,第二网关设备的从ip地址称为第二从ip地址,第一网关设备发布的路由更新消息称为第一路由更新消息,第二网关设备发布的路由更新消息称为第二路由更新消息,第一路由更新消息包括的目标路由为第一目标路由,第二路由更新消息包括的目标路由为第二目标路由。
227.在一种可能的实施例中,vxlan网络还包括第一rr和第一边界路由器,第一rr分别与第一双活网关、第一边界路由器组成bgp evpn邻居,第一边界路由器与第一双活网关之间通过第一vxlan隧道进行通信。具体可参见图1示出的vxlan网络。
228.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第一客户端发送的第一数据包,其中,第一客户端双归接入第一双活网关,第一数据包的源ip地址为第一客户端的ip地址;第一网关设备通过第一vxlan隧道向第一边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第二数据包,其中,第一路由表项为第一边界路由器根据第一目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为第一从ip地址,第二数据包为第一数据包的响应数据包,第二数据包的目的ip地址为第一客户端的ip地址;第一网关设备将第二数据包发送给第一客户端。或者,
229.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第二网关设备接收第一客户端发送的第一数据包;第二网关设备通过第一vxlan隧道向第一边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第二数据包;第一网关设备将第二数据包发送给第一客户端。或者,
230.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包,其中,第二客户端单归接入第一网关设备,第三数据包的源ip地址为第二客户端的ip地址;第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第二路由表项发送的第四数据包,其中,第二路由表项为第一边
界路由器根据第一目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为第一从ip地址,第四数据包为第三数据包的响应数据包,第四数据包的目的ip地址为第二客户端的ip地址;第一网关设备将第四数据包发送给第二客户端。或者,
231.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包;第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第二路由表项发送的第四数据包;第一网关设备将第四数据包发送给第二客户端。
232.在另一种可能的实施例中,vxlan网络还包括第二双活网关、第二rr和第二边界路由器,第一rr分别与第二双活网关、第二边界路由器组成bgp evpn邻居,第二rr分别与第一双活网关、第一边界路由器、第二双活网关以及第二边界路由器组成bgp evpn邻居;第一边界路由器与第二双活网关之间通过第二vxlan隧道进行通信,第二边界路由器与第一双活网关之间通过第三vxlan隧道进行通信,第二边界路由器与第二双活网关之间通过第四vxlan隧道进行通信,第一双活网关和第二双活网关之间通过第五vxlan隧道进行通信。具体可参见图6示出的vxlan网络。当第一网关设备确定第一网关设备与第二网关设备之间的peer-link存在故障时,第一路由更新消息还用于触发第二双活网关根据第一目标路由刷新路由表项;当第二网关设备确定第一网关设备与第二网关设备之间的确定peer-link存在故障时,第二路由更新消息还用于触发第二双活网关根据第二目标路由刷新路由表项。
233.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第一客户端发送的第一数据包,其中,第一客户端双归接入第一双活网关,第一数据包的源ip地址为第一客户端的ip地址;第一网关设备通过第一vxlan隧道向第一边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第二数据包,其中,第一路由表项为第一边界路由器根据第一目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为第一从ip地址,第二数据包为第一数据包的响应数据包,第二数据包的目的ip地址为第一客户端的ip地址;第一网关设备将第二数据包发送给第一客户端。或者,
234.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第二网关设备接收第一客户端发送的第一数据包;第二网关设备通过第一vxlan隧道向第一边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第二数据包;第一网关设备将第二数据包发送给第一客户端。或者,
235.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设
备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第一客户端发送的第一数据包;第一网关设备通过第三vxlan隧道向第二边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第二边界路由器根据第二路由表项发送的第二数据包,其中,第二路由表项为第二边界路由器根据第一目标路由刷新本地路由表项得到的,第二边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为第一从ip地址;第一网关设备将第二数据包发送给第一客户端。或者,
236.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第二网关设备接收第一客户端发送的第一数据包;第二网关设备通过第三vxlan隧道向第二边界路由器发送第一数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第二边界路由器根据第二路由表项发送的第二数据包;第一网关设备将第二数据包发送给第一客户端。或者,
237.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包,其中,第二客户端单归接入第一网关设备,第三数据包的源ip地址为第二客户端的ip地址;第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第四数据包,其中,第一路由表项为第一边界路由器根据第一目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第二客户端的ip地址对应的下一跳为第一从ip地址,第四数据包为第三数据包的响应数据包,第四数据包的目的ip地址为第二客户端的ip地址;第一网关设备将第四数据包发送给第二客户端。或者,
238.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包;第一网关设备通过第三vxlan隧道向第二边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第二边界路由器根据第二路由表项发送的第四数据包,其中,第二路由表项为第二边界路由器根据第一目标路由刷新本地路由表项得到的,第二边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为第一从ip地址;第一网关设备将第四数据包发送给第二客户端。或者,
239.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包;第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第一边界路由器根据第一路由表项发送的第四数据包;第一网关设备将第四数据包发
送给第二客户端。或者,
240.当第一网关设备和第二网关设备之间的peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,上述方法还包括:第一网关设备接收第二客户端发送的第三数据包;第一网关设备通过第三vxlan隧道向第二边界路由器发送第三数据包;当第一网关设备和第二网关设备之间的peer-link存在故障时,上述方法还包括:第一网关设备接收第二边界路由器根据第一路由表项发送的第四数据包;第一网关设备将第四数据包发送给第二客户端。
241.在本技术具体的实施中,若第一网关设备为主设备且第二双活网关为备设备,当第一网关设备与第二网关设备之间的peer-link不存在故障时,第一网关设备根据第一客户端的主机信息生成第一evpn路由,第二网关设备根据第一客户端的主机信息生成第一evpn路由;第一网关设备向第一边界路由器、第二边界路由器以及第二双活网关发送第一网关设备生成的第一evpn路由,第二网关设备向第一边界路由器、第二边界路由器以及第二双活网关发送第二网关设备生成的第一evpn路由。其中,第一evpn路由中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,使得第一边界路由器根据第一evpn路由生成的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第二边界路由器根据第一evpn路由生成的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第二双活网关根据第一evpn路由生成的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址。当第一网关设备与第二网关设备之间的peer-link存在故障时,第二路由更新消息还包括第一evpn路由的撤销消息,第二路由更新消息还用于触发与第二网关设备通信的第一边界路由器、第二边界路由器以及第二双活网关撤销第二网关设备发送的第一evpn路由。
242.在本技术具体的实施例中,当第一网关设备与第二网关设备之间的peer-link不存在故障时,第一网关设备根据第二客户端的主机信息生成第二evpn路由,并向第一边界路由器、第二边界路由器以及第二双活网关发送第二evpn路由。其中,第二evpn路由中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,使得第一边界路由器根据第二evpn路由生成的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二边界路由器根据第二evpn路由生成的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二双活网关根据第二evpn路由生成的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址。
243.在本技术具体的实施例中,第一边界路由器的本地路由表项中包括一条或者多条路由,具体可以包括:目的ip地址为第一客户端的ip地址对应的路由(第一客户端的路由表项),目的ip地址为第二客户端的ip地址对应的路由(第二客户端的路由表项)。第一边界路由器的第一路由表项中包括一条或者多条路由,具体可以包括:目的ip地址为第一客户端的ip地址对应的路由(第一客户端的路由表项),目的ip地址为第二客户端的ip地址对应的路由(第二客户端的路由表项)。第二边界路由器的第二路由表项中包括一条或者多条路由,具体可以包括:目的ip地址为第一客户端的ip地址对应的路由(第一客户端的路由表项),目的ip地址为第二客户端的ip地址对应的路由(第二客户端的路由表项)。
244.在本技术具体的实施例中,当第一客户端访问ip网络时,第一客户端将向ip网络发送第一数据包,第一数据包的目的ip地址为ip网络,当ip网络接收到第一数据包时,ip网
络将向第一客户端返回第二数据包,第二数据包的源ip地址为ip网络的ip地址。当第二客户端访问ip网络时,第二客户端将向ip网络发送第三数据包,第三数据包的目的ip地址为ip网络,当ip网络接收到第三数据包时,ip网络将向第二客户端返回第三数据包,第三数据包的源ip地址为ip网络的ip地址。
245.为了简便陈述,本实施例并没有对vxlan网络的具体结构及连接关系展开描述,具体请参加图1、图6及其相关描述。本实施例中也没有对vxlan隧道的建立过程、第一evpn路由和第二evpn路由的生成过程、第一边界路由器的本地路由表项、第二边界路由器的本地路由表项、第一路由表项以及第二路由表项等路由表项的生成过程展开描述,具体请参见图1、图6及其相关描述。本实施例中还没有对第一数据包、第二数据包、第三数据包、第四数据包以及第一路由更新消息、第二路由更新消息的发送过程展开描述,具体请参见图1、图6、图10至图15以及相关描述。需要说明的,本实施中的第一边界路由器、第一rr、第一双活网关分别对应于图1或者图6中的第一边界叶节点border leaf1,第一脊节点spine1、第一双活网关server leaf1。当本实施中的第一网关设备为主设备,第二网关设备为备设备时,第一网关设备、第二网关设备、第一客户端和第二客户端分别对应于图1或者图6中的设备b、设备a、第一客户端pc1、第三客户端pc3;当本实施中的第一网关设备为备设备,第二网关设备为主设备时,第一网关设备、第二网关设备、第一客户端和第二客户端分别对应于图1或者图6中的设备a、设备b、第一客户端pc1和第二客户端pc2。本实施例中的第二边界路由器、第二rr、第二双活网关分别对应图6中的第二边界叶节点border leaf2、第二脊节点spine2、第二双活网关server leaf2。
246.上述方法中,通过为双活网关中的网关设备增设vtep ip地址,使得第一网关设备具有两个vtep ip地址:虚拟ip地址和第一从ip地址,第二网关设备具有两个vtep ip地址:虚拟ip地址和第二从ip地址。当第一网关设备和第二网关设备的peer-link不存在故障时,第一网关设备的ip地址和第二网关设备的ip地址均为虚拟ip地址;当第一网关设备和第二网关设备之间的peer-link存在故障时,第一网关设备将第一网关设备的vtep ip地址更改为第一从ip地址,第二网关设备将第二网关设备的vtep ip地址更改为第二从ip地址,从而避免了如图3至图5示出的丢包问题以及图7至图9示出的路由环路问题。
247.请参见图17,图17示出本技术提供的一种第一网关设备的结构示意图。第一网关设备应用于vxlan网络中,vxlan网络包括第一双活网关,第一双活网关包括第一网关设备和第二网关设备,第一网关设备与第二网关设备之间包括对等体链路peer-link,第一网关设备包括判断单元110、刷新单元120以及发布单元130。
248.判断单元110,用于确定peer-link是否存在故障,其中,第一网关设备的vtep ip地址是虚拟ip地址;
249.刷新单元120,用于当peer-link存在故障时,将第一从ip地址确定为第一网关设备的vtep ip地址,其中,第一从ip地址与虚拟ip地址不同;
250.发布单元130,用于发布路由更新消息,其中,路由更新消息包括目标路由,目标路由的下一跳地址为从ip地址,路由更新消息用于触发与第一网关设备通信的边界路由器根据目标路由刷新路由表项。
251.在本技术具体的实施例中,在第一网关设备的nve接口下为第一网关设备配置vtep ip地址,具体可包括:虚拟ip地址和从ip地址。
252.在本技术具体的实施例中,当判断单元110确定第一网关设备与第二网关设备之间的peer-link不存在故障时,刷新单元120用于将虚拟ip地址确定为第一网关设备的vtep ip地址。
253.在本技术具体的实施例中,判断单元110根据第一网关设备的peer-link接口状态确定第一网关设备和第二网关设备之间的peer-link是否存在故障。若第一网关设备和第二网关设备之间的peer-link不存在故障,则第一网关设备的peer-link接口的状态为up;若第一网关设备和第二网关设备之间的存在故障,则第一网关设备的peer-link接口的状态为down。
254.在一种可能的实施例中,vxlan网络还包括第一rr和第一边界路由器,第一rr分别与第一双活网关、第一边界路由器组成bgp evpn邻居,第一边界路由器与第一双活网关之间通过第一vxlan隧道进行通信。具体可参见图1示出的vxlan网络。
255.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第一客户端发送的第一数据包,其中,第一客户端双归接入第一双活网关,第一数据包的源ip地址为第一客户端的ip地址;发送单元150,用于通过第一vxlan隧道向第一边界路由器发送第一数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第二数据包,其中,第一路由表项为第一边界路由器根据目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为从ip地址,第二数据包为第一数据包的响应数据包,第二数据包的目的ip地址为第一客户端的ip地址;发送单元150还用于将第二数据包发送给第一客户端。或者,
256.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包,其中,第二客户端单归接入第一网关设备,第三数据包的源ip地址为第二客户端的ip地址;发送单元150,用于第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第四数据包,其中,第一路由表项为第一边界路由器根据目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为从ip地址,第四数据包为第三数据包的响应数据包,第四数据包的目的ip地址为第二客户端的ip地址;发送单元150还用于将第四数据包发送给第二客户端。或者,
257.当peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包,其中,第二客户端单归接入第一网关设备,第三数据包的源ip地址为第二客户端的ip地址;发送单元150,用于第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第四数据包,其中,第一路由表项为第一边界路由器根据目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为从ip
地址,第四数据包为第三数据包的响应数据包,第四数据包的目的ip地址为第二客户端的ip地址;发送单元150还用于将第四数据包发送给第二客户端。
258.在另一种可能的实施例中,vxlan网络还包括第二双活网关、第二rr和第二边界路由器,第一rr分别与第二双活网关、第二边界路由器组成bgp evpn邻居,第二rr分别与第一双活网关、第一边界路由器、第二双活网关以及第二边界路由器组成bgp evpn邻居;第一边界路由器与第二双活网关之间通过第二vxlan隧道进行通信,第二边界路由器与第一双活网关之间通过第三vxlan隧道进行通信,第二边界路由器与第二双活网关之间通过第四vxlan隧道进行通信,第一双活网关和第二双活网关之间通过第五vxlan隧道进行通信。具体可参见图6示出的vxlan网络。当第一网关设备确定peer-link存在故障,路由更新消息还用于触发第二双活网关根据目标路由刷新路由表项。
259.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第一客户端发送的第一数据包,其中,第一客户端双归接入第一双活网关,第一数据包的源ip地址为第一客户端的ip地址;发送单元150,用于通过第一vxlan隧道向第一边界路由器发送第一数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第二数据包,其中,第一路由表项为第一边界路由器根据目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为从ip地址,第二数据包为第一数据包的响应数据包,第二数据包的目的ip地址为第一客户端的ip地址;发送单元150还用于将第二数据包发送给第一客户端。或者,
260.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第一客户端发送的第一数据包;发送单元150,用于通过第三vxlan隧道向第二边界路由器发送第一数据包;当peer-link存在故障时,接收单元140还用于接收第二边界路由器根据第二路由表项发送的第二数据包,其中,第二路由表项为第二边界路由器根据目标路由刷新本地路由表项得到的,第二边界路由器的本地路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第一客户端的ip地址对应的下一跳地址为从ip地址;发送单元150还用于将第二数据包发送给第一客户端。或者,
261.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包,其中,第二客户端单归接入第一网关设备,第三数据包的源ip地址为第二客户端的ip地址;发送单元150,用于第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第四数据包,其中,第一路由表项为第一边界路由器根据目标路由刷新本地路由表项得到的,第一边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第一路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为从ip地址,第四数据包为第三数据包的响应数据包,第四数据包的目的ip地址为第二客户端的ip地址;发送单元150还用于将第四数据包发送给第二客户端。或者,
262.当peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,
第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包;发送单元150,用于第一网关设备通过第一vxlan隧道向第一边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第一边界路由器根据第一路由表项发送的第四数据包;发送单元150还用于将第四数据包发送给第二客户端。或者,
263.当peer-link不存在故障时,且第一网关设备为主设备,第二网关设备为备设备,第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包;发送单元150,用于第一网关设备通过第三vxlan隧道向第二边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第二边界路由器根据第二路由表项发送的第四数据包,其中,第二路由表项为第二边界路由器根据目标路由刷新本地路由表项得到的,第二边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为从ip地址;发送单元150还用于将第四数据包发送给第二客户端。或者,
264.当peer-link不存在故障时,且第一网关设备为备设备,第二网关设备为主设备,第一网关设备还包括:接收单元140,用于接收第二客户端发送的第三数据包;发送单元150,用于第一网关设备通过第三vxlan隧道向第二边界路由器发送第三数据包;当peer-link存在故障时,接收单元140还用于接收第二边界路由器根据第二路由表项发送的第四数据包,其中,第二路由表项为第二边界路由器根据目标路由刷新本地路由表项得到的,第二边界路由器的本地路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为虚拟ip地址,第二路由表项中目的ip地址为第二客户端的ip地址对应的下一跳地址为从ip地址;发送单元150还用于将第四数据包发送给第二客户端。
265.为了简便陈述,本实施例并没有对vxlan网络的具体结构及连接关系展开描述,具体请参加图1、图6及其相关描述。本实施例中也没有对vxlan隧道的建立过程、第一evpn路由和第二evpn路由的生成过程、第一边界路由器的本地路由表项、第二边界路由器的本地路由表项、第一路由表项以及第二路由表项等路由表项的生成过程展开描述,具体请参见图1、图6及其相关描述。本实施例中还没有对第一数据包、第二数据包、第三数据包、第四数据包以及第一路由更新消息的发送过程展开描述,具体请参见图1、图6、图10至图15以及相关描述。需要说明的,本实施中的第一边界路由器、第一rr、第一双活网关分别对应于图1或者图6中的第一边界叶节点border leaf1,第一脊节点spine1、第一双活网关server leaf1。当本实施中的第一网关设备为主设备,第二网关设备为备设备时,第一网关设备、第二网关设备、第一客户端和第二客户端分别对应于图1或者图6中的设备b、设备a、第一客户端pc1、第三客户端pc3;当本实施中的第一网关设备为备设备,第二网关设备为主设备时,第一网关设备、第二网关设备、第一客户端和第二客户端分别对应于图1或者图6中的设备a、设备b、第一客户端pc1和第二客户端pc2。本实施例中的第二边界路由器、第二rr、第二双活网关分别对应图6中的第二边界叶节点border leaf2、第二脊节点spine2、第二双活网关server leaf2。
266.上述方案中,第一网关设备具有两个vtep ip地址:虚拟ip地址和第一从ip地址,第二网关设备具有两个vtep ip地址:虚拟ip地址和第二从ip地址。当第一网关设备和第二网关设备的peer-link不存在故障时,第一网关设备的ip地址为虚拟ip地址;当第一网关设备和第二网关设备之间的peer-link存在故障时,第一网关设备将第一网关设备的vtep ip
地址更改为第一从ip地址,从而避免了如图3至图5示出的丢包问题以及图7至图9示出的路由环路问题。
267.参见图18,图18是本技术提供的另一种第一网关设备的结构示意图,第一网关设备100包括处理器210、通信接口220和存储器230。其中,处理器210、通信接口220以及存储器230通过总线240进行耦合。
268.处理器210可以是cpu,通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件(programmable logic device,pld)、晶体管逻辑器件、硬件部件或者其任意组合。处理器210可以实现或执行结合本技术公开内容所描述的各种示例性的方法。具体的,处理器210读取存储器230中存储的程序代码,并与通信接口220配合执行s101-s103的部分或者全部步骤。
269.通信接口220可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、控制器局域网络接口、局域互联网络(local interconnect network,lin)以及flexray接口,无线接口可以是蜂窝网络接口或使用无线局域网接口等。具体的,通信接口220可以与网络设备250连接,网络设备250可以包括交换机、路由器、客户端等等。
270.存储器230可以包括易失性存储器,例如随机存取存储器(random access memory,ram);存储器230也可以包括非易失性存储器,例如只读存储器(read only memory,rom)、快闪存储器、硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd),存储器230还可以包括上述种类的存储器的组合。存储器230可以存储有程序代码以及程序数据。其中,程序代码由图17示出的第一网关设备中的部分或者全部单元的代码组成,例如,evpn组件、vpn组件。程序数据由图17示出的第一网关设备在运行程序的过程中产生的数据,例如,客户端的arp表项、客户端的mac表项以及路由表项等等。
271.总线240可以是控制器局域网络(controller area network,can)或其他实现内部总线。总线240可以分为地址总线、数据总线、控制总线等。为了便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
272.本技术还提供了一种计算机存储介质,上述计算机存储介质存储有计算机程序,上述计算机程序被硬件(例如处理器等)执行,以实现本技术提供的路由处理方法中的部分或全部步骤。
273.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(如,同轴电缆、光纤、数字用户线)或无线(如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含
一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(如,软盘、存储盘、磁带)、光介质(如,dvd)、或者半导体介质(如,ssd))等。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
274.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如以上所描述的装置实施例仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可结合或者可以集成到另一个系统,或一些特征可以忽略或不执行。另一点,所显示或讨论的相互之间的间接耦合或者直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
275.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例的方案的目的。
276.另外,在本技术各实施例中的各功能单元可集成在一个处理单元中,也可以是各单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
277.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质例如可包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或光盘等各种可存储程序代码的介质。
278.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1