AI智能总结
概述 1.1 产生背景 在IP通信领域,数据传播方式主要包括单播(Unicast)、广播(Broadcast)与组播(Multicast)三类。如图1-1所示,单播负责实现源主机与目的主机之间的点对点通信,广播负责实现源主机与同网段中所有其它主机之间点对多点的通信,而组播则负责解决单点发送、多点接收的问题。 组播技术有效地解决了网络中点到多点的数据传输问题,能够有效节约网络带宽和降低网络负载。该技术服务于许多对带宽和实时交互要求较高的网络应用,例如,在线直播、网络电视、远程教育、远程医疗、网络电台和实时视频会议。组播技术的实现依赖于组播组技术管理协议和组播路由协议两大类组播协议,MSR6(MulticastSourceRoutingoverIPv6,IPv6上的组播源路由)可以被视为一种组播路由协议。 如表1-1所示,传统组播中常用的组播路由协议包括PIM(ProtocolIndependentMulticast,协议无关组播)和MVPN(MulticastVirtualPrivateNetwork,组播虚拟专用网络)。 近年来,网络技术飞速发展、网络规模不断扩张,为了应对新的需求,突破传统组播的发展瓶颈,IETF(TheInternetEngineeringTaskForce,国际互联网工程任务组)通过RFC8279定义了BIER 2.2.2MSR6封装中的IPv6基本头约定 在对组播报文进行BIER封装时,如果采用MSR6封装类型,那么IPv6基本头应遵循如下约定: SourceAddresS:源地址需要配置为Src.DTxSID。Src.DTxSID由BIFR指定,在组播报文的BIER转发过程中保持不变。DestinationAddress:目的地址需要配置为End.RGBSID,要求在子域内路由可达。如果BFR收到IPv6报文中的目的地址为End.RGBSID,那么就需要对该报文进行MSR6转发 2.2.3MSR6封装中的MSR6头部 在对组播报文进行BIER封装时,如果采用MSR6封装类型,那么,DOH中包含的MSR6头部如图2-2所示,其结构与RFC8296中定义的Non-MPLSBIERHeader相似,复用了其中一些字段, 但部分字段(如Nibble、Proto等)被替换为保留字段,保留字段应设置为O,并在接收时必须被忽略。 MSR6头部各主要字段含义如表2-2所示。 2.3MSR6封装类型的BIER模式MVPN 基于MSR6的组播业务,主要应用在MSR6封装类型的BIER模式MVPN中。此场景下,使用MSR6封装类型的BIER作为公网承载隧道,对组播私网流量进行MSR6封装并穿越公网发送到BIER子域其他各节点。 MSR6封装类型的BIER模式MVPN运行机制与其他封装类型的BIER模式MVPN相似: (1)组播源侧PE首先通过与接收者PE交互BGPMVPN路由,获知组播流量需要发送给哪些接收者侧PE。(2)组播源侧PE和接收者侧PE之间通过BGP报文中携带的三类路由信息(详见表2-3)传递BIER信息(BFRID、Sub-domainID、BFRprefix)。 (3)线组播数据根据PIM路由表由CE传输到PE上的相容性隧道时完成了私网到公网的无缝连接组播源侧PE将收到私网组播数据封装MSR6头后,通过相容性隧道进行MSR6数据转发,将组播数据传输给接收者侧PE,接收者侧PE收到该报文后通过剥离标签信息将其还原成私网组播报文。关于MSR6数据转发过程的详细介绍,请参见“2.5MSR6数据转发”。 (4)当组播源侧P巨上有满足切换选择性隧道条件的组播流量时,建立选择性隧道,并通过选择性隧道传输封装了MSR6头的私网组播数据。 关于相容性隧道和选择性隧道的详细介绍,请参见《BER技术白皮书》”。 2.4MSR6隧道创建 对于MSR6封装类型的BIER模式MVPN,组播流量首先通过相容性隧道传输。一个VPN实例对应一个相容性隧道,不同VPN实例之间的相容性隧道相互独立且不能相同。创建相容性隧道后,无论是否有组播流量,相容性隧道会一直存在。在指定VPN实例下创建选择性隧道后,符合条件的组播流量将切换到选择性隧道传输。 2.4.1创建相容性隧道 如图2-3所示,私网侧采用PIM协议,公网为BIER网络(封装类型为MSR6)。在PE1、PE2和PE3上均部署了BGP和MVPN之后,相容性隧道的创建过程如下: (1)PE1向PE2和PE3发送1类路由Intra-ASI-PMSIA-DRoute,该路由携带以下信息: oPMSITunnelattribute,用于传递隧道信息。其中,TunnelType字段取值为BIER隧道,并携带PE1的BIER信息(SubdomainID、BFRID、BFRprefix)。 (2)FPE2和PE3接收到PE1发送的1类路由后,检查此路由中的RouteTarget属性与本地VPN实例配置的ImportTarget是否匹配。如果匹配,则接收此路由。同时向PE1回复4类路由LeafA-Droute,该路由携带以下信息: 。RouteTarget:用于控制路由的发布和接收,配置为PE2或者PE3的ExportTarget。oPMSITunnelattribute,用于传递隧道信息。其中,TunnelType字段取值为BIER隧道,并携带各自与PE1处于相同BIER子域的BIER信息(通过PE1发送的1类路由中获取到的SubdomainID查找到本地相同的子域中,配置的BFRID和BFRprefix)。 (3)PE1收到PE2和PE3发送的4类路由后,检查此路由中的RouteTarget属性与本地VPN实例配置的ImportTarget是否匹配。如果匹配,则接收此路由。将PE2和PE3记录为MVPN的成员。同时,根据收到的4类路由中携带的BFRID和对应BIER子域内配置的BSL的值,计算得到Sl。PE1将所有叶子的信息合并,就生成了对应的BitString,即BIER类型的相容性隧道。 2.4.2创建选择性隧道并进行隧道切换 当相容性隧道接收到指定(S,G)表项的组播流量时,进行选择性隧道切换,实现了不同组播流量传输的隧道分离。一个VPN实例内允许存在多个选择性隧道。 如图2-4所示,创建选择性隧道并进行隧道切换的具体过程如下: oRouteTarget:用于控制路由的发布和接收,配置为PE1的ExportTarget。PMSITunnelattribute,用于传递隧道信息。其中,TunnelType字段取值为BIER隧道,并携带PE1的BIER信息(SubdomainID、BFRID、BFRprefix)。 实例配置的ImportTarget是否匹配。如果匹配,则接收此路由。如果下游存在接收者,则向PE1回复4类路由LeafA-Droute,否则丢弃该路由。回复的4类路由携带以下信息: oRouteTarget:用于控制路由的发布和接收,配置为PE2或者PE3的ExportTargetoPMSITunnelattribute,用于传递隧道信息。其中,TunnelType字段取值为BIER隧道,并携带各自与PE1处于相同BIER子域的BIER信息(通过PE1发送的1类路由中获取到的SubdomainID查找到本地相同的子域中,配置的BFRID和BFRprefix)。 (3)PE1收到PE2和PE3发送的4类路由后,检查此路由中的RouteTarget属性与本地VPN实例配置的ImportTarget是否匹配。如果匹配,则接收此路由。将PE2和PE3记录为MVPN的成员。同时,根据收到的4类路由中携带的BFRID和对应BIER子域内配置的BSL的值,计算得到SI。PE1将所有叶子的信息合并,就生成了指定(S,G)对应的BitString,即BIER类型的选择性隧道。 2.5MSR6数据转发 在MSR6封装类型的BIER模式MVPN中,组播源侧PE将收到的私网组播流量进行MSR6封装后,将在公网内进行BIER数据转发。 为了方便描述和理解,本节以Max-SI为O且BSL为4bits的情况为例进行介绍BIER的转发平面。 2.5.1 BIRT 和 BIFT 为了设备能够顺利执行转发动作,RFC8279定义了BIRT和BIFT。 BIRT即位索引路由表,记录了BFRID信息和目的节点BFRPrefix及下一跳BFR邻居(BFR-NBR)的映射关系。如图2-5所示,BFRE可以根据BIER组播数据中的BFRID、SI与BS信息来查找BIRT,获取相应目的节点BFRPrefix和下一跳BFR邻居信息。 假设BIRT中某几行的SI与BFR-NBR都相同,为了方便的统计转发,BIER将把它们分为一组。因此,可以将这几行对应的BS按照比特位依次进行“或”运算,得到F-BM,用来指导下一步的转发动作。BIFT记录的就是BFRID信息和F-BM及BFR-NBR的映射关系,是BIRT的衍生品。比如,对于图2-5所示BFRE上保存的BIRT,第二行和第三行的SI与BFR-NBR都相同,所以通过计算F-BM的方式来将它们分为一组,那么BFRE上就可以创建如图2-6所示的BIFT。 2.5.2转发过程 以图2-7所示组网为例,DeviceA为BFIR(IngressPE节点),DeviceB、C和D则是BFER,DeviceE与F为TransitBFR。DeviceA、B、C、D的BFRID依次为1、2、3、4。 每台BFER的下游都存在接收者,且3个Receiver属于同一个组播组。BIER子域中的每台设备上:都根据IGP协议泛洪的信息建立了BIFT。此外,BFIR还根据以下信息构建了BIER隧道与BIER信息(BSL、SD、SI、BS)之问的映射关系: .BIER隧道的配置信息:创建选择性隧道或相容性隧道时,配置的BSL与SD。通过BGPMVPN路由学习到的信息:O根据4类路由中携带的BFRID和对应BIER子域内配置的BSL的值,计算得到的SI。。借助BGPMVPN路由,收集用户加入和离开消息,并生成的BS。BS标识的接收设备,也对应BIER隧道目的节点。 1.BFIR的转发过程 如图2-8所示,DeviceA收到由组播源发往该组播组的IP组播报文时,将执行如下动作: (1)根据IPv6封装中的信息,查找MVPN实例对应的组播转发表项,确认对应的出接口和BIER隧道,并根据BIER隧道与BIER信息的映射关系,获悉BIFTID(由BSL、SD、SI三元组唯确定)和BS。本例中该BS为1110,记作BS(aO)。(2)根据BIFTID查找对应的BIFT,得知通往三台BFER的下一跳邻居都是DeviceF。(3)将BS(aO)与表中的F-BM逐行进行“位与”计算。逐行计算时,“位与”计算后取值为1的位不再参与后续“位与”计算。如果使用“x”来表示无需参与计算的位,那么逐行计算的详细步骤如下:。第一行(BFRID=2):将BS(aO)本行的F-BM进行“位与”计算,得到的结果为1110记作BS(a1)。 0第二行(BFRID=3):得到的结果为xxx0。将无需参与计算的位置0后,得到0000,全0结果忽略即可。第三行(BFRID=4):得到的结果为XXx0。将无需参与计算的位置0后,得到0000,全0结果忽略即可。 (4)按照BIER报文格式,使用BS(a1)封装组播报文,将IPv6基本头中的目的地址修改为DeviceF的End.RGBSID,并将组播报文转发给下一跳邻居DeviceF。 2.TransitBFR的转发过程 如图2-9所示,DeviceF收到DeviceA转发的IP组播报文时,会将报文的目的地址与本地配置的End.RGBSID进行匹配,若能匹配成功,则执行MSR6封装的BIER转发,否则进行普通的IP转发。执行BIER转发时将执行如下动作: (1)通过查看BIER头部中封装的信息,