目錄

前言
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 則使用 3.3.3.3。全部已使用 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.35.3 255.255.255.0
 ip pim sparse-dense-mode
!
interface Ethernet1/1
 ip address 192.168.25.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.35.3 connect-source ethernet1/1
R3(config)#ip msdp peer 192.168.25.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 並沒執行 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