数据中心SDN技术发展应用之MP-BGP

作者简介:林泉,新华三技术有限公司网络产品部SDN解决方案产品经理,负责SDN/NFV相关产品及数据中心架构设计。

当前云计算技术已经成为数据中心基本部署要求,针对云计算中对网络虚拟化的需求,业界厂家提出了各种解决思路,SDN网络技术得到了大力发展,具有资源虚拟化、自动化等特点,成为IT基础架构改革中不可或缺的一部分。早期纯软件的SDN技术虽然可以随云而动实现业务网络自动部署,但在性能、功能、稳定性、可扩展性等方面存在较大的限制。

在数据中心虚拟化多租户环境中部署和配置网络设施是一项复杂的工作,不同租户的网络需求存在差异,且网络租户是虚拟化存在,和物理计算资源位置无固定对应关系。通过传统手段部署物理网络设备为虚拟租户提供网络服务,一方面可能限制租户虚拟计算资源的灵活部署,另一方面需要网络管理员执行远超传统网络复杂度的网络规划和繁重的网络管理操作。在这种情况下,VPC(Virtual Private Cloud, 虚拟私有云)技术就应运而生了。VPC对于网络层面,就是对物理网络进行逻辑抽象,构架弹性可扩展的多租户虚拟私有网络,对于私有云、公有云和混合云同样适用。

SDN控制器通过控制Overlay网络从而将虚拟网络承载在数据中心传统物理网络之上,并向用户提供虚拟网络的按需分配,允许用户像定义传统L2/L3网络那样定义自己的虚拟网络,一旦虚拟网络完成定义,控制器会将此逻辑虚拟网络通过Overlay技术映射到物理网络并自动分配网络资源。控制器的虚拟网络抽象不但隐藏了底层物理网络部署的复杂性,而且能够更好的管理网络资源,最大程度减少了网络部署耗时和配置错误。这就是SDN的核心理念转发平台和控制平面分离。

随着SDN数据中心Overlay网络技术发展和成熟,VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术,利用IP的灵活性、扩展性成为了Overlay数据平面的主流技术。

初始的IETF VXLAN标准 (RFC 7348) 定义了一个基于组播、不采用控制平面的“泛洪和学习”VXLAN。对于远端VXLAN 隧道终端 (VTEP) 对等体发现和业务主机路由的学习依靠自身数据平面的“泛洪和学习”行为。Overlay广播、未知单播和组播流量封装到组播 VXLAN 数据包并通过BUM包头复制的方式利用泛洪行为在转发传输到远端 VTEP 交换机。会导致BUM报文泛洪到整个Fabric中,一定程度上将给解决方案的可扩展性和可靠性上带来挑战。在底层网络中启用组播功能的要求也会带来挑战。

SDN解决方案正是通过转发和控制分离的方式在VXLAN控制平台缺陷的基础上提供了切实可行的解决方案,早期SDN解决方案通过SDN控制器负责整个网络的集中控制,体现SDN集中管理的优势。基于Openflow的强控制使得网络具备更多的灵活性和可编程性。除了能够给用户提供适合应用需要的网络,还可以提供集成L4-L7层安全服务方案;可以支持混合Overlay模型。但是集中控制的同时带来单点故障及Fabric整体可靠性的问题,Fabric的整体可靠性只能依赖于SDN控制器集群提供保障,当控制器故障或管理网稳定性问题将会对整个Fabric带来挑战。Openflow的集中控制模式的厂商紧耦合度较高,在地理位置的局限性和跨厂商的开放性上也带来了挑战。

克服SDN解决方案的集中强控制模式的挑战,将MP-BGP EVPN作为VXLAN控制平面,MP-BGP EVPN由 IETF 定义为 VXLAN Overlay的基于标准的控制平面。MP-BGP EVPN 控制平面提供基于标准协议的 VTEP Peer发现和业务主机路由信息分发,可适用与私有和公共云以及更具扩展性的SDN网络设计。MP-BGP EVPN 控制平面利用一组路由信息同步功能,这些功能可减少或消除重叠网络中的流量泛洪,并为东西和南北向流量提供最优转发和最灵活的出口路径优先级选择。

EVPN基于MP-BGP标准(RFC 7348 +draft-sd-l2vpn-evpn-OverLay、RFC7209、RFC7432),各厂家都按标准实现,可以实现跨厂家设备的对接。

一、MP-BGP EVPN的基本功能包括:

  • 自动隧道建立:自动在部署有相同VXLAN网络的VTEP间创建VXLAN隧道。实现隧道按需建立,无需人工维护,也不占用多余的隧道资源。
  • 自动地址同步:自动完成Overlay网络层面业务主机的MAC地址、主机路由、网段路由的同步,可以减少二层未知单播、ARP请求等广播报文在全网的泛洪。

1.1 MP-BGP EVPN Fabric内组网模型

集中式网关模型

  • 网关部署在Spine
  • VTEP部署在接入,Border不部署VxLAN
  • 设备之间通过EVPN完成隧道建立和主机路由同步
  • Spine和Border通过默认路由互通
  • 同一Leaf下的三层流量需绕行到Spine
  • Spine需要保存整网的MAC和ARP
  • 适合中小规模组网


优点:

  • 接入设备不需要支持大容量的ARP表项
  • 接入设备支持VxLAN的L2 GW即可,不需要支持基于VxLAN的L3 GW,成本低

缺点:

  • 核心需要保留整网的ARP表项,组网规模受限
  • 同一Leaf下的三层流量需绕行到Spine

分布式网关模型

  • 网关部署在Leaf,所有相同VxLAN的网关IP和MAC相同,Border部署VxLAN
  • Leaf和Spine通过IP的ECMP互通
  • Leaf节点同时承担VxLAN L2/3转发
  • Leaf之间通过EVPN完成隧道建立和主机路由同步
  • 同一Leaf下的三层流量无需绕行到Spin,所有流量的路径最优
  • 本Leaf包含二层域所有端点的MAC和需要互通的三层域内所有端点的ARP(包括本地和远端)
  • 适合中大规模组网


优点:

  • 组网简单,广播域被限制在接入层以下
  • Leaf和Spine之间通过运行路由协议,构建ECMP的三层可达的IP网络,不需要部署IRF
  • 同一Leaf下的三层流量无需绕行到Spin,所有流量的路径最优

缺点:

  • 接入设备需要支持大容量的路由表项,当前华三接入设备的表项都比较大,足可以支持大规模组网

1.2 MP-BGP EVPN 二层转发

二层报文转发分类:
(1) 单播转发
EVPN通过BGP协议通告本地学到的MAC,远端根据BGP收到的MAC路由消息,将MAC下到远端Tunnel上,形成单播MAC表项。VTEP接收到二层数据帧后,判断其所属的VSI,根据目的MAC地址查找该VSI的MAC地址表,通过表项的出接口转发该数据帧。如果出接口为本地接口,则VTEP直接通过该接口转发数据帧;如果出接口为Tunnel接口,则VTEP根据Tunnel接口为数据帧添加VXLAN封装后,通过VXLAN隧道将其转发给远端VTEP。

(2) BUM报文转发:头端复制
除了单播流量转发,EVPN网络中还需要转发广播,未知组播与未知单播流量,即BUM流量。目前EVPN转发BUM可以使用头端复制和核心复制两种方式。

VTEP接收到本地虚拟机发送的组播、广播和未知单播数据帧后,判断数据帧所属的VXLAN,通过该VXLAN内除接收接口外的所有本地接口和VXLAN隧道转发该数据帧。通过VXLAN隧道转发数据帧时,需要为其封装VXLAN头、UDP头和IP头,将泛洪流量封装在多个单播报文中,发送到VXLAN内的所有远端VTEP。当然,VXLAN的头端复制列表是EVPN自动发现并创建的,不需要手工干预。
集中式网关二层转发
集中式网关下的二层转发流程:如下图所示,Vm 1(1.1.1.10)访问Vm 2(1.1.1.11),同一个网段属于二层互访:

(1)VM1发送ARP请求VM2的MAC,VTEP A会查找本地ARP表,返回VM2的MAC 。VM 1发送报文给VM 2,源MAC地址为MAC 1,目的MAC为MAC 2, VLAN tag为10

(2) VTEP A根据收到的报文的端口和VLAN tag确定属于VSI A, 查找VSI A的MAC地址表,得到MAC 2的出端口为Tunnel1。封装VxLAN报文,源IP为VTEP A,目的IP为VTEP C,并转发报文到VTEP C

(3)VTEP C收到报文,剥离VxLAN报文,还原出原始的数据帧。查找与VxLAN 10对应的VSI A的MAC地址表,得到MAC 2的出端口为GE2/0/1,所在VLAN为VLAN 10。VTEP C从接口GE2/0/1的VLAN 10内将数据帧发送给VM 2,VLAN tag为10
分布式网关二层转发
分布式网关二层转发流程:Vm 1(1.1.1.10)访问Vm 2(1.1.1.11),同一个网段属于二层互访:

(4)VM1发送ARP请求VM2的MAC,VTEP A会查找本地ARP表,返回VM2的MAC 。VM 1发送报文给VM 2,源MAC地址为MAC 1,目的MAC为MAC 2, VLAN tag为10

(5)VTEP A根据收到的报文的端口和VLAN tag确定属于VSI A.,查找VSI A的MAC地址表,得到MAC 2的出端口为Tunnel1。封装VxLAN报文,源IP为VTEP A,目的IP为VTEP C,并转发报文到VTEP C。

(6)VTEP C收到报文,剥离VxLAN报文,还原出原始的数据帧。查找与VxLAN 10对应的VSI A的MAC地址表,得到MAC 2的出端口为GE2/0/1,所在VLAN为VLAN 10。VTEP C从接口GE2/0/1的VLAN 10内将数据帧发送给VM 2,VLAN tag为10

1.3 MP-BGP EVPN三层转发

集中式网关三层转发
在EVPN集中式网关组网里面,Leaf所在的VTEP将本地学到的ARP通过EVPN通告给Spine所在的Gateway,GW根据ARP产生32位直连路由。

  • 北向南流量转发:在GW上查找ARP,将报文内层MAC封装为虚机真实MAC,再加上VXLAN封装发送给VTEP。VTEP端解封装后,根据VXLAN-ID查找MAC转发发送给VM。
  • 南向北流量转发:VM发给VTEP的报文的目的MAC为GW网关MAC。VTEP查找网关MAC表项,封装VXLAN将报文发送给GW。GW解封装后再根据内层报文IP做普通IP转发。此时GW充当的是IP网关角色。
  • 东西向流量转发:如果是跨VXLAN转发,此时需要经过GW一次路由才能转给目的VXLAN。此时GW充当的是VXLAN网关角色。

集中式网关三层转发:如下图所示,Vm 1(1.1.1.10)访问Vm 2(1.1.2.10),不同VxLAN,不同网段属于三层互访:

  • VM1发送ARP请求GW的MAC,VTEP A会查找本地ARP表,返回GW的MAC 。VM 1发送报文给网关,源MAC地址为MAC 1,目的MAC为网关 GMAC, VLAN tag为10。
  • VTEP A根据收到的报文的端口和VLAN确定属于VSI A。 查找VSI A的MAC地址表,得到GMAC的出端口为Tunnel1。封装VxLAN报文,源IP为VTEP A,目的IP为网关IP,并转发报文到网关。
  • 网关收到报文去掉VxLAN封装,根据原始报文目的ip,查找路由表和ARP表,找到出接口为Tunnel 2。封装报文格式为VxLAN,源ip为网关的VTEP ip,目的ip为VTEP B的ip,转发报文到VTEP B。
  • VTEP B收到报文,剥离VxLAN报文,还原出原始的数据帧。查找与VxLAN 20对应的VSI A的MAC地址表,得到MAC 2的出端口为GE2/0/1,所在VLAN为VLAN 20。VTEP B从接口GE2/0/1的VLAN 20内将数据帧发送给VM 2, VLAN tag为20

分布式网关三层转发
在EVPN网络中,VTEP既可以做二层Bridge转发功能,也可以做三层Router功能,因此称为集成桥接和路由,即IRB(Integrated Routing and Bridging)。在分布式网关里面,IRB转发可以分为对称IRB和非对称IRB两种。H3C实现的是对称IRB转发模型。对称IRB转发引入了以下2个概念:

  • L3VNI(Layer 3 VNI): 是指在分布式网关之间通过VXLAN隧道转发流量时,属于同一租户(VRF)的流量通过L3VNI来标识。L3VNI唯一关联一个VPN实例,通过VPN实例确保不同租户之间的业务隔离。
  • RouteMAC:网关的RouterMAC地址,是指每个分布式网关拥有的唯一一个用来标识本机的本地MAC地址,此MAC用于在网关之间通过VXLAN隧道转发三层流量。报文在网关之间转发时,报文的内层MAC地址为出口网关的RouterMAC地址。

非对称IRB
所谓非对称IRB,是指在Ingress入口网关,需要同时做Layer-2 bridging和Layer-3 routing功能,而在Egress出口网关,只需要做Layer-2 bridging功能。因此是不对称的。

  • 转发路径:非对称IRB流量来回路径不一致,去程流量使用VNI 300对应的隧道,回程流量使用VNI 100对应的隧道
  • VTEP配置:在VTEP配置本地VNI 的VSI,还需要配所有的和本地VNI在同一个VRF的其它VTEP上VNI的VSI
  • 表项:VTEP硬件转发表中包含VRF所含VNI内所有远端主机的IP和MAC,以指导报文完成VXLAN L2/3转发
  • 三层转发:VTEP收到报文后, 发现DMAC为网关MAC, 进行三层查表, 将报文从源VNI转发到目的VNI, 内层DMAC切换为目的主机的MAC,到达目的 VTEP后,解封装后使用内层DMAC执行二层查表, 将报文在目的VNI内转发到相应端口

缺点:

  • 配置复杂:每个VTEP上需要配置Fabric内所有的VNI的VSI信息
  • 占用表项大:每个VTEP上需要维护其下挂主机所在VRF所含VNI内的全部主机的MAC信息(包括远端主机的MAC)
  • 来回路径不一致:非对称IRB流量来回路径不一致,去程流量和回程流量使用使用不同的VNI完成三层转发


对称IRB
相比于非对称IRB,对称IRB,是指在Ingress入口网关和Egress出口网关,都只做Layer-3 routing功能(同网段则只做briding功能)。因此是对称的。

  • 转发路径:对称IRB流量来回路径一致,去程流量使用VNI 1000对应的隧道,回程流量使用VNI 1000对应的隧道
  • VTEP配置:在VTEP配置本地VNI的VSI,需要配一个新类型L3 VNI ,L3 VNI会有同一个VRF内的路由,三层转发的流量会在L3 VNI完成转发
  • 表项:每个VTEP上只需要维护其下挂主机所在的VNI内的MAC信息,只需要知道远端VTEP的Router MAC表项占用更少
  • 转发流程:VTEP A收到报文如果需要进行三层转发,将报文从源VNI转发到L3 VNI, 内层DMAC切换为目的VTEP的RMAC-C;VTEP C解封装后发现内层DMAC为自己,将内层报文在L3 VNI所对应的VRF中做三层转发

对称IRB优势:

  • 配置简单:每个VTEP上只需要配置其下主机所在VNI的VSI信息和所在的VRF的L3 VNI的VSI, 配置简单,更有利于自动化部署
  • 表项占用少:每个VTEP上只需要维护其下挂主机所在的VNI内的MAC信息,只需要知道远端VTEP的router MAC.表项占用更少
  • 来回路径一致:对称IRB流量来回路径一致,如本例中,去程流量使用VNI 1000对应的隧道,回程流量也使用VNI 1000对应的隧道


对称IRF三层转发流程:Vm 1(1.1.1.10)访问Vm 2(1.1.2.10),不同VxLAN,不同网段属于三层互访:

(1)VM1发送ARP请求GW的MAC,VTEP A会查找本地ARP表,返回GW的MAC 。VM1发送报文给VM3,源MAC地址为MAC 1,目的MAC为网关GMAC-A, VLAN tag为10

(2)网关收到报文,在L3 VNI 1000中查表,根据报文目的ip,查找路由表和ARP表,找到出接口为Tunnel 1。封装报文格式为VxLAN,目的ip为VTEP C的ip,目的mac为GMAC C,转发报文到VTEP C

(3)VTEP C收到报文,剥离VxLAN报文,还原出原始的数据帧。在L3 VNI 1000中查表,根据目的ip找到出端口为GE2/0/1, 替换报文目的mac为MAC 3,源MAC为网关GMAC C。VTEP C从接口GE2/0/1的VLAN 20内将数据帧发送给VM3

2.ARP代答


EVPN网络支持ARP代答功能。由于EVPN具有主机路由自动同步机制,主机上线时,每个网关都可以通过路由同步自动学习到远端各个主机的IP和mac信息,各个网关可以使用此信息在本地建立ARP代答表,如果本地有主机需要访问远端,当网关收到ARP请求时,可以代替远端Leaf上的主机做ARP应答。

启用ARP代答后,对远端主机的ARP请求无需通过隧道广播到所有的Leaf,可以减少广播报文在全网的泛洪。

对于ARP Missing也即某主机没有主动发送过ARP或因某种原因ARP丢失或老化的情况,Leaf本地没有ARP代答表项,会泛洪此ARP请求到同一个VXLAN网络中的所有Leaf,再由各个Leaf走本地的ARP广播给下挂的主机,实现一个完整的ARP请求过程。

3.对第三方L4-L7层安全服务的融合

每一个数据中心网络都会考虑安全的需求,都会部署L4-L7层安全设备,且有可能网络设备SDN控制器和安全设备不是同一个厂家的设备。但是当前云平台Openstack架构还在不断的发展中,对安全设备的支持还没有成熟、灵活、适应各厂家设备的接口,故安全设备如果和SDN控制器不是同一厂家的,则很难对该安全设备做云网安联动的全面控制。

云网安联动的安全控制,包括两个方面的内容:一个是EVPN分布式SDN网络中各网关设备上对流量到安全设备的自动化引流控制;一个是安全设备上对流量的安全策略和路由的下发。

二、MP-BGP EVPN的混合Overlay组网能力:

提供灵活的混合Overlay组网能力,Fabric架构即可以支持虚拟化的服务器,也可以支持裸金属物理服务器和Docker容器网络,以及必须使用物理服务器提升性能的数据库等业务,可以为客户提供自主化、多样化的选择。

主要面向愿意即要保持虚拟化的灵活性,又需要兼顾对于高性能业务的需求, 或者充分利旧服务器的要求,满足客户从传统数据中心向基于SDN的数据中心平滑演进的需求。

三、MP-BGP EVPN的扩展能力:

利用MP-BGP EVPN控制平面提供跨Fabric或DCI之间的大二层网络扩展,为服务器高可用集群技术和虚拟服务器动态迁移技术提供扩展支持,扩展MP-BGP协议来传递Fabric间或DCI的二层环境所需要的MAC和ARP等信息。可实现管理域/故障域可独立规划,同时基于udp原端口的hash便于Fabric间或DCI的ECMP负载分担,为租户/业务的Overlay网络提供高效灵活性。

MP-BGP EVPN Fabric内多出口应用

在Fabric内部利用Fabric实现Spine、Leaf、Border动态横向平滑扩展,并且可通过MP-BGP EVPN多VPC路由的灵活RT值控制能力,结合VPC间的vRoute-link和灵活迭代路实现VPC在多出口上的动态选择和扩展,在Fabric计算资源池内可实现同一VPC对多出口的选路和冗余出口控制,不同VPC对不同出口链路的绑定。最终实现出口边界设备(Border)和接入设备组(leaf)为N:M的关系租户。

MP-BGP EVPN 跨POD组网应用

在跨POD区域边界部署ED设备,ED设备之间通过MP-BGP EVPN实现POD间跨二层的网络扩展,若互联POD较多的时候,ED本身可以属于POD内的BGP域,ED间通过EBGP EVPN互联。若互联的POD较多时,则多个ED可以单独形成一个POD互联的域,单独部署RR设备来简化POD间fullmesh的邻居连接。Leaf和本地ED(iBGP EVPN)、ED和远端ED(eBGP EVPN)、远端ED和远端Leaf(iBGP EVPN)通过EVPN协议彼此发现Peer关系,最终同一VSI实例的Leaf都会邻居发现并建立三段式的vxlan隧道。

在边界ED设备上可以基于VXLAN ID正对跨POD的VPC进行DSCP设置,这样在整个Fabric网络内可根据租户VPC的需求实现跨POD的QOS保障。DSCP可以基于VXLAN内层进行重写。

结论

MP-BGP EVPN为SDN技术的发展和VXLAN Overlay网络提供强有力的控制平面支撑,基于RFC标准为跨厂商的协作提供简单灵活的互通能力。支撑分布式数据中心基础设施网络构建,为用户提供更高的可扩展性、灵活性和可靠性。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。
  • 本文链接https://www.sdnlab.com/20400.html
分享到:
相关文章
条评论

登录后才可以评论

林泉 发表于18-01-03
9