MPLS ×××中部署组播的基本原理是在PE上将客户×××中的组播数据通过GRE封装起来,通过运营商MPLS BACKBONE上的组播网络转发到其他的PE。运营商和客户的组播是分离的,互不知情。
下面用一个实验来解释相关的概念和部署方法。看本实验的读者应该拥有mpls ***和pim sm的相关知识,不然先去补课。
实验拓扑如下:R1、R6、R8为CE,R2、R5、R7为PE,R3、R4为P。路由器之间的连接全部使用快速以太网子接口,如r1和r2间连接使用f0/0.12,ip地址为12.0.0.1/24和12.0.0.2/24,r2、r3间连接使用f0/0.23,ip地址为23.0.0.2/24和23.0.0.3/24。各自Loopback 0的地址为路由器号,即1.1.1.1、2.2.2.2等。Mpls ***已建好,共3个站点。
第一部分:实施步骤
因为运营商网络和客户***网络的组播分离,我们先在BACKBONE和×××中分别部署自己的组播协议。
一、在运营商BACKBONE中启用组播,使用pim sparse-mode。为简化配置,使用静态Rp,地址是r4的loopback 0地址4.4.4.4。
在r2、r3、r4、r5和r7上作如下配置:
ip multicast-routing (全局启用组播路由)
ip pim rp-address 4.4.4.4 (手工指定rp)
(在接口上启用pim sm,P网内所有互连接口都要启用)
int f0/0.23
ip pim sparse-mode
在R4上查看:
show ip mroute
可以看到组播路由表已经有了,里面有一个条目(*, 224.0.1.40),这是cisco的auto-rp用来发现rp用的,不用去管它。
二、在***站点内启用组播,使用pim sparse-mode。Rp是r1的loopback 0地址1.1.1.1。
在r1、r6、r8上作如下配置:
ip multicast-routing
ip pim rp-address 1.1.1.1
int f0/0.12 (在ce和pe连接的接口启用pim sm)
ip pim sparse-mode
三、在PE的VRF中启用组播,这一步是常规的组播中没有的。Vrf中启用组播后,就成为了mVRF。
在R2、R5、R7上配置:
ip multicast-routing vrf abc (vrf中启用组播)
ip pim vrf abc rp-address 1.1.1.1 (指定vrf的rp地址,跟ce一致)
interface FastEthernet0/0.12 (连接ce的接口上启用pim sm)
encapsulation dot1Q 12
ip vrf forwarding abc
ip address 12.0.0.2 255.255.255.0
ip pim sparse-mode
ip vrf abc
rd 100:1
route-target export 100:1
route-target import 100:1
mdt default 239.100.0.1 (指定缺省mdt使用的组地址,最好为239 网段)
int lo 0
ip pim sparse-mode (在所有PE的loopback0口启用pim sm)
四、至此,M***应该就已经算完成了。下面我们来验证一下。
以R8作为接收者,R1作为组播源看看能不能通组播。在R8上配置:
int lo0
ip pim sparse-mode (作为接收者的接口一定要启用pim sm)
ip igmp join-group 238.0.0.1 (加入组238.0.0.1)
在r1上ping 238.0.0.1可通
r1#ping 238.0.0.1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 238.0.0.1, timeout is 2 seconds:
Reply to request 0 from 78.0.0.8, 520 ms
Reply to request 0 from 78.0.0.8, 520 ms
因为R1上的f0/0.12和loopback0都启用了pim sm,所以这两个ip地址都发出了icmp 包,收到2个回应。
再以R6为源试试看:
r6#ping 238.0.0.1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 238.0.0.1, timeout is 2 seconds:
Reply to request 0 from 78.0.0.8, 304 ms
也通了。R6上只有f0/0.56接口启用了pim sm,所以只发了1个icmp包。