一、组播数据转发原理
前面已经学习了组播的基本概念和网络组成结构了,今天来学习下组播数据的转发。首先我们要先明确组播网络也是和单播一样需要网络可达的,因此也是需要单播网络支持的基础上配置组播转发数据。单播网络不通组播网络就没有意义了。
组播数据转发需要依赖路由表项。但是基于目的网络的路由表在转发组播数据时存在一定问题:
-
组播源发送组播报文,组播IP为G1 -
组播组成员也加入G1 -
RT1到达成员有两条路径,出接口有两个,因此都会发送组播报文 -
RT4收到两份重复报文转发给组播组成员
与上面类似会出现次优路径。
由于组播转发容易产生环路,次优,重复报文,所以组播路由表项除了目的网络和出接口外还需要添加组播源和入接口的信息。设备仅转发从特定唯一的入接口收到的组播数据,从而避免组播转发时产生环路,次优,重复报文(部分解决)等问题。因此出现了RPF(Reverse Path Forwarding,反向路径转发)来解决重复报文和次优路径问题。
二、RPF(Reverse Path Forwarding,反向路径转发)
对于相同的组播源,设备通过RPF(Reverse Path Forwarding,反向路径转发) 检查可以确定设备上唯一的组播流量入接口。
组播路由表项包含组播源与组播组,因此有时又被称为(S,G)表项。
组播转发过程:
-
RT1是第一跳路由器,组播报文中包含组播源地址S1,加入的组为G1,表项为(S1,G1) -
RT1通过路由表查看到达S1的路由,发现为直连,入接口为直连接口,然后出接口为IF1和IF2 -
RT2从RT1接收到组播报文,通过路由表查看(S1,G1),确定如接口为IF1,出接口为IF2 -
RT3从IF1和IF2分别接收到组播报文,通过查看路由表发现IF1的优先级更高,因此确定报文入接口为IF1,丢弃从IF2接收的组播报文,出接口为组播组成员IF3,从而形成无环的转发路径 -
每个路由器都会进行RPF检查,通过路由表确定最优的入接口。
RPF(反向路径检查)在三层设备上通过IP路由确定最优到达组播源的路径,其他的为次优进行逻辑阻断。
原理: 组播路由器根据报文的源地址通过路由表(单播路由表、MBGP路由表或组播静态路由表)查找到达“报文源”的路由,查看到“报文源”的路由表项的出接口是否与收到组播报文的入接口一致。如果一致,则认为该组播报文从正确的接口到达,从而保证了整个转发路径的正确性和唯一性。这个过程就被称为RPF检查。每个组播路由都会进行RPF检查。
根据以下原则从这三条最优路由中选择一条作为RPF路由:
-
如果配置了按照最长匹配选择路由,则从这三条路由中选出最长匹配的那条路由; -
如果这三条路由的掩码一样,则选择优先级最高的那条路由; -
如果它们的优先级也相同,则按照组播静态路由>MBGP路由>单播路由的顺序进行选择。
MBGP:MBGP(Multicast BGP,组播BGP)主要用于传递组播源相关的路由条目。
组播静态路由表:手工配置组播源与出接口的对应关系。
总的来说原理还是很晦涩难懂的,简单说就是根据组播源的地址查看自身路由器确定最优入接口进行转发。查看路由表的方式有三种:组播静态路由、MBGP路由、单播路由,因为现在没有配置组播静态和MBGP,因此通过单播路由的方式查看路由表确定最优路径。
如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子
本文由 mdnice 多平台发布