Switch-MDT切换
产生原因
从上述Share-MDT(Multicast Distribution Tree)的建立过程中,可以看到与PE3相连接的私网实例中没有接收者,但(192.1.1.1, 225.1.1.1)的私网组播数据还会到达PE3,这是MD(Multicast Domain)方案的一个缺点,即:所有属于同一MD的PE无论其是否有下游接收者,都会接收到组播数据报文。这样造成了带宽浪费,也增加了PE的处理负担。
为了解决这一问题,在组播VPN的实现中,提出了一种优化的按需发送方法-Switch-MDT。当PE设备上的组播流量达到设定的阈值即进行Switch-MDT切换,这样,没有下游接收者的PE设备就不会再收到组播数据,减轻了PE设备的处理负担,也节约了带宽资源。
实现过程
如图7-7所示,假设已成功建立Share-MDT,Switch-MDT切换的实现过程如下:
在PE1上配置Switch-MDT的切换组地址范围为238.1.1.0~238.1.1.255,并且配置切换到Switch-MDT的数据转发阈值。
当CE1上所连接的源发送数据速率超过PE1上所配置的转发阈值,PE1在所配置的Switch-MDT地址范围中选择一个组地址238.1.1.0,并通过Share-MDT向其他PE周期性发送一个切换到Switch-MDT的信令。
PE2有下游接收者,接收到该信令报文后,加入到组238.1.1.0中,建立Switch-MDT。建立Switch-MDT的过程与建立Share-MDT的过程的类似,PE3接收到切换信令后,没有下游接收者,不加入到Switch-MDT。此后,私网数据报文(192.1.1.1, 225.1.1.1)只有PE2接收到。PIM协议的控制报文仍然通过Share-MDT进行分发。
发起Switch-MDT切换,必须满足以下两点要求:
私网组播数据报文的源地址和组地址符合ACL过滤规则指定的源地址和组地址范围,不符合此范围的组播数据报文仍沿Share-MDT转发。
私网组播数据报文的转发速率超过了切换阈值,且维持一定的时间。
在某些情况下,私网组播数据的转发速率会在切换阈值上下振荡。为了避免组播数据流在Share-MDT与Switch-MDT之间频繁切换,当系统经过计算发现转发速率高于阈值后,并不立即执行切换,而是启动switch-delay定时器。在switch-MDT建立期间,仍然使用share-MDT转发组播数据。即switch-delay定时器可以保证组播数据在Share-MDT向Switch-MDT切换过程中不断流。在switch-delay定时器超时前,系统将继续检测数据转发速率。如果速率始终高于切换阈值则切换至Switch-MDT,否则继续使用Share-MDT进行报文转发。
支持Switch-MDT回切
当私网组播数据切换到Switch-MDT以后,由于情况变化导致切换条件变得不满足,PE1就会把此私网组播数据从Switch-MDT反向切换回Share-MDT,反向切换条件包括:
私网组播数据转发速率低于指定阈值,且维持Switch-Holddown的时间。
在某些情况下,私网组播数据的转发速率会在切换阈值上下振荡。为了避免组播数据流在Switch-MDT与Share-MDT之间频繁切换,当系统经过计算发现转发速率低于阈值后,并不立即执行切换,而是启动holddown定时器,超时时间为对应命令的配置值。在holddown定时器超时前,系统将继续检测数据转发速率。如果速率始终低于切换阈值则切换回Share-MDT,否则继续使用Switch-MDT进行报文转发。
当更改切换组地址池时,用于私网组播数据封装的Switch-Group地址不在地址池中。
当控制私网组播数据切换到Switch-MDT的高级ACL规则发生变化,导致私网组播数据不能通过新ACL规则过滤。