目录

前言
MSDP
Multicast over GRE Tunnel

前言

Multicast Source Discovery Protocol (MSDP) 可以帮助位於不同 Multicast Domain 的 RP 交换 Multicast Source 资讯,让 host 可以接收到位於其他 Domain 的 Source 所发出的 Multicast Traffic。本篇文章涉及 Protocol Independent Multicast (PIM) 的设定方法,如读者想重温 PIM 的资料可到本网站的 PIM 教学 查看。

MSDP

无论用 Static丶Auto-RP 或者 BSR 设定 RP,设定 MSDP 的方法都一样。假设有以下网络,R1 和 R2 使用 2.2.2.2 作为 RP,而 R3 和 R4 则使用 4.4.4.4。全部已使用 OSPF 及 PIM 打通。

msdp

Router 起始设定如下:

hostname R1
!
ip multicast-routing 
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip pim sparse-dense-mode
!
interface Ethernet1/0
 ip address 192.168.12.1 255.255.255.0
 ip pim sparse-dense-mode
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 2.2.2.2
hostname R2
!
ip multicast-routing 
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-dense-mode
!
interface Ethernet1/0
 ip address 192.168.12.2 255.255.255.0
 ip pim sparse-dense-mode
!
interface Ethernet1/1
 ip address 192.168.23.2 255.255.255.0
 ip pim sparse-dense-mode
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 2.2.2.2
hostname R3
!
ip multicast-routing 
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip pim sparse-dense-mode
!
interface Ethernet1/0
 ip address 192.168.23.3 255.255.255.0
 ip pim sparse-dense-mode
!
interface Ethernet1/1
 ip address 192.168.34.3 255.255.255.0
 ip pim sparse-dense-mode
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 3.3.3.3
hostname R4
!
ip multicast-routing 
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
 ip pim sparse-dense-mode
!
interface Ethernet1/0
 ip address 192.168.34.4 255.255.255.0
 ip pim sparse-dense-mode
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 3.3.3.3

假设 R4 Join 224.1.1.1 Group,R1 Ping 224.1.1.1 是不能成功的,由於两 Domain 使用不同的 RP,无法得知 Source Address。

R4(config)#int loopback0
R4(config-if)#ip igmp join-group 224.1.1.1
R1#ping 224.1.1.1 repeat 999 source 1.1.1.1
Type escape sequence to abort.
Sending 999, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:
................................

设定 MSDP方法如下:

R2(config)#ip msdp peer 192.168.23.3 connect-source ethernet1/1
R3(config)#ip msdp peer 192.168.23.2 connect-source ethernet1/0

於是 R2 与 R3 建立 MSDP 连线,交换 RP 资讯,所以 R1 的 Ping 成功了。

R1#ping 224.1.1.1 repeat 999 source 1.1.1.1
Type escape sequence to abort.
Sending 999, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1 

Reply to request 0 from 4.4.4.4, 44 ms
Reply to request 1 from 4.4.4.4, 32 ms
Reply to request 2 from 4.4.4.4, 36 ms
Reply to request 3 from 4.4.4.4, 44 ms

Multicast over GRE Tunnel

大家必需知道,MSDP 只负责传送 RP 的资讯,仅此而已,并不负责传送 Multicast Traffic。传送工作仍然由 PIM 负责,因此,如果两个 Domain 中间连 PIM 都没打通的话,就算有 MSDP,Multicast Traffic 就传不到。这时候就需要建立一条 GRE Tunnel 让 PIM 在 GRE Tunnel 里面传送。

msdp

在网络中加入 R5 於置在两个 Domain 之间,R5 并没执行 PIM。

hostname R5
!
interface Ethernet1/0
 ip address 192.168.25.5 255.255.255.0
!
interface Ethernet1/1
 ip address 192.168.35.5 255.255.255.0
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!

在 R1 Ping 224.1.1.1,可以预期的是,没有回覆,因为 PIM 断开了,Multicast 不能传送。

现在,我们在 R2 的 e1/1 与 R3 的 e1/0 建立一条 GRE Tunnel,并且在 GRE Tunnel 上开启 PIM Sparse Dense Mode。

R2(config)#interface tunnel 23
R2(config-if)#tunnel source ethernet 1/1
R2(config-if)#tunnel destination 192.168.35.3
R2(config-if)#ip address 192.168.23.2 255.255.255.0
R2(config-if)#ip pim sparse-dense-mode
R4(config)#interface tunnel 23
R4(config-if)#tunnel source ethernet 1/0
R4(config-if)#tunnel destination 192.168.25.2
R4(config-if)#ip address 192.168.23.3 255.255.255.0
R4(config-if)#ip pim sparse-dense-mode

现在 Multicast 通了!

R1#ping 224.1.1.1 repeat 999 source 1.1.1.1
Type escape sequence to abort.
Sending 999, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1 

Reply to request 0 from 4.4.4.4, 41 ms
Reply to request 1 from 4.4.4.4, 31 ms
Reply to request 2 from 4.4.4.4, 33 ms
Reply to request 3 from 4.4.4.4, 43 ms