转发表生成方法及装置与流程

文档序号:16097143发布日期:2018-11-27 23:42阅读:646来源:国知局

本发明涉及通信技术领域,尤其涉及一种转发表生成方法及装置。



背景技术:

以太网虚拟专用网络(英文:Ethernet Virtual Private Network,简称:EVPN)是一种二层虚拟专用网络(英文:Virtual Private Network,简称:VPN)技术,控制平面采用多协议边界网关协议(英文:Multi-Protocol Border Gateway Protocol,简称:MP-BGP)通告EVPN路由信息,数据平面采用虚似扩展局域网(英文:Virtual Extensible Local Area Network,简称:VXLAN)封装方式转发报文。

跨设备链路聚合组(英文:Multi-Chassis Link Aggregation,简称:MLAG)是一种实现跨设备链路聚合技术,通过将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到设备级,由此实现提供设备级冗余保护和流量负载分担。

图1示出相关技术中的部署有MLAG的EVPN组网的示意图。如图1所示,VTEP1和VTEP2之间通过对等链路(英文:Peer-Link)连接,组成MLAG。在VTEP3和MLAG之间建立VXLAN隧道Tunnel1,VM3访问VM1和VM2的流量均通过Tunnel1负载分担到VTEP1和VTEP2。在MLAG的Peer-Link变为不可用Down状态时,VTEP1和VTEP2组成的MLAG将分裂。VTEP3和MLAG之间建立的Tunnel1将无法转发流量,造成流量转发中断。



技术实现要素:

有鉴于此,本发明提出了一种转发表生成方法及装置,以解决相关技术中部署有MLAG的EVPN组网存在的流量转发中断的问题。

在第一方面,本发明提出了一种转发表生成方法,第一VXLAN隧道端点VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述方法适用于第一VTEP,所述方法包括:

通过第一端口接收第一虚拟机VM发送的第一地址解析协议ARP信息;

若所述第一端口为分布式聚合接口,则获取第一地址信息,所述第一地址信息包括至少两个所述第一VM接入的网络节点的IP地址;

向第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和所述第一地址信息,用于所述第三VTEP根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

结合第一方面,在第一种实现方式中,所述第一地址信息包括:所述MLAG的IP地址、所述第一VTEP的IP地址和所述第二VTEP的IP地址中的至少两项;

其中,所述MLAG的IP地址,用于所述第三VTEP确定所述第一出端口为所述MLAG与所述第三VTEP之间建立的隧道的隧道标识;

所述第一VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第一VTEP与所述第三VTEP之间建立的隧道的隧道标识;

所述第二VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第二VTEP与所述第三VTEP之间建立的隧道的隧道标识。

结合第一方面,在第二种实现方式中,所述方法还包括:

通过第二端口接收第二VM发送的第二ARP信息;

若所述第二端口不为分布式聚合接口,则获取所述第二VM接入的所述第一VTEP的IP地址;

向所述第三VTEP发送第二EVPN路由信息,所述第二EVPN路由信息包括所述第二ARP信息和所述第一VTEP的IP地址,用于所述第三VTEP根据所述第二ARP信息和所述第一VTEP的IP地址,生成用于向所述第二VM转发报文的转发表,所述转发表包括的第二出端口为根据所述第一VTEP的IP地址确定的隧道的隧道标识。

结合第一方面,在第三种实现方式中,所述向第三VTEP发送第一EVPN路由信息之后,所述方法还包括:

在检测到所述第一端口不为分布式聚合接口时,生成表示所述第一端口不为分布式聚合接口的第一通知消息;

向所述第二VTEP发送所述第一通知消息,用于所述第二VTEP向所述第三VTEP发送第三EVPN路由信息,所述第三EVPN路由信息包括所述第一ARP信息和所述第一VM接入的所述第二VTEP的IP地址。

结合第一方面的第三种实现方式,在第四种实现方式中,所述方法还包括:

在检测到所述第一端口恢复为分布式聚合接口时,生成表示所述第一端口恢复为分布式聚合接口的第二通知消息;

向所述第二VTEP发送所述第二通知消息,用于所述第二VTEP向所述第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括所述第一ARP信息和所述第一地址信息。

在第二方面,本发明提出了一种转发表生成方法,第一VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述方法适用于第三VTEP,所述方法包括:

接收所述第一VTEP发送的第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和第一地址信息,所述第一地址信息包括至少两个第一VM接入的网络节点的IP地址;

根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

结合第二方面,在第一种实现方式中,所述接收第一VTEP发送的第一EVPN路由信息之后,所述方法还包括:

接收所述第二VTEP发送的第二EVPN路由信息,所述第二EVPN路由信息包括第一ARP信息和第二地址信息,所述第二地址信息包括至少两个第一VM接入的网络节点的IP地址;

根据所述第一ARP信息和所述第二地址信息,对已生成的用于向所述第一VM转发报文的转发表进行更新,所述转发表包括的第一出端口还包括根据所述第二地址信息确定的隧道的隧道标识。

在第三方面,本发明提出了一种转发表生成装置,第一VXLAN隧道端点VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述装置适用于第一VTEP,所述装置包括:

ARP信息接收模块,用于通过第一端口接收第一虚拟机VM发送的第一地址解析协议ARP信息;

获取模块,用于若所述第一端口为分布式聚合接口,则获取第一地址信息,所述第一地址信息包括至少两个所述第一VM接入的网络节点的IP地址;

EVPN路由信息发送模块,用于向第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和所述第一地址信息,用于所述第三VTEP根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

结合第三方面,在第一种实现方式中,所述第一地址信息包括:所述MLAG的IP地址、所述第一VTEP的IP地址和所述第二VTEP的IP地址中的至少两项;

其中,所述MLAG的IP地址,用于所述第三VTEP确定所述第一出端口为所述MLAG与所述第三VTEP之间建立的隧道的隧道标识;

所述第一VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第一VTEP与所述第三VTEP之间建立的隧道的隧道标识;

所述第二VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第二VTEP与所述第三VTEP之间建立的隧道的隧道标识。

结合第三方面,在第二种实现方式中,所述装置还包括:

所述ARP信息接收模块,还用于通过第二端口接收第二VM发送的第二ARP信息;

所述获取模块,还用于若所述第二端口不为分布式聚合接口,则获取所述第二VM接入的所述第一VTEP的IP地址;

所述EVPN路由信息发送模块,还用于向所述第三VTEP发送第二EVPN路由信息,所述第二EVPN路由信息包括所述第二ARP信息和所述第一VTEP的IP地址,用于所述第三VTEP根据所述第二ARP信息和所述第一VTEP的IP地址,生成用于向所述第二VM转发报文的转发表,所述转发表包括的第二出端口为根据所述第一VTEP的IP地址确定的隧道的隧道标识。

结合第三方面,在第三种实现方式中,所述装置还包括:

检测模块,用于在检测到所述第一端口不为分布式聚合接口时,生成表示所述第一端口不为分布式聚合接口的第一通知消息;

消息发送模块,用于向所述第二VTEP发送所述第一通知消息,用于所述第二VTEP向所述第三VTEP发送第三EVPN路由信息,所述第三EVPN路由信息包括所述第一ARP信息和所述第一VM接入的所述第二VTEP的IP地址。

结合第三方面的第三种实现方式,在第四种实现方式中,所述装置还包括:

所述检测模块,还用于在检测到所述第一端口恢复为分布式聚合接口时,生成表示所述第一端口恢复为分布式聚合接口的第二通知消息;

所述消息发送模块,还用于向所述第二VTEP发送所述第二通知消息,用于所述第二VTEP向所述第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括所述第一ARP信息和所述第一地址信息。

在第四方面,本发明提出了一种转发表生成装置,第一VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述装置适用于第三VTEP,所述装置包括:

EVPN路由信息接收模块,用于接收所述第一VTEP发送的第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和第一地址信息,所述第一地址信息包括至少两个第一VM接入的网络节点的IP地址;

转发表生成模块,用于根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

结合第四方面,在第一种实现方式中,所述装置还包括:

所述EVPN路由信息接收模块,还用于接收所述第二VTEP发送的第二EVPN路由信息,所述第二EVPN路由信息包括第一ARP信息和第二地址信息,所述第二地址信息包括至少两个第一VM接入的网络节点的IP地址;

转发表更新模块,用于根据所述第一ARP信息和所述第二地址信息,对已生成的用于向所述第一VM转发报文的转发表进行更新,所述转发表包括的第一出端口还包括根据所述第二地址信息确定的隧道的隧道标识。

在第五方面,本发明提供了一种转发表生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。

在第六方面,本发明提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。

本发明实施例的转发表生成方法及装置,第一VTEP和第二VTEP组成MLAG,该方法适用于第一VTEP,通过第一端口接收第一VM发送的第一ARP信息,若第一端口为分布式聚合接口,则获取第一地址信息,第一地址信息包括至少两个第一VM接入的网络节点的IP地址,向第三VTEP发送第一EVPN路由信息,第一EVPN路由信息包括第一ARP信息和第一地址信息,用于第三VTEP根据第一ARP信息和第一地址信息,生成用于向第一VM转发报文的转发表,转发表包括的第一出端口为根据第一地址信息确定的隧道的隧道标识,由此在第一VTEP和第二VTEP组成的MLAG分裂之后,能够通过第一VTEP和/或第二VTEP与第三VTEP之间建立的隧道转发流量,将组网从链路级保护提高到隧道级保护,从而增加业务的安全性和持续性。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出相关技术中的部署有MLAG的EVPN组网的示意图;

图2示出根据本发明一实施例的部署有MLAG的EVPN组网的示意图;

图3示出根据本发明一实施例的转发表生成方法的流程图;

图4示出根据本发明一实施例的部署有MLAG的EVPN组网的示意图;

图5示出根据本发明一实施例的转发表生成方法的流程图;

图6示出根据本发明一实施例的转发表生成方法的流程图;

图7示出根据本发明一实施例的转发表生成装置的框图;

图8示出根据本发明一实施例的转发表生成装置的框图;

图9示出根据本发明一实施例的转发表生成装置的框图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于预警,如在此所使用的词语“若”可以被理解成为“在……时”或“当……时”或“响应于确定”等。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例中涉及的部分技术术语进行简单说明。

VXLAN:是基于网络协议(英文:Internet Protocol,简称:IP)网络、采用介质访问控制封装用户数据报协议(英文:Media Access Control in User Datagram Protocol,简称:MAC in UDP)封装形式的二层VPN技术。

虚拟机(英文:Virtual Machine,简称:VM):在一台服务器上可以创建一台或多台VM,不同的VM可以属于不同的VXLAN。属于相同VXLAN的VM处于同一个逻辑二层网络,彼此之间二层通信交互;属于不同VXLAN的VM之间二层隔离。

VXLAN隧道端点(英文:VXLAN Tunnel End Point,简称:VTEP):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是VM所在的服务器。

VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头之后,通过VXLAN隧道将封装之后的报文转发给远端VTEP,远端VTEP对其进行解封装。

EVPN:是一种构建数据中心二层网络互联技术,通过扩展MP-BGP协议来传递网络节点的MAC地址和ARP信息等,通过生成的MAC表项和路由表项进行二/三层报文转发,以实现数据中心互联的目的。

二类EVPN路由信息(英文:MAC/IP Advertisement Route,MAC/IP广播路由):用来通告ARP信息,即用来通告MAC/IP地址信息。

三类EVPN路由信息(英文:Inclusive Multicast Ethernet Tag Route,包含多播以太网标签路由):用来通告VTEP及其所属VXLAN,以实现远端VTEP自动发现、自动建立VXLAN隧道、自动创建VXLAN广播表等。

如图1所示,VTEP1的IP地址为1.1.1.1,VTEP2的IP地址为2.2.2.2,VTEP3的IP地址为3.3.3.3。VTEP1和VTEP2之间通过Peer-Link连接,组成MLAG,MLAG的IP地址为1.2.3.4。VM1的IP地址为10.1.1.2,VM1分别接入VTEP1和VTEP2。VM2的IP地址为11.1.1.2,VM2接入VTEP2。VM3的IP地址为12.1.1.2,VM3接入VTEP3。Port1和Port2为分布式聚合接口,Port3不为分布式聚合接口。

如图1所示,在VTEP3和MLAG之间建立VXLAN隧道Tunnel1,Tunnel1的源IP地址为3.3.3.3,目的IP地址为1.2.3.4。通过Tunnel1的流量通过哈希(英文:Hash)负载分担到负载分担到VTEP1和VTEP2上。VM3访问VM1和VM2的流量均通过Tunnel1负载分担到VTEP1和VTEP2。在MLAG的Peer-Link变为不可用Down状态时,VTEP1和VTEP2组成的MLAG将分裂。VTEP3和MLAG之间建立的Tunnel1将无法转发流量,造成流量转发中断。

图2示出根据本发明一实施例的部署有MLAG的EVPN组网的示意图。如图2所示,VTEP1的IP地址为1.1.1.1,VTEP2的IP地址为2.2.2.2,VTEP3的IP地址为3.3.3.3。VTEP1和VTEP2之间通过Peer-Link连接,组成MLAG,MLAG的IP地址为1.2.3.4。VM1的IP地址为10.1.1.2,VM1分别接入VTEP1和VTEP2。VM2的IP地址为11.1.1.2,VM2接入VTEP2。VM3的IP地址为12.1.1.2,VM3接入VTEP3。Port1和Port2为分布式聚合接口,Port3不为分布式聚合接口。

如图2所示,VTEP1向VTEP3发送两个三类EVPN路由信息。其中,一个三类EVPN路由信息携带MLAG的IP地址1.2.3.4,另一个三类EVPN路由信息携带VTEP1的IP地址1.1.1.1。VTEP2向VTEP3发送两个三类EVPN路由信息。其中,一个三类EVPN路由信息携带MLAG的IP地址1.2.3.4,另一个三类EVPN路由信息携带VTEP2的IP地址2.2.2.2。

如图2所示,VTEP3接收VTEP1发送的两个三类EVPN路由信息,并接收VTEP2发送的两个三类EVPN路由信息。VTEP3根据MLAG的IP地址1.2.3.4,建立VTEP3和MLAG之间的VXLAN隧道Tunnel1;VTEP3根据VTEP1的IP地址1.1.1.1,建立VTEP3和VTEP1之间的VXLAN隧道Tunnel2;VTEP3根据VTEP2的IP地址2.2.2.2,建立VTEP3和VTEP2之间的VXLAN隧道Tunnel3。

综上所述,如图2所示,VTEP3建立3个VXLAN隧道,具体包括:

Tunnel1:源IP地址为3.3.3.3,目的IP地址为1.2.3.4;

Tunnel2:源IP地址为3.3.3.3,目的IP地址为1.1.1.1;

Tunnel3:源IP地址为3.3.3.3,目的IP地址为2.2.2.2。

针对上述相关技术中所存在的技术问题,图3示出根据本发明一实施例的转发表生成方法的流程图。第一VTEP和第二VTEP组成MLAG,该转发表生成方法适用于第一VTEP,包括步骤S31至步骤S33。

需要说明的是,本领域技术人员能够理解,本发明实施例中的第一VTEP和第二VTEP具有同等的地位。适用于第一VTEP的转发表生成方法同样也适用于第二VTEP,本发明实施例对此不作限制。

在步骤S31中,通过第一端口接收第一VM发送的第一ARP信息。

其中,第一ARP信息包括第一VM的IP地址和MAC地址。

作为一个示例,如图2所示,若第一VM为VM1,则在VM1上线时,由于VM1分别接入VTEP1和VTEP2,VM1分别向VTEP1和VTEP2发送ARP信息1。其中,ARP信息1包括VM1的IP地址10.1.1.2和MAC地址。VTEP1通过Port1接收VM1发送的ARP信息1。VTEP2通过Port2接收VM1发送的ARP信息1。

在步骤S32中,若第一端口为分布式聚合接口,则获取第一地址信息,第一地址信息包括至少两个第一VM接入的网络节点的IP地址。

其中,第一VM接入的网络节点可以为物理设备,也可以为逻辑设备。

作为一个示例,如图2所示,若第一VM为VM1,则VM1接入的网络节点可以为VTEP1、VTEP2以及VTEP1和VTEP2组成的MLAG。

在一种实现方式中,第一地址信息包括:MLAG的IP地址、第一VTEP的IP地址和第二VTEP的IP地址中的至少两项。

示例一,第一地址信息包括:MLAG的IP地址和第一VTEP的IP地址。

承接上述步骤S31的示例,如图2所示,VTEP1通过Port1接收VM1发送的ARP信息1。由于Port1为分布式聚合接口,则VTEP1获取地址信息1。其中,地址信息1包括MLAG的IP地址1.2.3.4和VTEP1的IP地址1.1.1.1。

如图2所示,VTEP2通过Port2接收VM1发送的ARP信息1。由于Port2为分布式聚合接口,则VTEP2获取地址信息2。其中,地址信息2包括MLAG的IP地址1.2.3.4和VTEP2的IP地址2.2.2.2。

示例二,第一地址信息包括:MLAG的IP地址、第一VTEP的IP地址和第二VTEP的IP地址。

承接上述步骤S31的示例,如图2所示,VTEP1通过Port1接收VM1发送的ARP信息1。由于Port1为分布式聚合接口,则VTEP1获取地址信息3。其中,地址信息3包括MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2。

如图2所示,VTEP2通过Port2接收VM1发送的ARP信息1。由于Port2为分布式聚合接口,则VTEP2获取地址信息4。其中,地址信息4包括MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2。

在步骤S33中,向第三VTEP发送第一EVPN路由信息,第一EVPN路由信息包括第一ARP信息和第一地址信息,用于第三VTEP根据第一ARP信息和第一地址信息,生成用于向第一VM转发报文的转发表,转发表包括的第一出端口为根据第一地址信息确定的隧道的隧道标识。

其中,第一EVPN路由信息为二类EVPN路由信息。

在一种实现方式中,MLAG的IP地址,用于第三VTEP确定第一出端口为MLAG与第三VTEP之间建立的隧道的隧道标识;第一VTEP的IP地址,用于第三VTEP确定第一出端口为第一VTEP与第三VTEP之间建立的隧道的隧道标识;第二VTEP的IP地址,用于第三VTEP确定第一出端口为第二VTEP与第三VTEP之间建立的隧道的隧道标识。

示例一,承接上述步骤S32的示例一,如图2所示,在获取包括MLAG的IP地址1.2.3.4和VTEP1的IP地址1.1.1.1的地址信息1之后,VTEP1生成EVPN路由信息1。其中,EVPN路由信息1包括ARP信息1、MLAG的IP地址1.2.3.4和VTEP1的IP地址1.1.1.1。VTEP1向VTEP3发送EVPN路由信息1。

如图2所示,在获取包括MLAG的IP地址1.2.3.4和VTEP2的IP地址2.2.2.2的地址信息2之后,VTEP2生成EVPN路由信息2。其中,EVPN路由信息2包括ARP信息1、MLAG的IP地址1.2.3.4和VTEP1的IP地址2.2.2.2。VTEP2向VTEP3发送EVPN路由信息2。

如图2所示,VTEP3接收VTEP1发送的EVPN路由信息1。VTEP3还接收VTEP2发送的EVPN路由信息2。VTEP3根据EVPN路由信息1包括的ARP信息1、MLAG的IP地址1.2.3.4和VTEP1的IP地址1.1.1.1,确定用于向VM1转发报文的出端口为Tunnel1和Tunnel2。同理,VTEP3根据EVPN路由信息2包括的ARP信息1、MLAG的IP地址1.2.3.4和VTEP2的IP地址2.2.2.2,确定用于向VM1转发报文的出端口为Tunnel1和Tunnel3。

由此,VTEP3对用于向VM1转发报文的出端口进行叠加去重处理,得到用于向VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。VTEP3生成用于向VM1转发报文的转发表。其中,VTEP3已生成的转发表中VM1对应的出端口保存有Tunnel1的标识、Tunnel2的标识和Tunnel3的标识。

如图2所示,VM3向VTEP3发送IP报文1,IP报文1的源IP地址为12.1.1.2,目的IP地址为10.1.1.2。VTEP3接收VM3发送的IP报文1,通过查找转发表,发现用于向IP地址为10.1.1.2的VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。VTEP3通过Hash确定转发报文1的出端口,例如为Tunnel2。VTEP3对IP报文1进行封装,得到VXLAN报文1,并将VXLAN报文1通过Tunnel2发出。VTEP1接收VTEP3发送的VXLAN报文1,并对VXLAN报文1解封装,得到IP报文1。VTEP1根据IP报文1的目的IP地址10.1.1.2,向VM1发送IP报文1。

示例二,承接上述步骤S32的示例二,如图2所示,在获取包括MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2的地址信息3之后,VTEP1生成EVPN路由信息3。其中,EVPN路由信息3包括ARP信息1、MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2。VTEP1向VTEP3发送EVPN路由信息3。

如图2所示,在获取包括MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2的地址信息4之后,VTEP2生成EVPN路由信息4。其中,EVPN路由信息4包括ARP信息1、MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2。VTEP2向VTEP3发送EVPN路由信息4。

如图2所示,VTEP3接收VTEP1发送的EVPN路由信息3。VTEP3还接收VTEP2发送的EVPN路由信息4。VTEP3根据EVPN路由信息3包括的ARP信息1、MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2,确定用于向VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。同理,VTEP3根据EVPN路由信息4包括的ARP信息1、MLAG的IP地址1.2.3.4、VTEP1的IP地址1.1.1.1和VTEP2的IP地址2.2.2.2,确定用于向VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。

由此,VTEP3对用于向VM1转发报文的出端口进行叠加去重处理,得到用于向VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。VTEP3生成用于向VM1转发报文的转发表。其中,VTEP3已生成的转发表中VM1对应的出端口保存有Tunnel1的标识、Tunnel2的标识和Tunnel3的标识。

如图2所示,VM3向VTEP3发送IP报文1,IP报文1的源IP地址为12.1.1.2,目的IP地址为10.1.1.2。VTEP3接收VM3发送的IP报文1,通过查找转发表,发现用于向IP地址为10.1.1.2的VM1转发报文的出端口为Tunnel1、Tunnel2和Tunnel3。VTEP3通过Hash确定转发报文1的出端口,例如为Tunnel2。VTEP3对IP报文1进行封装,得到VXLAN报文1,并将VXLAN报文1通过Tunnel2发出。VTEP1接收VTEP3发送的VXLAN报文1,并对VXLAN报文1解封装,得到IP报文1。VTEP1根据IP报文1的目的IP地址10.1.1.2,向VM1发送IP报文1。

相关技术中,如图1所示,只在VTEP3和MLAG之间建立一个VXLAN隧道Tunnel1,VM3访问VM1的流量通过Tunnel1负载分担到VTEP1和VTEP2。在该种情况下,物理链路的实际负载分担会存在不均衡的现象。

在本发明实施例中,如图2所示,通过在VTEP3和MLAG、VTEP1、VTEP2之间建立VXLAN隧道Tunnel1、Tunnel2、Tunnel3,实现VM3访问VM1的流量通过Tunnel1、Tunnel2和Tunnel3负载分担到VTEP1和VTEP2,由此能够提高物理链路的实际负载分担的均衡程度。

相关技术中,如图1所示,只在VTEP3和MLAG之间建立一个VXLAN隧道Tunnel1,若MLAG的Peer-Link变为不可用Down状态,则VTEP1和VTEP2组成的MLAG将分裂。VTEP3和MLAG之间建立的Tunnel1将无法转发流量,造成流量转发中断。

在本发明实施例中,如图2所示,通过在VTEP3和MLAG、VTEP1、VTEP2之间建立VXLAN隧道Tunnel1、Tunnel2、Tunnel3,实现在VTEP1和VTEP2组成的MLAG分裂之后,VTEP3和VTEP1、VTEP2之间建立的Tunnel2、Tunnel3仍能够转发流量,将组网从链路级保护提高到隧道级保护,从而增加业务的安全性和持续性。

在一种实现方式中,向第三VTEP发送第一EVPN路由信息之后,该方法还包括:在检测到第一端口不为分布式聚合接口时,生成表示第一端口不为分布式聚合接口的第一通知消息;向第二VTEP发送第一通知消息,用于第二VTEP向第三VTEP发送第三EVPN路由信息,第三EVPN路由信息包括第一ARP信息和第一VM接入的第二VTEP的IP地址。

作为一个示例,在第一VM和第一VTEP之间的链路变为不可用Down状态时,第一端口不为分布式聚合接口。本发明实施例不限制造成第一端口不为分布式聚合接口的具体情况。

本发明实施例不限制第一VTEP检测第一端口是否为分布式聚合接口的方法。例如,第一VTEP监听或轮询第一端口。如果第一端口属于分布式聚合组,则第一VTEP确定第一端口为分布式聚合接口。如果第一端口不属于分布式聚合组,则第一VTEP确定第一端口不为分布式聚合接口。

图4示出根据本发明一实施例的部署有MLAG的EVPN组网的示意图。承接上述步骤S33的示例,如图4所示,在VTEP3生成用于向VM1转发报文的转发表之后,若VM1与VTEP1之间的链路变为不可用Down状态,则VTEP1检测到Port1不为分布式聚合接口。VTEP1生成表示Port1不为分布式聚合接口的第一通知消息,并通过Peer-Link向VTEP2发送第一通知消息。VTEP2在接收VTEP1发送的第一通知消息之后,生成EVPN路由信息5。其中,EVPN路由信息5包括ARP信息1和VTEP2的IP地址2.2.2.2。VTEP2向VTEP3发送EVPN路由信息5。

如图4所示,VTEP3接收VTEP2发送的EVPN路由信息5,并根据EVPN路由信息5包括的ARP信息1和VTEP2的IP地址2.2.2.2,确定用于向VM1转发报文的出端口为Tunnel3。由此,用于向VM1转发报文的出端口由Tunnel1、Tunnel2和Tunnel3变为Tunnel1,则VTEP3已生成的转发表中VM1对应的出端口保存有Tunnel3的标识。

如图4所示,VM3向VTEP3发送IP报文1,IP报文1的源IP地址为12.1.1.2,目的IP地址为10.1.1.2。VTEP3接收VM3发送的IP报文1,通过查找转发表,发现用于向IP地址为10.1.1.2的VM1转发报文的出端口为Tunnel3。VTEP3对IP报文1进行封装,得到VXLAN报文1,并将VXLAN报文1通过Tunnel3发出。VTEP2接收VTEP3发送的VXLAN报文1,并对VXLAN报文1解封装,得到IP报文1。VTEP2根据IP报文1的目的IP地址10.1.1.2,向VM1发送IP报文1。

相关技术中,如图1所示,只在VTEP3和MLAG之间建立一个VXLAN隧道Tunnel1,若VM1与VTEP1之间的链路变为不可用Down状态,则在Port1不为分布式聚合接口之后,VM3访问VM1的流量仍通过Tunnel1负载分担到VTEP1和VTEP2,由此到达VTEP1的流量由VTEP1通过Peer-Link转发到VTEP2,再由VTEP2转发到VM1,造成流量绕行,浪费带宽资源。

在本发明实施例中,如图4所示,若VM1与VTEP1之间的链路变为不可用Down状态,则VTEP3已生成的转发表中VM1对应的出端口保存有Tunnel3的标识。VM3访问VM1的流量通过Tunnel3转发到VTEP2,再由VTEP2转发到VM1,不会造成流量绕行,实现节省带宽资源。

在一种实现方式中,向第三VTEP发送第一EVPN路由信息之后,该方法还包括:在检测到第一端口不为分布式聚合接口时,向第三VTEP发送第三EVPN路由信息,第三EVPN路由信息包括第一ARP信息和第一VM接入的第二VTEP的IP地址。

需要说明的是,本领域技术人员能够理解,在检测到第一端口不为分布式聚合接口时,第一VTEP和/或第二VTEP向第三VTEP发送第三EVPN路由信息均可,只要能够实现第三VTEP接收第三EVPN路由信息,并根据第三EVPN路由信息包括的第一ARP信息和第一VM接入的第二VTEP的IP地址,更新VTEP3中已生成的转发表中VM1对应的出端口即可。

在一种实现方式中,该方法还包括:在检测到第一端口恢复为分布式聚合接口时,生成表示第一端口恢复为分布式聚合接口的第二通知消息;向第二VTEP发送第二通知消息,用于第二VTEP向第三VTEP发送第一EVPN路由信息,第一EVPN路由信息包括第一ARP信息和第一地址信息。

在一种实现方式中,该方法还包括:在检测到第一端口恢复为分布式聚合接口时,向第三VTEP发送第一EVPN路由信息,第一EVPN路由信息包括第一ARP信息和第一地址信息。

图5示出根据本发明一实施例的转发表生成方法的流程图。第一VTEP和第二VTEP组成MLAG,该转发表生成方法适用于第一VTEP,包括步骤S51至步骤S53。

在步骤S51中,通过第二端口接收第二VM发送的第二ARP信息。

其中,第二ARP信息包括第二VM的IP地址和MAC地址。

作为一个示例,如图2所示,若第二VM为VM2,则在VM2上线时,由于VM2接入VTEP1,VM2向VTEP1发送ARP信息2。其中,ARP信息2包括VM2的IP地址11.1.1.2和MAC地址。VTEP1通过Port3接收VM2发送的ARP信息2。

在步骤S52中,若第二端口不为分布式聚合接口,则获取第二VM接入的第一VTEP的IP地址。

在步骤S53中,向第三VTEP发送第二EVPN路由信息,第二EVPN路由信息包括第二ARP信息和第一VTEP的IP地址,用于第三VTEP根据第二ARP信息和第一VTEP的IP地址,生成用于向第二VM转发报文的转发表,转发表包括的第二出端口为根据第一VTEP的IP地址确定的隧道的隧道标识。

其中,第二EVPN路由信息为二类EVPN路由信息。

承接上述步骤S51的示例,如图2所示,VTEP1通过Port3接收VM2发送的ARP信息2。由于Port3不为分布式聚合接口,则VTEP1获取VTEP1的IP地址1.1.1.1。VTEP1生成EVPN路由信息6。其中,EVPN路由信息6包括ARP信息2和VTEP1的IP地址1.1.1.1。

如图2所示,VTEP1向VTEP3发送EVPN路由信息6。VTEP3接收VTEP1发送的EVPN路由信息6,并根据EVPN路由信息6包括的ARP信息2和VTEP1的IP地址1.1.1.1,确定用于向VM2转发报文的出端口为Tunnel2。VTEP3生成用于向VM2转发报文的转发表。其中,VTEP3已生成的转发表中VM2对应的出端口保存Tunnel2的标识。

如图2所示,VM3向VTEP3发送IP报文2,IP报文2的源IP地址为12.1.1.2,目的IP地址为11.1.1.2。VTEP3接收VM3发送的IP报文2,通过查找转发表,发现用于向IP地址为11.1.1.2的VM2转发报文的出端口为Tunnel2。VTEP3对IP报文2进行封装,得到VXLAN报文2,并将VXLAN报文2通过Tunnel2发出。VTEP1接收VTEP3发送的VXLAN报文2,并对VXLAN报文2解封装,得到IP报文2。VTEP1根据IP报文2的目的IP地址11.1.1.2,向VM2发送IP报文2。

相关技术中,如图1所示,只在VTEP3和MLAG之间建立一个VXLAN隧道Tunnel1,VM3访问VM2的流量通过Tunnel1负载分担到VTEP1和VTEP2,由此到达VTEP2的流量由VTEP2通过Peer-Link转发到VTEP1,再由VTEP1转发到VM2,造成流量绕行,浪费带宽资源。

在本发明实施例中,如图2所示,VTEP3已生成的转发表中VM2对应的出端口保存有Tunnel2的标识。VM3访问VM2的流量通过Tunnel2转发到VTEP1,再由VTEP1转发到VM1,不会造成流量绕行,实现节省带宽资源。

图6示出根据本发明一实施例的转发表生成方法的流程图。第一VTEP和第二VTEP组成MLAG,该转发表生成方法适用于第三VTEP,包括步骤S61和步骤S62。

在步骤S61中,接收第一VTEP发送的第一EVPN路由信息,第一EVPN路由信息包括第一ARP信息和第一地址信息,第一地址信息包括至少两个第一VM接入的网络节点的IP地址。

在步骤S62中,根据第一ARP信息和第一地址信息,生成用于向第一VM转发报文的转发表,转发表包括的第一出端口为根据第一地址信息确定的隧道的隧道标识。

针对步骤S61和步骤S62的描述可以参见图3对应的描述。

在一种实现方式中,在接收第一VTEP发送的第一EVPN路由信息之后,该方法还包括:接收第二VTEP发送的第二EVPN路由信息,第二EVPN路由信息包括第一ARP信息和第二地址信息,第二地址信息包括至少两个第一VM接入的网络节点的IP地址;根据第一ARP信息和第二地址信息,对已生成的用于向第一VM转发报文的转发表进行更新,转发表包括的第一出端口还包括根据第二地址信息确定的隧道的隧道标识。

针对步骤S61和步骤S62的描述可以参见图3对应的描述。

图7示出根据本发明一实施例的转发表生成装置的框图。第一VXLAN隧道端点VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述装置适用于第一VTEP。如图7所示,该装置包括:

ARP信息接收模块71,用于通过第一端口接收第一虚拟机VM发送的第一地址解析协议ARP信息;获取模块72,用于若所述第一端口为分布式聚合接口,则获取第一地址信息,所述第一地址信息包括至少两个所述第一VM接入的网络节点的IP地址;EVPN路由信息发送模块73,用于向第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和所述第一地址信息,用于所述第三VTEP根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

在一种实现方式中,所述第一地址信息包括:所述MLAG的IP地址、所述第一VTEP的IP地址和所述第二VTEP的IP地址中的至少两项;其中,所述MLAG的IP地址,用于所述第三VTEP确定所述第一出端口为所述MLAG与所述第三VTEP之间建立的隧道的隧道标识;所述第一VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第一VTEP与所述第三VTEP之间建立的隧道的隧道标识;所述第二VTEP的IP地址,用于所述第三VTEP确定所述第一出端口为所述第二VTEP与所述第三VTEP之间建立的隧道的隧道标识。

在一种实现方式中,如图7所示,所述装置还包括:所述ARP信息接收模块71,还用于通过第二端口接收第二VM发送的第二ARP信息;所述获取模块72,还用于若所述第二端口不为分布式聚合接口,则获取所述第二VM接入的所述第一VTEP的IP地址;所述EVPN路由信息发送模块73,还用于向所述第三VTEP发送第二EVPN路由信息,所述第二EVPN路由信息包括所述第二ARP信息和所述第一VTEP的IP地址,用于所述第三VTEP根据所述第二ARP信息和所述第一VTEP的IP地址,生成用于向所述第二VM转发报文的转发表,所述转发表包括的第二出端口为根据所述第一VTEP的IP地址确定的隧道的隧道标识。

在一种实现方式中,如图7所示,所述装置还包括:检测模块74,用于在检测到所述第一端口不为分布式聚合接口时,生成表示所述第一端口不为分布式聚合接口的第一通知消息;消息发送模块75,用于向所述第二VTEP发送所述第一通知消息,用于所述第二VTEP向所述第三VTEP发送第三EVPN路由信息,所述第三EVPN路由信息包括所述第一ARP信息和所述第一VM接入的所述第二VTEP的IP地址。

在一种实现方式中,如图7所示,所述装置还包括:所述检测模块74,还用于在检测到所述第一端口恢复为分布式聚合接口时,生成表示所述第一端口恢复为分布式聚合接口的第二通知消息;所述消息发送模块75,还用于向所述第二VTEP发送所述第二通知消息,用于所述第二VTEP向所述第三VTEP发送第一EVPN路由信息,所述第一EVPN路由信息包括所述第一ARP信息和所述第一地址信息。

图8示出根据本发明一实施例的转发表生成装置的框图。第一VTEP和第二VTEP组成跨设备链路聚合组MLAG,所述装置适用于第三VTEP。如图8所示,所述装置包括:

EVPN路由信息接收模块81,用于接收所述第一VTEP发送的第一EVPN路由信息,所述第一EVPN路由信息包括第一ARP信息和第一地址信息,所述第一地址信息包括至少两个第一VM接入的网络节点的IP地址;转发表生成模块82,用于根据所述第一ARP信息和所述第一地址信息,生成用于向所述第一VM转发报文的转发表,所述转发表包括的第一出端口为根据所述第一地址信息确定的隧道的隧道标识。

在一种实现方式中,如图8所示,所述装置还包括:所述EVPN路由信息接收模块81,还用于接收所述第二VTEP发送的第二EVPN路由信息,所述第二EVPN路由信息包括第一ARP信息和第二地址信息,所述第二地址信息包括至少两个第一VM接入的网络节点的IP地址;转发表更新模块83,用于根据所述第一ARP信息和所述第二地址信息,对已生成的用于向所述第一VM转发报文的转发表进行更新,所述转发表包括的第一出端口还包括根据所述第二地址信息确定的隧道的隧道标识。

本发明实施例的转发表生成装置,第一VTEP和/或第二VTEP与第三VTEP之间建立VXLAN隧道,由此在第一VTEP和第二VTEP组成的MLAG分裂之后,能够通过第一VTEP和/或第二VTEP与第三VTEP之间建立的隧道转发流量,将组网从链路级保护提高到隧道级保护,从而增加业务的安全性和持续性。

图9示出根据本发明一实施例的转发表生成装置的框图。参照图9,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与转发表生成逻辑对应的机器可执行指令以执行上文所述的转发表生成方法。

本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是随机存取存储器:(英文:Radom Access Memory,简称:RAM)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1