在典型的企业级数据中心部署中数据中心可能跨地域部署,并且会有不同的业务部署在跨地域的数据中心里。这就意味着网络要有能力在两个或者多个数据中心之间进行扩展,从而让跨地域的业务之间可以进行二三层通信。华云软件定义网络支持基于EVPN VxLAN 的两个及以上数据中心的连接,简称DCI(Data Center Interconnect),即华云软件定义网络支持多数据中心之间以MP-BGP EVPN 作为控制平面的VxLAN Overlay网络。
VxLAN 概述
顾名思义,VXLAN旨在提供与VLAN相同的以太网二层网络服务,但具有更大的扩展性和灵活性。 与VLAN相比,VXLAN具有以下优点:
在整个数据中心灵活放置多租户段:它提供了一种解决方案,在底层网络基础设施上扩展二层网络段,以便租户工作负载可以放置在跨数据中心的物理Pod上。
可扩展性更强,可访问更多的二层网段:VLAN使用12位的VLAN ID来访问二层网段,因此只能访问4094个VLAN。 VXLAN使用一个24位的段ID,称为VXLAN网络标识符(VNID),它可以使1600万个VXLAN段同时存在于同一个管理域中。
更好地利用底层基础设施中的可用网络路径:VLAN使用生成树协议(Spanning Tree Protocol) 预防环路,通过阻塞冗余路径,最终网络中的一半网络链路不被有效使用。 VXLAN报文在底层网络中基于三层报头进行传输,可以充分利用三层路由、ECMP (equal-cost multipath)路由和链路聚合协议,使用所有可用路径。
VXLAN是一种基于三层网络的二层Overlay方案。 它使用MAC地址封装在UDP报文中 (MAC-in-Udp)来提供一种跨数据中心网络扩展二层网段的方法。 VXLAN是一种在公共物理基础设施上支持灵活的、大规模的多租户环境的解决方案。 物理数据中心网络的传输协议是IP + UDP。
VXLAN 报文格式:
MP-BGP EVPN 控制平面概述
MP-BGP EVPN是基于行业标准的VxLAN控制协议。 在EVPN之前,VxLAN Overlay网络以flood-and-learn模式运行。 在这种模式下,终端主机信息学习和VTEP发现都是数据平面驱动的,不需要控制协议在VTEP之间分发终端主机可达信息。 MP-BGP EVPN改变了这种模式。 它为远程VTEP背后的终端主机引入了控制平面学习。 它实现了控制平面和数据平面的分离,为VxLAN Overlay网络的二层转发和三层转发提供了统一的控制平面。
华云软件定义网络实现了MP-BGP EVPN的控制平面,提供了如下主要的优点:
MP-BGP EVPN协议基于行业标准,允许多厂商互操作。
它使控制平面学习终端主机第二层和第三层可达信息,使组织能够建立更健壮和可扩展的VxLAN Overlay网络。
采用稳定的MP-BGP VPN技术,支持可扩展的多租户VxLAN Overlay网络。
EVPN地址族携带二层和三层可达信息,从而在VxLAN Overlay网络中提供完整的桥接和路由。
通过对本地VTEP进行基于协议的主机MAC/IP路由分配和ARP (Address Resolution Protocol)抑制,最大限度地减少网络泛滥。
DCI互联
华云软件定义网络实现的DCI之间互联方式有多种,根据需求的不同可构建特定的互联方式。
DC之间直接EBGP互联
DC首先IBGP接入软件网关,软件网关之间EBGP互联
DC直接互联
DC间直接互联要求DC间控制器以及DC间数据通路三层互通。
当DC间控制器直接互联时,DC间支持丰富的功能集。其中Route Target路由条目作为MP EVPN的扩展属性,可以在DC间定制VPN路由,从而避免DC间巨量路由交互, 降低控制面带宽损耗。
DC之间通过软件网关互联
华云软件定义网络软件网关(华云软件定义网络GW)作为重要的辅助组件在DCI中扮演着VNI MAPPING的重要角色。SDN控制器中的路由条目通告给华云软件定义网络GW, 华云软件定义网络GW根据配置面的VNI MAPPING信息将转换EVPN路由中的Vxlan ID,Route Target以及修改路由下一跳为华云软件定义网络GW,然后通告给远端华云软件定义网络GW。远端华云软件定义网络GW再将以上信息根据配置修改后,将路由通告在于其互联的DC。
DC间网络二层互通
DC间二层互通的场景下
各DC中需要构建L2 BGP VPN,配置全局Route Target。
当DC中各自的虚拟网络关联到BGP VPN上后,华云软件定义网络控制器将虚拟网络路由以BGP EVPN type 2类型通告到远端DC。
Type2 路由格式:
远端DC根据路由的扩展属性Route Target将路由导入到相应的虚拟网络中,在二层表中安装对应路由。
华云软件定义网络控制器type2 路由
此外华云软件定义网络支持Type3 类型路由,数据面根据Type3 类型路由生成头端复制列表。并在二层表中生成广播列表,进而使得当Overlay网络中存在静默主机时,主动发送ARP请求获取对端虚拟工作负载的ARP地址。
Type3 路由格式:
华云软件定义网络控制器上的Type3路由条目
二层通信时虚机请求同网络虚机ARP地址,获取ARP地址后,查询二层桥接表,下一跳地址为远端DC Vtep或者如果有软件网关的场景下软件网关Vtep地址。 将原始报文封装后,外层报文为udp + vxlan, vxlan id为路由通告时携带的Label。
内外层报文如下图所示:
DC间网络三层互通
DC间三层通信的场景下,即为Vxlan Routing的场景。Vxlan Routing需要借助三层VNI,
三层VNI提供路由的路由实例上下文。
首先需要在各DC中创建Vxlan Routing路由器,将虚拟网络关联到Vxlan Routing路由器上。
再者创建L3 BGP VPN以及相应的Route Target, 将Vxlan Routing路由器关联到L3 BGP VPN上。
当虚拟路由器关联到L3 BGP VPN上后,虚拟网络的路由会以EVPN type5路由发布,type5路由格式如下。
华云软件定义网络控制器的Type 5路由
上层为三层通信时报文封装示例,内层报文的DMAC为远端VTEP的MAC地址,提供路由上下文。外层VXlan头部的VNI为三层VNI,提供三层路由上下文。当报文到达远端DC时,根据三层VNI确认路由的路由实例。