• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

EVPN组播技术白皮书-6W100

手册下载

EVPN组播技术白皮书-6W100-整本手册.pdf  (1.02 MB)

  • 发布时间:2022/2/11 16:32:07
  • 浏览量:
  • 下载量:

EVPN组播技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。


 

1 概述··· 1

1.1 产生背景·· 1

1.2 技术优势·· 1

2 BGP EVPN的组播扩展··· 1

2.1 BGP EVPN邻居建立·· 1

2.2 BGP EVPN路由·· 2

2.2.1 BGP EVPN组播相关路由概述·· 2

2.2.2 Selective Multicast Ethernet Tag RouteRT-6·· 2

2.2.3 IGMP Join Synch RouteRT-7·· 4

2.2.4 IGMP Leave Synch RouteRT-8·· 5

2.2.5 S-PMSI A-D route· 6

2.3 BGP EVPN路由属性·· 7

2.3.1 PMSI Tunnel attribute· 7

2.3.2 Multicast Flags Extended Community· 8

3 EVPN组播转发方式··· 8

4 EVPN VXLAN二层组播··· 9

4.1 控制平面学习二层组播转发表项·· 9

4.1.1 手工建立二层组播转发表项·· 9

4.1.2 通过路由动态学习二层组播转发表项·· 9

4.2 数据平面转发二层组播报文·· 12

4.2.1 通过核心复制方式转发二层组播流量·· 12

4.2.2 通过头端复制方式转发二层组播流量·· 12

5 EVPN VXLAN三层组播··· 13

5.1 MDT模式组播VXLAN简介·· 13

5.2 控制平面建立MDT并学习三层组播转发表项·· 14

5.2.1 基本概念·· 14

5.2.2 MP-BGP扩展·· 15

5.2.3 自动建立和关联MVXLAN隧道·· 15

5.2.4 建立Default-MDT· 15

5.2.5 Data-MDT切换·· 16

5.2.6 学习私网组播流量的转发表项·· 17

5.3 数据平面转发三层组播报文·· 18

5.3.1 组播报文封装·· 18

5.3.2 三层组播流量转发过程·· 19

6 EVPN组播支持数据中心互联··· 20

6.1 二层组播支持DCI 20

6.1.1 EVPN VXLAN DCI二层组播转发(L2VNI相同)·· 20

6.1.2 EVPN VXLAN DCI二层组播转发(L2VNI映射)·· 22

6.1.3 二层组播DCI支持双ED·· 23

6.2 三层组播支持DCI 24

6.2.1 EVPN VXLAN DCI三层组播转发(L3VNI相同)·· 24

6.2.2 EVPN VXLAN DCI三层组播转发(L3VNI映射)·· 26

6.2.3 三层组播DCI支持双ED·· 28

7 EVPN组播支持DRNI 31

7.1 EVPN组播支持DRNI工作机制概述·· 31

7.1.1 典型组网·· 31

7.1.2 用户侧备份机制·· 32

7.1.3 组播流量分担·· 32

7.2 二层组播支持DRNI 32

7.2.1 典型组网·· 32

7.2.2 正常情况下路由发布及流量转发过程·· 33

7.2.3 故障保护·· 33

7.3 三层组播支持DRNI 34

7.3.1 正常情况下组播VXLAN隧道的建立过程·· 34

7.3.2 正常情况下路由发布及流量转发过程·· 34

7.3.3 组播源侧故障保护·· 35

7.3.4 组播接收者侧故障保护·· 36

8 典型组网应用··· 36

8.1 城轨组播典型组网(源在数据中心,接收者在车站)·· 36

8.2 城轨组播典型组网(源在车站,接收者在数据中心)·· 37

8.3 城轨组播典型组网(车站和数据中心均存在源和接收者)·· 38

 


概述

1.1  产生背景

EVPNEthernet Virtual Private Network,以太网虚拟专用网络)是一种基于Overlay技术的二层网络互联技术,具有部署简单、扩展性强等优点,广泛应用于数据中心网络、园区接入网络、广域网和运营商网络

随着IPTV、视频会议和远程教育等业务的应用日趋广泛,用户对组播业务的需求不断增加。EVPN网络不仅要支持单播流量转发,还需要支持组播流量转发,以实现组播源跨越EVPN网络将组播流量分发给组播接收者。

EVPN采用MP-BGP协议通告组播相关信息,通过生成的组播转发表项进行二/三层组播流量转发,很好地满足了用户对于组播业务的需求。在EVPN网络中实现组播流量转发的技术,称为EVPN组播技术。

1.2  技术优势

EVPN组播技术的控制平面通过BGP EVPN路由实现,数据平面目前仅支持VXLAN封装方式。

EVPN组播技术具有如下特点:

·     使用BGP EVPN路由在VTEP之间传递私网组播协议报文和私网组播路由,核心网络中的设备无需感知私网组播协议报文和私网组播路由,降低了网络部署复杂度,提高了网络的安全性。

·     通过VXLAN封装,实现Overlay网络和Underlay网络的组播业务隔离,互不感知。

·     既支持二层组播流量转发,也支持三层组播流量转发,组网方式灵活。

·     EVPN二层组播技术支持多归属接入,即支持同一个站点通过多台VTEP接入EVPN网络,提高网络的可靠性。

·     支持DRNI组网,提升了网络的可靠性。

BGP EVPN的组播扩展

EVPN组播技术中,VTEP之间采用MP-BGP协议通告组播源信息,以及组播接收者的接入信息。

2.1  BGP EVPN邻居建立

BGP新增了EVPN子地址族,用于协商并建立BGP EVPN邻居。EVPN子地址族使用的地址族编号为:AFI=25SAFI=70

EVPN组播技术中,VTEP之间既可以建立IBGP邻居,也可以建立EBGP邻居。

·     建立IBGP邻居时,为简化全连接配置,需要部署RR反射器。所有VTEP都只和RR建立BGP邻居关系。RR发现并接收VTEP发起的BGP连接后形成客户机列表,将从某个VTEP收到的路由反射给其他所有的VTEP

·     建立EBGP邻居时,不需要部署RRBGP自动将从EBGP邻居收到的EVPN消息发送给其他EBGPIBGP邻居。

2.2  BGP EVPN路由

2.2.1  BGP EVPN组播相关路由概述

为了支持EVPN组播,BGP EVPN地址族新增了如下几种EVPN NLRINetwork Layer Reachability Information,网络层可达性信息),即EVPN路由:

·     Selective Multicast Ethernet Tag RouteRT-6):选择性组播以太网标签路由,用来通告租户的IGMP组播组信息,简称SMET路由

·     IGMP Join Synch RouteRT-7):IGMP加入同步路由,用来在多归属成员间同步租户的IGMP加入组播组信息。

·     IGMP Leave Synch RouteRT-8):IGMP离开同步路由,用来在多归属成员间通告租户的IGMP离开组播组信息,以撤销相应的IGMP加入同步路由。

·     S-PMSI A-D routeRT-10选择性组播隧道自动发现路由,用来通告组播隧道,触发自动建立组播隧道。

EVPN路由中包含RDRoute Distinguisher,路由标识符)字段,用来区分不同VXLANEVPN路由,以避免EVPN路由冲突。

VTEP在发布携带EVPN路由的BGP Update消息时,还需要携带VPN Target扩展团体属性(也称为Route Target),通过VPN Target属性来控制EVPN路由信息的发布与接收。VPN target属性分为以下两种,每一种都可以包括多个属性值:

·     Export target属性:本地VTEP在通过BGPUpdate消息将EVPN路由发送给远端VTEP时,将Update消息中携带的VPN target属性设置为Export target

·     Import target属性:VTEP收到其它VTEP发布的Update消息时,将消息中携带的VPN target属性与本地配置的Import target属性进行比较,只有二者中存在相同的属性值时,才会接收该消息中的EVPN路由。

2.2.2  Selective Multicast Ethernet Tag RouteRT-6

VTEP连接的用户希望接收某个(*,G)或者(S,G)的流量时,会通过SMETRT-6路由将该信息通告给网络中的其它VTEP;当用户不想继续接收该流量时,会撤销该路由。

图1 SMET路由格式

 

1所示,选择性组播以太网标签路由包含如下字段:

·     RDEVPN实例的RD值。

·     Ethernet tag ID该字段为全0

·     Multicast source length:租户加入的组播源的IP地址长度,32位代表IPv4128位代表IPv6

·     Multicast source address:租户加入的组播源的地址。

·     Multicast group length:租户加入的组播组的IP地址长度,32代表IPv4128位代表IPv6

·     Multicast group address:租户加入的组播组地址。

·     Originator router length:始发该路由的IP地址的长度,32代表IPv4128位代表IPv6

·     Originator router address:始发该路由的VTEPPEIP地址,取值BGP协议的Router ID

·     Flags:标记位。目前定义的标记位如2所示。

图2 标记位示意图

 

标记位表示的内容与Multicast group address字段有关。

如果Multicast group addressIPv4地址:

¡     bit 7表示是否支持IGMP version 1

¡     bit 6表示是否支持IGMP version 2

¡     bit 5表示是否支持IGMP version 3

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 5取值为1时有效,bit 5取值为0时忽略该bit位。

如果Multicast group addressIPv6地址:

¡     bit 7表示是否支持MLD version 1

¡     bit 6表示是否支持MLD version 2

¡     bit 5目前固定值为0

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 6取值为1时有效,bit 6取值为0时忽略该bit位。

2.2.3  IGMP Join Synch RouteRT-7

多归属组网中,IGMP加入同步路由(RT-7用来在多归属成员间同步租户的IGMP加入组播组信息。VTEP从本地站点接收到用户的组播加入信息(IGMP report报文)后,会向其他多归属成员VTEP发送IGMP加入同步路由。

图3 IGMP加入同步路由报文格式

 

3所示,IGMP加入同步路由包含如下字段:

·     RDEVPN实例的RD值。

·     Ethernet segment identifierVTEP/PECE之间的以太网链路段标识符。

·     Ethernet tag ID接入AC对应的VLAN

·     Multicast source length:租户加入的组播源的IP地址长度,32位代表IPv4128位代表IPv6

·     Multicast source address:租户加入的组播源的地址。

·     Multicast group length:租户加入的组播组的IP地址长度,32代表IPv4128位代表IPv6

·     Multicast group address:租户加入的组播组地址。

·     Originator router length:始发该路由的IP地址的长度,32代表IPv4128位代表IPv6

·     Originator router address:始发该路由的VTEPPEIP地址,取值BGP协议的Router ID

·     Flags:标记位。目前定义的标记位如4所示。

图4 标记位示意图

 

标记位表示的内容与Multicast group address字段有关。

如果Multicast group addressIPv4地址:

¡     bit 7表示是否支持IGMP version 1

¡     bit 6表示是否支持IGMP version 2

¡     bit 5表示是否支持IGMP version 3

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 5取值为1时有效,bit 5取值为0时忽略该bit位。

如果Multicast group addressIPv6地址:

¡     bit 7表示是否支持MLD version 1

¡     bit 6表示是否支持MLD version 2

¡     bit 5目前固定值为0

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 6取值为1时有效,bit 6取值为0时忽略该bit位。

2.2.4  IGMP Leave Synch RouteRT-8

多归属组网中,IGMP离开同步路由(RT-8用来在多归属成员间同步租户的IGMP离开组播组信息,以撤销相应的IGMP加入同步路由。VTEP从本地站点接收到用户的组播离开信息(IGMP Leave报文)后,会向其他多归属成员VTEP发送IGMP离开同步路由。

图5 IGMP离开同步路由报文格式

 

5所示,IGMP离开同步路由包含如下字段:

·     RDEVPN实例的RD值。

·     Ethernet segment identifierVTEP/PECE之间的以太网链路段标识符。

·     Ethernet tag ID接入AC对应的VLAN

·     Multicast source length:租户加入的组播源的IP地址长度,32位代表IPv4128位代表IPv6

·     Multicast source address:租户加入的组播源的地址。

·     Multicast group length:租户加入的组播组的IP地址长度,32代表IPv4128位代表IPv6

·     Multicast group address:租户加入的组播组地址。

·     Originator router length:始发该路由的IP地址的长度,32代表IPv4128位代表IPv6

·     Originator router address:始发该路由的VTEPPEIP地址,取值BGP协议的Router ID

·     Leave group synchronization:租户离开组播组的序列号。

·     Maximum response time通告的最大响应时间。

·     Flags:标记位。目前定义的标记位如6所示。

图6 标记位示意图

 

标记位表示的内容与Multicast group address字段有关。

如果Multicast group addressIPv4地址:

¡     bit 7表示是否支持IGMP version 1

¡     bit 6表示是否支持IGMP version 2

¡     bit 5表示是否支持IGMP version 3

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 5取值为1时有效,bit 5取值为0时忽略该bit位。

如果Multicast group addressIPv6地址:

¡     bit 7表示是否支持MLD version 1

¡     bit 6表示是否支持MLD version 2

¡     bit 5目前固定值为0

¡     bit 4表示携带的(SG)的模式,取值为1,表示Exclude模式;取值为0,表示Include模式。该bit位仅在bit 6取值为1时有效,bit 6取值为0时忽略该bit位。

2.2.5  S-PMSI A-D route

选择性组播隧道自动发现路由RT-10用来通告组播隧道,触发自动建立组播隧道。当组播源侧VTEP满足隧道切换条件,需要创建Data-MDT时,组播源侧VTEP发送S-PMSI A-D Route通知其它VTEP进行隧道切换。

图7 选择性组播隧道自动发现路由报文格式

 

7所示,选择性组播隧道自动发现路由包含如下字段:

·     RDEVPN实例的RD值。

·     Ethernet tag ID该字段为全0

·     Multicast source length:租户加入的组播源的IP地址长度,32位代表IPv4128位代表IPv6

·     Multicast source address:租户加入的组播源的地址。

·     Multicast group length:租户加入的组播组的IP地址长度,32代表IPv4128位代表IPv6

·     Multicast group address:租户加入的组播组地址。

·     Originator router length:始发该路由的IP地址的长度,32代表IPv4128位代表IPv6

·     Originator router address:始发该路由的VTEPPEIP地址,取值BGP协议的Router ID

Multicast source addressMulticast group address字段的取值均为全0时,该路由称之为Wildcard S-PMSI A-D RoutesWildcard S-PMSI A-D Routes用来通告MVXLAN网络内的Default-MDT

2.3  BGP EVPN路由属性

2.3.1  PMSI Tunnel attribute

PMSIProvider Multicast Service Interface运营商组播服务接口)是Underlay网络承载Overlay网络组播数据流量的逻辑通道。对于指定的组播数据流量,组播源侧VTEP通过PMSIOverlay组播数据流量分发给其他VTEP,接收者VTEP根据PMSI接收属于同一VPN的组播数据流量。公网上的MVXLAN隧道(组播VXLAN隧道)是PMSI的具体实现形式。

PMSI Tunnel attribute主要用于公网MVXLAN隧道的创建,目前携带在S-PMSI A-D route中,格式如8所示。

图8 PMSI Tunnel attribute格式

 

PMSI Tunnel attribute各字段的含义如下:

·     Flags:标志位目前取值固定为0,表示接收者侧VTEP收到S-PMSI A-D route后不需要对此消息进行回应。

·     Tunnel Type:隧道类型。目前只支持PIM SM隧道(取值为4)和PIM SSM隧道(取值为3)两种类型。

·     MPLS LabelMPLS标签值,目前不支持。

·     Tunnel Identifier:隧道信息。PIM SM隧道和PIM SSM隧道的隧道信息为<Sender Address, P-Multicast Group>

2.3.2  Multicast Flags Extended Community

VTEP设备通过Multicast Flags Extended Community来宣称自己支持IGMP Proxy能力。它携带在Inclusive Multicast Ethernet Tag Route中,格式如9所示。其中,Flags取值为1,表示VTEP支持IGMP Proxy能力。

图9 Multicast Flags Extended Community格式图

 

EVPN组播转发方式

EVPN网络中,组播流量转发包括如下两种方式:

·     二层组播:组播源和组播接收者位于同一个VXLAN网络,组播流量在同一个VXLAN网络内根据二层组播转发表项(IGMP snoopingPIM snooping表项等)进行转发。

·     三层组播:组播源和组播接收者位于不同的VXLAN网络、相同的VPN,组播流量在同一个VPN内跨越VXLAN网络根据层组播转发表项(IGMPPIM表项等)进行转发。

EVPN VXLAN二层组播

4.1  控制平面学习二层组播转发表项

设备可以通过如下两种方式建立二层组播转发表项:

·     通过命令行手工创建二层组播VXLAN隧道,从而建立二层组播转发表项。

·     通过IGMP报文和BGP EVPN路由动态学习二层组播转发表项。

EVPN VXLAN二层组播组网中,通过命令行手工创建的二层组播转发表项优先级高于通过路由动态学习的二层组播转发表项。

4.1.1  手工建立二层组播转发表项

在同一VXLAN网络内的所有VTEP上指定相同的VXLAN泛洪组播地址后,所有VTEP将加入相同的组播组,核心网设备利用组播路由协议(如PIM)在IP核心网上为该组播组建立组播转发表项,从而实现在VTEP之间建立二层组播VXLAN隧道。同时,VTEP上会建立二层组播转发表项,表项的出接口为二层组播VXLAN隧道接口。VTEP同时作为组播源和组播接收者。VTEP发送的组播流量,通过二层组播VXLAN隧道发送给同一VXLAN网络内的所有VTEP

4.1.2  通过路由动态学习二层组播转发表项

1. 二层组播转发表项动态学习机制概述

VTEP接收到IGMP报告报文和离开报文时,会判断报文所属的VSI,并在该VSI内建立或删除二层组播转发表项。VTEP通过SMET路由将组播组信息通告给其他VTEP。远端VTEP收到SMET路由后,根据SMET路由的Route Target属性,判断路由所属的VSI,并在该VSI内建立建立或删除二层组播转发表项,表项的出端口为VXLAN单播隧道接口(该单播隧道连接发送SMET路由的VTEP)。如果有多个VTEP发送了SMET路由,则会添加多个VXLAN单播隧道出端口,分别连接不同的发送SMET路由的VTEPVTEP再次收到属于同一IGMP版本、加入同一组播组的报告报文时,将不再发送SMET路由。通过上述机制,可以大大减少IGMP报文泛洪的次数。

为了支持组播,MP-BGP新增了SMETIGMP-JSIGMP-LS三类EVPN路由,详细介绍请参见“2.2  BGP EVPN路由”。

2. 单归属站点组网中动态学习二层组播转发表项

10所示,在单归属站点组网中,Receiver 1发送IGMP成员关系报告报文至VTEP 1VTEP 1建立相应的二层组播转发表项,并发送SMET路由,将组播信息通告给VTEP 2VTEP 3VTEP 2VTEP 3收到SMET路由后,在本地建立出接口为VXLAN隧道接口(该接口连接VTEP 1)的二层组播转发表项。

图10 单归属站点组播示意图

 

Receiver 1发送IGMP成员离开报文至VTEP 1后,VTEP 1删除相应的二层组播转发表项,并撤销SMET路由。VTEP 2VTEP 3收到SMET撤销路由后,删除相应的二层组播转发表项。

3. 多归属站点组网中动态学习二层组播转发表项

当一个站点通过不同的以太网链路连接到多台VTEP时,这些链路就构成了一个ESEthernet Segment,以太网段),并以一个相同的ESIES Identifier)标识其属于同一个ES。连接的多台VTEP组成冗余备份组,可以避免VTEP单点故障对网络造成影响,从而提高EVPN VXLAN网络的可靠性。

为了避免冗余备份组中的VTEP均发送组播流量给该站点,需要在冗余备份组中为每个AC选举一个VTEP作为DFDesignated Forwarder,指定转发者),负责将组播流量转发给该AC。其他VTEP作为该ACBDFBackup DF,备份DF),不会向本地站点转发组播流量。

站点多归属组网中,站点侧发送的加入组播组报文和离开组播组报文,会被不同的VTEP接收。为了在多归属站点间管理站点的二层组播转发表项,收到加入和离开组播组报文的VTEP会发送IGMP-JS路由和IGMP-LS路由来告诉其他成员,保证同ESI成员VTEP间组播信息的同步。

图11 多归属站点组播示意图

 

11所示,多归属站点二层组播表项学习过程如下:

·     当接收报告报文的设备为DFVTEP 1)时,DF建立相应的二层组播转发表项,通告SMET路由给VTEP 2VTEP 3,并通告IGMP-JS路由给VTEP 2VTEP 2VTEP 3在本地建立二层组播转发表项,表项的出接口分别为ES所在接口、连接VTEP 1VXLAN隧道接口

当组播接收者离开组播组时:

¡     若接收离开报文的设备为DF,则DF删除二层组播转发表项,通告IGMP-LS路由并撤销IGMP-JS路由和SMET路由。VTEP 2VTEP 3接收到路由后,删除对应的二层组播转发表项。

¡     若接收离开报文的设备为BDFVTEP 2),则BDF通告IGMP-LS路由给同一冗余备份中的其他成员。DF收到BDF同步的IGMP-LS路由后,撤销IGMP-JS路由和SMET路由。各个VTEP均删除对应的二层组播转发表项。

·     当接收报告报文的设备为BDFVTEP 2)时,BDF建立相应的二层组播转发表项,并通告IGMP-JS路由给同一冗余备份中的其他成员。DFVTEP 1)收到IGMP-JS路由后,建立相应的二层组播转发表项,表项的出接口为ES所在接口。DF生成SMET路由,并通告给VTEP 2VTEP 3VTEP 3在本地建立二层组播转发表项,表项的出接口为连接VTEP 1VXLAN隧道接口

当组播接收者离开组播组时:

¡     若接收离开报文的设备为DF,则DF删除二层组播转发表项,通告IGMP-LS路由给同一冗余备份中的其他成员。BDF收到IGMP-LS路由后,删除二层组播转发表项,并撤销IGMP-JS路由。DF收到撤销IGMP-JS路由后,撤销由IGMP-JS路由生成的SMET路由。VTEP 3接收到SMET撤销路由后,删除对应的二层组播转发表项。

¡     若接收离开报文的设备为BDF,则BDF删除二层组播转发表项,通告IGMP-LS路由并撤销IGMP-JS路由。DF收到撤销IGMP-JS路由后,删除二层组播转发表项,并撤销由该IGMP-JS路由生成的SMET路由。VTEP 3接收到SMET撤销路由后,删除对应的二层组播转发表项。

4.2  数据平面转发二层组播报文

4.2.1  通过核心复制方式转发二层组播流量

完成二层组播转发表项的学习后,当VTEP接收到二层组播数据帧时,判断其所属的VSI,根据目的MAC地址或者目的IP查找该VSI的二层组播转发表项,通过表项的出接口转发该数据帧。如果出接口为本地接口,则VTEP直接通过该接口转发数据帧;如果出接口为二层组播VXLAN隧道接口,则VTEP根据二层组播VXLAN隧道为数据帧添加VXLAN封装(封装的目的地址为VTEP上配置的VXLAN泛洪组播地址)后,通过二层组播VXLAN隧道将其转发给远端VTEP

图12 核心复制方式转发二层组播流量示意图

 

 

4.2.2  通过头端复制方式转发二层组播流量

完成二层组播转发表项的学习后,当VTEP接收到二层组播数据帧时,判断其所属的VSI,根据目的MAC地址或者目的IP查找该VSI的二层组播转发表,通过表项的出接口转发该数据帧。如果出接口为本地接口,则VTEP直接通过该接口转发数据帧;如果出接口为VXLAN隧道接口,则VTEP根据VXLAN隧道接口为数据帧添加VXLAN封装,并通过VXLAN隧道将其转发给远端VTEP

当二层组播转发表项中存在多个VXLAN隧道接口(说明多个远端VTEP均连接组播接收者)时,VTEP将为数据帧分别添加每个VXLAN隧道接口对应的VXLAN封装,通过多个VXLAN隧道将其转发给多个远端VTEP

图13 头端复制方式转发二层组播流量示意图

 

 

EVPN VXLAN三层组播

5.1  MDT模式组播VXLAN简介

EVPN组播采用MDTMulticast Distribution Tree,组播分发树)模式实现三层组播流量的转发。MDT模式即在公网上建立以组播源所在的VTEP为根,组播接收者所在的VTEP为叶的组播分发树,通过单向MVXLAN隧道在公网中沿组播分发树转发组播流量,实现组播流量的最优路径转发。

14所示,VTEP均为分布式EVPN网关,VTEP间建立MVXLAN隧道。VTEP上创建MVXLAN实例指导组播流量转发,通过本地ACMVXLAN隧道分别将组播流量转发至本地接收者和远端VTEP

图14 MDT模式MVXLAN典型组网

 

5.2  控制平面建立MDT并学习三层组播转发表项

5.2.1  基本概念

·     MVXLAN网络:属于同一个VPN的相同或不同VXLAN网络组成的组播流量转发网络。

·     MVXLAN实例:MVXLAN网络在VTEP上的实例化体现。一个MVXLAN实例与一个VPN实例关联,用来保存VPNVXLAN相关的组播配置和组播转发表项等信息,以实现不同私网组播业务的隔离。

·     MDT:属于同一MVXLAN网络的所有VTEP之间建立的组播分发树,包括Default-MDTData-MDT两种。

·     Default-Group(默认组):每个MVXLAN网络在公网上分配一个独立的组播组,称为Default-Group。它是MVXLAN网络在公网上的唯一标志,用来在公网上建立MVXLAN网络所对应的Default-MDT无论私网组播报文属于哪个组播组,VTEP都统一将其封装为普通的公网组播数据报文,并以Default-Group作为封装后报文的目的地址。

·     Default-MDTDefault-Multicast Distribution Tree,默认组播分发树):以Default-Group为组地址的MDT,称为Default-MDT,用于承载来自于一个MVXLAN网络的所有组播业务每个MVXLAN网络内仅有一个Default-MDTVTEP将私网组播数据报文封装成目的地址为Default-Group的公网组播数据报文,通过Default-MDT将报文发送到其它VTEP。在该MVXLAN网络中传输的所有私网组播报文,无论从哪个VTEP进入公网,都经由此Default-MDT转发。Default-MDT自动生成,在公网中一直存在,而不论公网或私网中有没有实际的组播业务。

·     Data-Group(数据组):当组播流量通过指定ACL规则的过滤时,入口VTEP会为其分配一个独立的组播组,称为Data-Group,并通知其它VTEP使用该组播组在公网内转发该组播数据流量。每个MVXLAN网络都具有一个Data-Group范围。在进行Data-MDT切换时,从Data-Group范围中选取一个被引用最少的地址作为Data-Group。从VTEP进入公网、通过指定ACL规则过滤的私网组播报文将使用该Data-Group地址进行封装。

·     Data-MDTData-Multicast Distribution Tree,数据组播分发树):以Data-Group为组地址的MDT,称为Data-MDT,用于承载来自于一个或多个组播组的组播业务一个MVXLAN网络内可能存在多个Default-MDT。下游存在接收者的VTEP加入Data-Group,形成一棵Data-MDT,入口VTEP使用Data-MDT在公网中转发封装后的私网组播数据。

5.2.2  MP-BGP扩展

为了支持MVXLANMP-BGPEVPN地址族新增了如下EVPN路由用于创建MDT

·     Supplementary Broadcast Domain Selective Multicast Ethernet Tag Route增强型广播域选择性组播以太网标签路由,也叫SBD-SMET路由,包含私网组播源地址和组播组地址信息,用于接收者侧VTEP通告希望接收某个(*G)(SG)的组播流量该路由携带VPN实例下配置的RDVPN实例IPv4地址族下配置的Export target

·     Selective Provider Multicast Service Interface Route选择性组播业务接口路由,也叫S-PMSI A-D路由,包含私网组播源地址、私网组播组地址、Default-GroupData-Group地址及MVXLAN源接口地址。主要用于:

¡     组播源侧VTEP及其所有BGP邻居之间建立Default-MDT

¡     Default-MDTData-MDT切换。

该路由携带VPN实例下配置的RDVPN实例IPv4地址族下配置的Export target

EVPN路由的详细介绍,请参见“2.2  BGP EVPN路由”。

5.2.3  自动建立和关联MVXLAN隧道

MVXLAN网络中,VTEP间会自动创建源为MVXLAN下指定的源接口地址,组地址为Default-GroupData-Group地址的MVXLAN隧道用于转发三层组播流量。该MVXLAN隧道是由组播源端VTEP指向组播接收者所在VTEP的单向MVXLAN隧道。MVXLAN创建后会自动与MVXLAN实例关联。

5.2.4  建立Default-MDT

Default-MDT是一棵建立在同一MVXLAN网络内所有VTEP之间的组播分发树,各VTEP之间交互的所有组播协议和数据报文都通过由这棵分发树所形成的组播VXLAN隧道进行转发。

EVPN MVXLAN依靠S-PMSI A-D路由来自动建立Default-MDT(即组播VXLAN隧道)。建立Default-MDT时,VTEP发送的S-PMSI A-D路由携带(**)信息,以标识所有私网组播流量。

图15 PIM-SM网络中建立Default-MDT

 

公网中运行的组播路由协议可以是PIM-SMPIM-SSM。在这两种情况下,Default-MDT的建立过程相同。如15所示,以公网中运行PIM-SM为例,Default-MDT的创建过程如下:

(1)     VTEP 1VTEP 2VTEP 3发送携带(**)信息的S-PMSI A-D路由,开始创建Default-MDTS-PMSI A-D路由中的PMSI Tunnel Atrribute携带组播VXLAN隧道的信息包括公网组播源地址VTEP 1MVXLAN隧道源接口的IP地址)、公网组播组地址VTEP 1上配置的Default-group)和L3VNILayer 3 VNI,三层VXLAN ID)。

(2)     VTEP 2VTEP 3收到S-PMSI A-D路由后,如果该路由携带的Export target属性与本地某个VPN实例的Import target属性匹配,则VTEP 2VTEP 3会与VTEP 1建立组播VXLAN隧道,建立过程为:

a.     VTEP 2VTEP 3VTEP 1发送加入(SG)PIM加入报文(SG分别为PMSI Tunnel Atrribute携带的公网组播源地址和公网组播组地址),并在公网沿途建立组播转发表项,形成以VTEP 1为根,以VTEP 2VTEP 3为叶的SPT,此SPT就是Default-MDT

b.     VTEP 2VTEP 3建立的组播VXLAN隧道与L3VNI关联。此隧道用于封装三层组播流量。

(3)     VTEP 2VTEP 3也各自发起类似的Default-MDT建立过程,最终在Underlay网络中形成三棵相互独立的、连接VTEP与其它VTEPSPT树。

5.2.5  Data-MDT切换

1. Data-MDT切换简介

在公网中通过Default-MDT传送组播数据时,组播报文被传输到属于同一VPN实例的所有VTEP上,无论该VTEP所连接的Site内是否存在接收者。当私网组播数据量比较大时,可能会造成私网组播数据在公网中泛滥。这样既浪费网络带宽,又增加了VTEP的处理负担。

Data-MDT可以用来解决上述问题:在组播源侧VTEP上设置一定的规则(目前,仅支持ACL规则)。当该VTEP检测到组播数据满足该规则时,将新建一棵Data-MDT。只有对这个组播数据感兴趣的VTEP才会加入这棵Data-MDT。组播流量沿着Data-MDT转发给那些真正有接收需求的VTEP

Data-MDT切换依赖于S-PMSI A-D路由。当VTEP发起Data-MDT切换时,组播源侧VTEP会发送S-PMSI A-D类路由,路由中的Multicast Source AddressMulticast Group address对应具体的用户侧流量的(S,G)。同时,路由的PMSI Tunnel Atrribute中携带公网组播VXLAN隧道的信息,包括公网组播源地址(组播源侧VTEPMVXLAN隧道源接口的IP地址)、公网组播组地址(Data-group地址)和L3VNI。希望接收该组播数据的VTEP在收到该路由后,将发送PIM加入消息以加入Data-MDT。未连接接收者的VTEP在收到该路由后不会加入Data-MDT,但会缓存该消息,以便将来有接收者时可以快速加入Data-MDT

2. Default-MDTData-MDT切换过程

Default-MDTData-MDT切换的过程如下:

(1)     私网组播数据通过了ACL规则的过滤时,发起从Default-MDTData-MDT的切换。

(2)     组播源侧VTEPData-Group范围中选取一个引用次数最少的Data-Group地址,并将其通过S-PMSI A-D路由发送至远端VTEP,该路由中包含私网组播源地址、私网组播组地址、源端VTEPMVXLAN源接口地址、Data-Group地址。

(3)     远端VTEP收到S-PMSI A-D路由消息后,检查本地是否有私网组播流量的接收者:如果有,则向组播源侧VTEP发送加入信息加入以组播源所在的VTEP为根的Data-MDT并在公网沿途建立组播转发表项;如果没有,则将该消息缓存起来,等待有接收者时直接向组播源侧VTEP发送加入信息。

(4)     当组播源VTEP发送S-PMSI A-D路由信息一定时间Data-Delay时间)后,该VTEP会停止使用Default-Group地址对私网组播数据进行封装,并改用Data-Group地址进行封装,组播数据沿Data-MDT向下分发。Default-MDT延迟Data-Delay时间向Data-MDT切换,可以为下游VTEP预留出加入Data-MDT的时间,以避免切换过程中数据丢失。

(5)     Default-MDT切换到Data-MDT之后,当某下游VTEP不再连接接收者时,可以通过发送PIM剪枝消息退出Data-MDT

3. Data-MDTDefault-MDT反向切换

当私网组播数据切换到Data-MDT之后,由于情况变化导致其不满足切换条件时,组播源所在的VTEP会把此私网组播数据从Data-MDT反向切换回Default-MDT,反向切换的过程与Default-MDT切换为Data-MDT相同,此处不再赘述。只要满足如下条件之一,VTEP就会进行反向切换:

·     更改Data-Group范围后,用于私网组播数据封装的Data-Group不在新的范围之内。

·     控制私网组播数据由Default-MDTData-MDT切换的ACL规则发生了变化,私网组播数据不能通过新ACL规则的过滤。

5.2.6  学习私网组播流量的转发表项

EVPN VXLAN三层组播组网中,VTEP通过IGMP报文和BGP EVPN路由为私网组播流量动态学习三层组播转发表项。

图16 私网组播流量的三层组播转发表项学习过程图

 

不同组播接收者触发学习私网组播三层转发表项的过程类似。如16所示,以Receiver 2为例,私网组播流量的三层组播转发表项学习过程为:

(1)     组播接收者Receiver 2发送IGMP成员关系报告报文(以下简称为IGMP Report报文)请求加入组播组(*G)。

(2)     VTEP 2接收到IGMP report,生成层组播转发表项,出端口为连接ReceiverAC

(3)     VTEP 2VTEP 1VTEP 3发送携带(*,G)信息SMET路由。

(4)     VTEP 1VTEP 3收到SMET路由后,生成层组播转发表项,出端口为组播VXLAN隧道(Default-MDTData-MDT)接口

5.3  数据平面转发三层组播报文

三层组播目前仅支持核心复制方式,暂不支持头端复制方式。

5.3.1  组播报文封装

VTEP在将本地站点网络内的组播源发送的组播报文(称为私网组播报文)转发给远端VTEP前,为其添加VXLAN封装,封装的目的地址为公网组播组地址,即VTEP将私网组播报文转换为公网组播报文,在公网上基于公网组播组地址转发组播报文,从而实现私网组播流量在公网上的透明传递。公网组播组地址可以是Default-Group地址或Data-Group地址。

图17 组播报文封装示意图

 

5.3.2  三层组播流量转发过程

分布式EVPN网关场景下,对于二层和三层组播流量,均查找三层组播转发表项进行转发。

图18 三层组播流量转发过程示意图

 

18所示,三层组播流量的转发过程为:

(1)     VTEP接收到组播报文后,判断报文所属VSI,并查找与该VSI关联的VSI虚接口,在与VSI虚接口关联的VPN实例内查找三层组播转发表项,并根据匹配的三层组播转发表项转发报文:

¡     如果三层组播转发表项的出接口为本地接口,则VTEP通过本地接口将组播流量转发给组播接收者

¡     如果三层组播转发表项的出接口为组播VXLAN隧道口,则VTEP报文添加组播VXLAN隧道的VXLAN封装(源地址为MVXLAN隧道源接口的IP地址,目的地址为Default-groupData-group地址)后将其转发到Underlay网络。其中,为报文封装的VXLAN ID为与VPN实例关联的L3VNI

(2)     Underlay网络中的设备根据已经建立的公网三层组播转发表项将组播报文发送给远端VTEP

(3)     远端VTEP接收到报文后,根据L3VNI判断报文所属的VPN实例,解除VXLAN封装后,在该VPN实例内查找三层组播转发表项。如果本地存在组播接收者,则将解封装后的组播报文转发给组播接收者;如果本地不存在组播接收者,则丢弃该报文。

EVPN组播支持数据中心互联

6.1  二层组播支持DCI

6.1.1  EVPN VXLAN DCI二层组播转发(L2VNI相同)

数据中心的边缘设备为EDEdge Device,边缘设备)。ED之间建立VXLAN-DCI隧道,该隧道采用VXLAN封装方式。数据中心内部建立VXLAN隧道。同一租户在各数据中心内使用相同的L2VNI。跨数据中心的流量通过VXLAN隧道到达ED后,通过VXLAN-DCI隧道将其转发到其它数据中心ED。二层流量通过VXLAN-DCI隧道在ED之间转发时,携带的是L2VNI

图19 EVPN VXLAN DCI二层组播转发(L2VNI相同)示意图

 

19所示的组网中,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2通过IGMP Snooping侦听到IGMP report报文,生成二层组播转发表项,出端口为连接ReceiverAC

(3)     VTEP 2ED 2发送携带(*,G)信息SMET路由。

(4)     ED 2收到SMET路由,生成二层组播转发表项,出端口为指向VTEP 2的单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)。

(5)     ED 2将路由的下一跳修改为自身的IP地址后,继续将SMET路由转发给ED 1

(6)     ED 1收到SMET路由,生成二层组播转发表项,出端口为指向ED 2的单播VXLAN-DCI隧道。

(7)     ED 1将路由的下一跳修改为自身的IP地址并继续将SMET路由转发给VTEP 1

(8)     VTEP 1收到SMET路由后,会生成二层组播转发表项,出端口指向ED 1的单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)。

19所示的组网中,报文转发过程如下:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,通过单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)将报文转发给ED 1

(2)     ED 1解除VXLAN封装后,重新对报文进行VXLAN封装,通过VXLAN-DCI隧道将报文发送给ED 2

(3)     ED 2解除VXLAN封装后,重新封装报文,通过单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)将报文转发给VTEP 2

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

6.1.2  EVPN VXLAN DCI二层组播转发(L2VNI映射)

在数据中心互联的场景中,如果同一租户在各数据中心内使用的L2VNI不同,但还需要跨数据中心进行二层组播互通,则可以通过L2VNI映射来解决L2VNI不同的问题。

L2VNI映射包含:

·     将本地VXLAN直接映射为另一个数据中心中使用的VXLAN。采用此方式时,只需在一个数据中心的ED上指定映射的远端VXLAN

·     将不同数据中心ED上的本地VXLAN映射为相同的VXLAN(称为中间VXLAN)。采用此方式时,需要在所有数据中心的ED上都指定映射的远端VXLAN为中间VXLAN

图20 EVPN VXLAN DCI二层组播转发(L2VNI映射)示意图

 

20所示的组网中,以映射为中间VXLAN 1000为例,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2通过IGMP Snooping侦听到IGMP report报文,生成二层组播转发表项,出端口为连接ReceiverAC

(3)     VTEP 2ED 2发送携带(*,G)信息SMET路由。

(4)     ED 2收到SMET路由,生成二层组播转发表项,出端口为指向VTEP 2的单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)。

(5)     ED 2SMET路由的RT修改成中间VXLANRT,并继续将SMET路由转发给ED 1

(6)     ED 1收到SMET路由,生成二层组播转发表项,出端口为指向ED 2的单播VXLAN-DCI隧道。

(7)     ED 1将路由的RT修改成DC 1VXLANRT并继续将SMET路由转发给VTEP 1

(8)     VTEP 1收到该路由后,会生成二层组播转发表项,出端口指向ED 1的单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)。

20所示的组网中,报文转发过程如下:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,通过单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)将报文转发给ED 1为报文封装的VXLAN IDDC 1内使用的VXLAN ID 10

(2)     ED 1解除VXLAN封装后,重新对报文进行VXLAN封装,封装中间VXLANVXLAN ID 1000,通过VXLAN-DCI隧道将报文发送给ED 2

(3)     ED 2解除VXLAN封装后,重新封装报文,通过单播VXLAN隧道头端复制方式下)或者二层组播VXLAN隧道(核心复制方式下)将报文转发给VTEP 2为报文封装的VXLAN IDDC 2内使用的VXLAN ID 20

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

6.1.3  二层组播DCI支持双ED

EVPN数据中心互联场景中,为了提高ED的可靠性,避免单点故障,在数据中心的边缘可以部署两台ED设备与其他数据中心互联。这两台ED设备使用相同的虚拟IP地址,虚拟成一台ED设备,采用虚拟IP地址与VTEP、远端ED建立隧道,以实现冗余保护和负载分担。

对于EVPN VXLAN二层组播,目前仅头端复制方式支持双ED

图21 二层组播DCI支持双ED示意图

 

同一个数据中心的两台ED使用不同的地址作为BGP对等体地址,分别与VTEP远端ED建立BGP EVPN邻居。21所示的组网中,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2通过IGMP Snooping侦听到IGMP report报文,生成二层组播转发表项,出端口为连接ReceiverAC

(3)     VTEP 2ED 3ED 4分别建立BGP EVPN邻居,ED 3ED 4发送携带(*,G)信息SMET路由。

(4)     ED 3ED 4收到SMET路由,生成二层组播转发表项,出端口为指向VTEP 2的单播VXLAN隧道

(5)     ED 3ED 4继续将SMET路由转发给ED 1ED 2

(6)     ED 1ED 2收到SMET路由,生成二层组播转发表项,出端口为指向ED 3ED 4的单播VXLAN-DCI隧道ED 3ED 4有相同的虚拟IP地址,单播VXLAN-DCI隧道的目的IP地址为该虚拟IP地址。

(7)     ED 1ED 2SMET路由的下一跳地址修改ED 1ED 2的虚拟IP地址,并将该路由发送给VTEP 1

(8)     VTEP 1ED 1ED 2收到路由信息、下一跳均相同的SMET路由(下一跳为ED 1ED 2的虚拟IP地址)。VTEP 1生成二层组播转发表项,出端口指向ED 1ED 2虚拟IP地址的单播VXLAN隧道

21所示的组网中,报文转发过程如下:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,通过单播VXLAN隧道将报文转发给ED 1ED 2Underlay网络的路由机制,决定报文发送给ED 1还是ED 2

(2)     ED 1ED 2接收到报文后,解除VXLAN封装,重新对报文进行VXLAN封装,通过VXLAN-DCI隧道将报文发送给ED 3ED 4

(3)     ED 3ED 4接收到报文后,解除VXLAN封装,重新对报文进行VXLAN封装,通过单播VXLAN隧道将报文转发给VTEP 2

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

当某个ED故障时,数据中心内的单播VXLAN隧道、数据中心间的VXLAN-DCI隧道的目的地址不会改变,隧道不会down。通过Underlay网络的路由机制,可以自动将流量切换到另一台ED,避免流量转发中断。

6.2  三层组播支持DCI

6.2.1  EVPN VXLAN DCI三层组播转发(L3VNI相同)

数据中心的边缘设备为EDED之间建立VXLAN-DCI隧道,该隧道采用VXLAN封装方式。数据中心内部建立组播VXLAN隧道。跨数据中心的流量通过组播VXLAN隧道到达ED,通过VXLAN-DCI隧道将其转发到其它数据中心ED。三层流量通过VXLAN-DCI隧道在ED之间转发时,携带的是L3VNI

图22 Default-MDT转发组播流量时的路由发布过程L3VNI相同)

 

22所示,数据中心内通过Default-MDT转发组播流量时,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2接收到IGMP report报文,生成层组播转发表项,出口为VSI虚接口,出端口为连接ReceiverAC

(3)     VTEP 2ED 2发送携带(*,G)信息SMET路由。

(4)     ED 2收到SMET路由,生成层组播转发表项,出接口为DC 2内的组播VXLAN隧道。

(5)     ED 2将路由的下一跳修改为自身的IP地址后,继续将SMET路由转发给ED 1

(6)     ED 1收到SMET路由,生成层组播转发表项,出接口为L3VNI对应的VSI虚接口,出端口为指向ED 2的单播VXLAN-DCI隧道。

(7)     ED 1继续将SMET路由转发给VTEP 1

(8)     VTEP 1收到SMET路由后,会生成层组播转发表项出接口DC 1内的组播VXLAN隧道。

图23 Default-MDT切换到Data-MDT时的路由发布过程(L3VNI相同)

 

组播流量从Default-MDT切换到Data-MDT时,路由发布过程如下:

(1)     组播源侧VTEPVTEP 1)向ED 1发送S-PMSI A-D路由通告待切换的组播流量和Data-group信息

(2)     ED 1收到S-PMSI A-D路由后加入DC 1内的Data-MDT

(3)     ED 1S-PMSI A-D路由继续通告给ED 2

(4)     ED 2收到S-PMSI A-D路由后,将Data-MDT的源地址替换成ED 2的地址,并将S-PMSI A-D路由继续通告给VTEP 2

(5)     VTEP 2收到该路由后,加入DC 2内的Data-MDT

22所示的组网中,完成三层组播转发表项学习及组播VXLAN隧道建立后,根据三层组播转发表项转发报文的过程为:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,查找三层组播转发表项,通过出接口组播VXLAN隧道将报文转发给ED 1

(2)     ED 1解除VXLAN封装后,查找三层组播转发表项,重新对报文进行VXLAN封装,通过VXLAN-DCI隧道将报文发送给ED 2

(3)     ED 2解除VXLAN封装后,查找三层组播转发表项,重新封装报文,通过组播VXLAN隧道将报文转发给VTEP 2

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

6.2.2  EVPN VXLAN DCI三层组播转发(L3VNI映射)

在数据中心互联的场景中,如果同一租户在各数据中心内使用的L3VNI不同,但还需要跨数据中心进行三层组播互通,则可以通过L3VNI映射来解决L3VNI不同的问题。

L3VNI映射包含:

·     将本地VXLAN直接映射为另一个数据中心中使用的VXLAN。采用此方式时,只需在一个数据中心的ED上指定映射的远端VXLAN

·     将不同数据中心ED上的本地VXLAN映射为相同的VXLAN(称为中间VXLAN)。采用此方式时,需要在所有数据中心的ED上都指定映射的远端VXLAN为中间VXLAN

L3VPN映射通过对S-PMSI A-D路由和SMET路由进行重生成,将S-PMSI A-D路由和SMET路由插入到映射L3VNI对应的VPN实例来实现。

图24 Default-MDT转发组播流量时的路由发布过程(L3VNI映射)

 

24所示,以映射到中间VXLAN为例,数据中心内通过Default-MDT转发组播流量时,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2接收到IGMP report报文,生成层组播转发表项,出口为VSI虚接口,出端口为连接ReceiverAC

(3)     VTEP 2ED 2发送携带(*,G)信息SMET路由。

(4)     ED 2收到SMET路由,生成层组播转发表项,出接口为DC 2内的组播VXLAN隧道。

(5)     ED 2根据路由重生成规则,SMET路由重生成到中间VPN(将路由的RTRD修改为中间VPNRTRD),并将该路由转发给ED 1

(6)     ED 1收到SMET路由,生成层组播转发表项,出接口为L3VNI对应的VSI虚接口,出端口为指向ED 2的单播VXLAN-DCI隧道。

(7)     ED 1根据路由重生成规则,SMET路由重生成到DC 1内的VPN(将路由的RTRD修改为DC 1VPNRTRD),并将该路由转发给VTEP 1

(8)     VTEP 1收到SMET路由后,会生成层组播转发表项出接口DC 1内的组播VXLAN隧道。

图25 Default-MDT切换到Data-MDT时的路由发布过程(L3VNI映射)

 

组播流量从Default-MDT切换到Data-MDT时,路由发布过程如下:

(1)     组播源侧VTEPVTEP 1)向ED 1发送S-PMSI A-D路由通告待切换的组播流量和Data-group信息

(2)     ED 1收到S-PMSI A-D路由后加入DC 1内的Data-MDT

(3)     ED 1根据路由重生成规则,SMET路由重生成到中间VPN(将路由的RTRD修改为中间VPNRTRD),并将该路由转发给ED 2

(4)     ED 2收到S-PMSI A-D路由后,将Data-MDT的源地址替换成ED 2的地址,并根据路由重生成规则,SMET路由重生成到DC 2VPN(将路由的RTRD修改为DC 2VPNRTRD),并将该路由转发给VTEP 2

(5)     VTEP 2收到该路由后,加入DC 2内的Data-MDT

24所示的组网中,完成三层组播转发表项学习及组播VXLAN隧道建立后,根据三层组播转发表项转发报文的过程为:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,查找三层组播转发表项,通过出接口组播VXLAN隧道将报文转发给ED 1。此时,为报文封装的L3VNIDC 1L3VNI

(2)     ED 1解除VXLAN封装后,查找三层组播转发表项,重新对报文进行VXLAN封装,通过VXLAN-DCI隧道将报文发送给ED 2。此时,为报文封装的L3VNI为中间VPNL3VNI

(3)     ED 2解除VXLAN封装后,查找三层组播转发表项,重新封装报文,通过组播VXLAN隧道将报文转发给VTEP 2。此时,为报文封装的L3VNIDC 2L3VNI

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

6.2.3  三层组播DCI支持双ED

EVPN数据中心互联场景中,为了提ED的可靠性,避免单点故障,在数据中心的边缘可以部署两台ED设备与其他数据中心互联。这两台ED设备使用相同的虚拟IP地址,虚拟成一台ED设备,采用虚拟IP地址与VTEP、远端ED建立隧道,以实现冗余保护和负载分担。同一个数据中心的两台ED使用不同的地址作为BGP对等体地址,分别与VTEP、远端ED建立BGP EVPN邻居,以实现在Underlay网络内通过路由协议实现负载分担。

图26 三层组播DCI支持双ED组网中SMET路由发布示意图

 

26所示,数据中心内通过Default-MDT转发组播流量时,路由发布过程如下:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。

(2)     VTEP 2接收到IGMP report报文,生成层组播转发表项,出口为VSI虚接口,出端口为连接ReceiverAC

(3)     VTEP 2ED 3ED 4分别建立BGP EVPN邻居,ED 3ED 4发送携带(*,G)信息SMET路由。

(4)     ED 3ED 4收到SMET路由,生成层组播转发表项,出接口为DC 2内的组播VXLAN隧道。

(5)     ED 3ED 4路由的下一跳地址修改ED 3ED 4的虚拟IP地址后,继续将SMET路由转发给ED 1ED 2

(6)     ED 1ED 2收到SMET路由,生成层组播转发表项,出接口为L3VNI对应的VSI虚接口,出端口为指向ED 3ED 4的单播VXLAN-DCI隧道ED 3ED 4有相同的虚拟IP地址,单播VXLAN-DCI隧道的目的IP地址为该虚拟IP地址。

(7)     ED 1ED 2SMET路由发送给VTEP 1

(8)     VTEP 1ED 1ED 2收到SMET路由后,生成三层组播转发表,出接口DC 1内的组播VXLAN隧道。

图27 三层组播DCI支持双ED组网中S-PMSI A-D路由发布示意图

 

组播流量从Default-MDT切换到Data-MDT时,路由发布过程如下:

(1)     组播源侧VTEPVTEP 1)向ED 1ED 2发送S-PMSI A-D路由通告待切换的组播流量和Data-group信息

(2)     ED 1ED 2收到S-PMSI A-D路由后加入DC 1内的Data-MDT

(3)     ED 1ED 2S-PMSI A-D路由转发给ED 3ED 4

(4)     ED 3ED 4收到S-PMSI A-D路由后,将Data-MDT的源地址替换成ED 3ED 4的虚拟IP地址,并将该路由转发给VTEP 2

(5)     VTEP 2收到该路由后,加入DC 2内的Data-MDT

由于三层组播流量通过组播VXLAN隧道转发,因此两台ED都能接收到组播流量。此时,需要根据组播组地址和ED的实际IP地址选择一台ED作为组播流量的DFDesignated Forwarder,指定转发者)。不同组播流量选择的DF可能不同,以实现组播流量在ED上进行负载分担。

26所示的组网中,完成三层组播转发表项学习及组播VXLAN隧道建立后,根据三层组播转发表项转发报文的过程为:

(1)     VTEP 1接收到组播源Source发送的组播数据报文后,查找三层组播转发表项,通过出接口组播VXLAN隧道将报文转发给ED 1ED 2

(2)     ED 1ED 2解除VXLAN封装后,判断自己是否为该组播流量的DF。若为DF,则查找三层组播转发表项,重新对报文进行VXLAN封装,通过VXLAN-DCI隧道将报文发送给ED 3ED 4若不是DF,则ED不会转发组播流量。

(3)     ED 3ED 4解除VXLAN封装后,查找三层组播转发表项,重新封装报文,通过组播VXLAN隧道将报文转发给VTEP 2

(4)     VTEP 2解除VXLAN封装后,将报文发送给组播接收者Receiver

EVPN组播支持DRNI

7.1  EVPN组播支持DRNI工作机制概述

7.1.1  典型组网

组播VXLAN利用分布式聚合功能DRNIDistributed Resilient Network Interconnect,分布式弹性网络互连)将两台物理设备连接起来虚拟成一台设备,避免设备单点故障对网络造成影响,从而提高组播VXLAN网络的可靠性。在组播VXLAN组网中,VTEPBorder设备均支持分布式聚合,且分布式聚合的VTEPBorder设备均可以连接组播源和组播接收者。

EVPN组播支持DRNI的典型组网如28所示。VTEP 1VTEP 2组成DRDistributed Relay,分布式聚合)系统VTEP 3VTEP 4组成DR系统,Border 1Border 2组成DR系统。组成DR系统的两台VTEP/Border具有相同的虚拟地址,对外表现为一台虚拟设备。其他VTEP/Border使用该地址与这台虚拟设备自动建立单播VXLAN隧道。组播VXLAN隧道的源地址也使用该虚拟VTEP地址。由于存在Underlay网络的组播RPF检查机制,设备只会加入到DR系统中一台设备的组播VXLAN隧道。例如,VTEP 3VTEP 4在加入组播VXLAN隧道时,只会加入到VTEP 1VTEP 2中一台VTEP的组播VXLAN隧道,不会同时加入VTEP 1VTEP 2的组播VXLAN隧道。

图28 组播VXLAN支持分布式聚合组网

 

7.1.2  用户侧备份机制

组播VXLAN支持DRNI功能通过IPLIntra-Portal Link,内部控制链路)链路在组成DR系统的成员设备间同步组播流量和组播接收者加入请求(IGMP成员关系报告报文或者PIM加入报文),使成员设备上的组播源和组播接收者信息保持一致,形成设备级备份。当一台成员设备发生故障(设备故障、上下行链路故障等)时,组播流量可以由另一台成员设备进行转发,从而避免组播流量转发中断。

28所示的组网中,用户侧备份机制为:

·     组播源侧备份:组播源Source 1通过DRNI接入后,Source 1的组播流量会发送到VTEP 1VTEP 2中的一台设备。接收到组播流量的VTEP通过IPL链路,将组播流量同步到另外一台VTEP,从而实现VTEP 1VTEP 2上都存在组播流量

·     组播接收者侧备份:组播接收者通过DRNI接入后,组播接收者的加入请求会发送到VTEP 3VTEP 4中的一台设备。接收到加入请求VTEP通过IPL链路,将加入请求同步到另外一台VTEP,从而实现在VTEP 3VTEP 4上都建立组播转发表项,表项的出接口为DR

7.1.3  组播流量分担

组播源侧的DR设备接收到组播流量后,采用奇偶原则对组播流量进行负载分担,DR系统编号为奇数的成员设备转发组播组地址为奇数的流量,DR系统编号为偶数的成员设备转发组播组地址为偶数的流量。当一台设备发生故障时,另一台设备可以接替其工作,避免流量转发中断。

说明

DR设备上的组播流量奇偶负载分担原则仅针对三层组播转发生效,对二层组播转发不生效。

 

7.2  二层组播支持DRNI

7.2.1  典型组网

29所示,二层组播支持DRNI组网中,仅支持组播接收者通过DRNI方式接入,不支持组播源通过DRNI方式接入,且流量转发仅支持头端复制方式。

图29 二层组播支持DRNI典型组网

 

7.2.2  正常情况下路由发布及流量转发过程

DR设备正常工作时,二层组播支持DRNI组网中,路由发布及组播转发表项生成过程为:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。IGMP report报文发送到VTEP 3VTEP 4(下文以VTEP 3为例)

(2)     VTEP 3通过IGMP Snooping侦听到IGMP report报文,生成二层组播转发表项(*,G),出端口为DR

(3)     VTEP 3通过IPL链路IGMP report报文同步到VTEP 4。同时VTEP 3发送SMET路由给VTEP 1VTEP 2

(4)     VTEP 4接收到同步的IGMP report报文后,生成二层组播转发表项(*,G),出端口为DR口。同时VTEP 4发送SMET路由给VTEP 1VTEP 2

(5)     VTEP 1VTEP 2收到SMET路由后,生成二层组播转发表项,出端口为连接VTEP 3VTEP 4虚拟地址的单播VXLAN隧道接口

DR设备正常工作时,完成路由发布及组播转发表项生成后,报文转发过程为:

(1)     组播源Source将流量发送给VTEP 1

(2)     VTEP 1通过单播VXLAN隧道,将流量发送给VTEP 3或者VTEP 4

(3)     VTEP 3或者VTEP 4收到组播流量后,将其转发给本地的组播接收者。

7.2.3  故障保护

组播接收者侧的一台DR设备故障时,IGMP report报文可以发送给未故障的DR设备,并且仍可以通过IPL链路在DR设备之间同步IGMP report,流量转发不会受到影响。

组播接收者侧DR系统的IPL链路故障时,IGMP report无法在DR设备之间同步。仅收到IGMP reportVTEP会发送SMET路由给组播源侧VTEP,实现引流,组播流量转发不会中断。

7.3  三层组播支持DRNI

7.3.1  正常情况下组播VXLAN隧道的建立过程

30所示,DR设备正常工作时,以VTEP 1VTEP 2这组DR系统为起点,组播VXLAN隧道建立过程为:

(1)     VTEP 1或者 VTEP 2发送S-PMSI A-D路由,携带组播VXLAN隧道信息,其中隧道的源地址VTEP 1VTEP 2的虚拟地址

(2)     Spine 1Spine 2VTEP 3VTEP 4收到VTEP 1或者 VTEP 2发送的S-PMSI A-D路由,都发送组播加入请求(Mtunnel join),尝试加入到VTEP 1 VTEP 2的组播VXLAN隧道。每台设备查找各自本地单播路由表,找到前往VTEP 1VTEP 2虚拟地址的上游地址,逐跳发送组播加入请求VTEP 1 VTEP 2。以VTEP 1 VTEP 2为起点的组播VXLAN隧道的组播分发树有多种可能的情况,这取决于组网中每台设备上的单播路由表,以及组播RPF路由的选取规则。

图30 正常情况下组播VXLAN隧道的建立过程

 

7.3.2  正常情况下路由发布及流量转发过程

DR设备正常工作时,路由发布过程为:

(1)     组播接收者Receiver发送IGMP report报文请求加入组播组(*G)。IGMP report报文发送到VTEP 3VTEP 4(下文以VTEP 3为例)

(2)     VTEP 3接收到IGMP report报文,生成层组播转发表项

(3)     VTEP 3通过IPL链路IGMP report报文同步VTEP 4。同时VTEP 3发送SMET路由给VTEP 1VTEP 2

(4)     VTEP 4接收到同步的IGMP report报文后,生成层组播转发表项。同时VTEP 4发送SMET路由给VTEP 1VTEP 2

(5)     VTEP 1VTEP 2收到SMET路由后,生成层组播转发表项,出端口为组播VXLAN隧道接口

图31 DR设备正常工作时的路由发布过程

 

DR设备正常工作时,完成路由发布及组播转发表项生成后,报文转发过程为:

(1)     组播源Source将流量发送给VTEP 1

(2)     VTEP 1收到组播流量后,通过IPL链路将流量同步VTEP 2

(3)     VTEP 1 VTEP 2通过组播VXLAN隧道将流量转发给远端VTEP

(4)     VTEP 3VTEP 4通过组播VXLAN隧道收到组播流量,按照奇偶负载分担原则向DR的组播接收者转发组播流量

7.3.3  组播源侧故障保护

1. 组播VXLAN隧道建立

组播源侧IPL链路故障后,VTEP 1VTEP 2之间无法同步组播流量。由于VTEP 1VTEP 2均需要发送组播流量,因此VTEP 1VTEP 2需要采用自己的实际IP地址作为源地址建立组播VXLAN隧道。以 VTEP 1VTEP 2这组DR系统为起点,组播VXLAN隧道建立过程为:

(1)     VTEP 1或者 VTEP 2发送S-PMSI A-D路由,携带组播VXLAN隧道信息,其中隧道的源地址VTEP 1VTEP 2各自的实际IP地址VTEP 1 VTEP 2分别建立以各自IP地址为起点的组播VXLAN隧道,这两条组播VXLAN隧道拥有各自独立的组播分发树。

(2)     VTEP 1为例,Spine 1Spine 2VTEP 3VTEP 4收到VTEP 1S-PMSI A-D路由,都发送组播加入请求,会尝试加入到VTEP 1的组播VXLAN隧道。每台设备查找各自本地单播路由表,找到前往VTEP 1的上游地址,逐跳发送组播加入请求VTEP 1。以VTEP 1为起点的组播VXLAN隧道的组播分发树有多种可能的情况,这取决于组网中每台设备上的单播路由表,以及组播RPF路由的选取规则。

2. 路由发布

组播源侧IPL故障时,路由发布和流量转发过程与DR系统正常工作时相同,详细介绍请参见“7.3.2  正常情况下路由发布及流量转发过程”。

3. 流量转发

组播源侧IPL链路故障时,报文转发过程为:

(1)     组播源Source将流量发送给VTEP 1

(2)     VTEP 1收到组播流量后,通过组播VXLAN隧道将流量转发给远端VTEP组播VXLAN隧道的源地址为VTEP 1的地址。此时,VTEP 2接收不到组播流量,不会转发组播流量。

(3)     VTEP 3VTEP 4通过组播VXLAN隧道收到组播流量,按照奇偶负载分担原则向DR的组播接收者转发组播流量

7.3.4  组播接收者侧故障保护

组播接收者侧的一台DR设备故障时,IGMP report报文可以发送给未故障的DR设备,并且仍可以通过IPL链路在DR设备之间同步IGMP report,流量转发不会受到影响。

组播接收者侧DR系统的IPL链路故障时,IGMP report无法在DR设备之间同步。仅收到IGMP reportVTEP会发送SMET路由给组播源侧VTEP,实现引流,组播流量转发不会中断。

典型组网应用

8.1  城轨组播典型组网(源在数据中心,接收者在车站)

32所示,在城轨网络中,车站核心网、接入网内运行OSPF;数据中心网络内运行EVPN。为了在城轨网络中提供广播(PA)、乘客信息系统(PIS)等业务,组播源需要部署在数据中心网络,组播接收者需要部署在车站核心网络。组播源和组播接收者均通过DRNI接入,以提高流量转发的可靠性。在数据中心网络内,Leaf接收到组播源发送的流量后,通过EVPN组播技术,对组播流量进行VXLAN封装,并将封装后的流量转发到BorderBorder将组播流量解封装后发送到接入网。接入网和车站核心网内的设备通过IP组播技术将流量转发给组播接收者。

图32 城轨组播典型组网场景(源在数据中心,接收者在车站)

 

8.2  城轨组播典型组网(源在车站,接收者在数据中心)

33所示,在城轨网络中,车站核心网、接入网内运行OSPF;数据中心网络内运行EVPN。为了在城轨网络中提供视频监控系统(CCTV)等业务,组播源需要部署在车站核心网络,组播接收者需要部署在数据中心网络。组播源和组播接收者均通过DRNI接入,以提高流量转发的可靠性。组播源发送的流量通过IP组播技术,从车站核心网、接入网转发到BorderBorder通过EVPN组播技术,对组播流量进行VXLAN封装,并将封装后的流量转发到LeafLeaf将组播流量解封装后发送给组播接收者。

图33 城轨组播典型组网场景(源在数据中心,接收者在车站)

 

8.3  城轨组播典型组网(车站和数据中心均存在源和接收者)

34所示,在城轨网络中,车站核心网、接入网内运行OSPF;数据中心网络内运行EVPN。为了在城轨网络中提供综合监控系统(ISCS)等业务,在车站核心网络和数据中心网络内均需要部署组播源和组播接收者,同一台设备也可能同时作为组播源和组播接收者。组播源和组播接收者均通过DRNI接入,以提高流量转发的可靠性。车站核心网和接入网内的设备通过IP组播技术转发组播流量,数据中心网络内的设备通过EVPN组播技术转发组播流量。

图34 城轨组播典型组网场景(车站和数据中心均存在源和接收者)

 

 

新华三官网
联系我们