實驗拓撲
實驗需求
網絡拓撲、IP地址規劃如上圖所示;
R1、R2、R3、R4運行OSPF協議,打通網絡的單播路由;
R1、R2、R3、R4同時也是組播路由器,運行PIM-SM;
R3為RP,配置Loopback0,IP地址為3.3.3.3,該地址作為RP的地址;
接收者加入組播組224.1.1.1;觀察RPT的構建;
在R4上將RPT-SPT的切換設置為永遠不切換,同時從源開始發送組播數據,觀察源的注冊過程、RP到源的SPT建立過程、組播流量沿著RPT下行的過程。
在R4上將RPT-SPT的切換恢復為默認值,同時將R4的GE0/0/1口的OSPF Cost值稍稍調大,觀察RPT到SPT的切換過程。
本實驗可使用華為自研模擬器eNSP完成。
實驗步驟及配置
R1、R2、R3及R4完成接口IP地址的配置,運行OSPF。
R1的基礎配置如下:
[R1]interfaceGigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]ipaddress10.1.12.124 [R1]interfaceGigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]ipaddress10.1.14.124 [R1]ospf1router-id1.1.1.1 [R1-ospf-1]area0 [R1-ospf-1-area-0.0.0.0]network10.1.12.10.0.0.0 [R1-ospf-1-area-0.0.0.0]network10.1.14.10.0.0.0
R2的基礎配置如下:
[R2]interfaceGigabitEthernet0/0/0 [R2-GigabitEthernet0/0/0]ipaddress10.1.12.224 [R2]interfaceGigabitEthernet0/0/1 [R2-GigabitEthernet0/0/1]ipaddress10.1.23.224 [R2]interfaceGigabitEthernet0/0/2 [R2-GigabitEthernet0/0/2]ipaddress10.10.1024 [R2]ospf1router-id2.2.2.2 [R2-ospf-1]area0 [R2-ospf-1-area-0.0.0.0]network10.1.12.20.0.0.0 [R2-ospf-1-area-0.0.0.0]network10.1.23.20.0.0.0 [R2-ospf-1-area-0.0.0.0]network10.10.10.2540.0.0.0 [R2-ospf-1-area-0.0.0.0]quit [R2-ospf-1]silent-interfaceGigabitEthernet0/0/2
R3的基礎配置如下:
[R3]interfaceGigabitEthernet0/0/0 [R3-GigabitEthernet0/0/0]ipaddress10.1.23.324 [R3]interfaceGigabitEthernet0/0/1 [R3-GigabitEthernet0/0/1]ipaddress10.1.34.324 [R3]interfaceloopback0 [R3-loopback0]ipaddress3.3.3.3255.255.255.255#該地址作為RP的地址 [R3]ospf1router-id3.3.3.3 [R3-ospf-1]area0 [R3-ospf-1-area-0.0.0.0]network10.1.23.30.0.0.0 [R3-ospf-1-area-0.0.0.0]network10.1.34.30.0.0.0 [R3-ospf-1-area-0.0.0.0]network3.3.3.30.0.0.0
R4的基礎配置如下:
[R4]interfaceGigabitEthernet0/0/0 [R4-GigabitEthernet0/0/0]ipaddress10.1.14.4255.255.255.0 [R4]interfaceGigabitEthernet0/0/1 [R4-GigabitEthernet0/0/1]ipaddress10.1.34.4255.255.255.0 [R4]interfaceGigabitEthernet0/0/2 [R4-GigabitEthernet0/0/2]ipaddress10.1.1.254255.255.255.0 [R4]ospf1router-id4.4.4.4 [R4-ospf-1]area0 [R4-ospf-1-area-0.0.0.0]network10.1.14.40.0.0.0 [R4-ospf-1-area-0.0.0.0]network10.1.34.40.0.0.0 [R4-ospf-1-area-0.0.0.0]network1.1.1.2540.0.0.0 [R4-ospf-1-area-0.0.0.0]quit [R4-ospf-1]silent-interfaceGigabitEthernet0/0/2
R1、R2、R3及R4部署PIM-SM
R1的配置如下:
[R1]multicastrouting-enable [R1]interfaceGigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]pimsm#在接口上激活PIM-SM [R1]interfaceGigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]pimsm#在接口上激活PIM-SM [R1]pim [R1-pim]static-rp3.3.3.3#設置靜態RP地址3.3.3.3
R2的配置如下:
[R2]multicastrouting-enable [R2]interfaceGigabitEthernet0/0/0 [R2-GigabitEthernet0/0/0]pimsm [R2]interfaceGigabitEthernet0/0/1 [R2-GigabitEthernet0/0/1]pimsm [R2]interfaceGigabitEthernet0/0/2 [R2-GigabitEthernet0/0/2]pimsm [R2]pim [R2-pim]static-rp3.3.3.3
R3的配置如下:
[R3]multicastrouting-enable [R3]interfaceGigabitEthernet0/0/0 [R3-GigabitEthernet0/0/0]pimsm [R3]interfaceGigabitEthernet0/0/1 [R3-GigabitEthernet0/0/1]pimsm [R3]interfaceloopback0 [R3-loopback0]pimsm [R3]pim [R3-pim]static-rp3.3.3.3
R4的配置如下:
[R4]multicastrouting-enable [R4]interfaceGigabitEthernet0/0/0 [R4-GigabitEthernet0/0/0]pimsm [R4]interfaceGigabitEthernet0/0/1 [R4-GigabitEthernet0/0/1]pimsm [R4]interfaceGigabitEthernet0/0/2 [R4-GigabitEthernet0/0/2]igmpenable#連接組播接收者的接口激活IGMP [R4]pim [R4-pim]static-rp3.3.3.3
完成配置后,先做一下初步的驗證:
displaypimneighbor VPN-Instance:publicnet TotalNumberofNeighbors=2 NeighborInterfaceUptimeExpiresDr-PriorityBFD-Session 10.1.14.1GE0/0/0004000241N 10.1.34.3GE0/0/1003900371N
上述輸出的是R4的PIM鄰居表,可以看到R4發現了兩個PIM鄰居。在其他路由器上也做相應的查看,確保PIM鄰居都發現完整了。
displaypimrp-info VPN-Instance:publicnet PIMSMstaticRPNumber:1 StaticRP:3.3.3.3
上面的輸出查看的是R4的PIM RP信息,我們為R4手工告知了RP的地址,3.3.3.3,其實也就是R3。
組播用戶加入組224.1.1.1,查看RPT的建立過程
現在組播接收者PC加入組224.1.1.1(具體的操作方法請見本手冊的PIM-DM實驗小節,有詳細描述),這將觸發PC發送IGMP成員關系報告,R4最為最后一跳路由器會從GE0/0/2口上收到這個報告,它便知道該接口下出現了組播組224.1.1.1的成員,它將建立(* , 224.1.1.1)的組播路由表項:
displaypimrouting-table VPN-Instance:publicnet Total1(*,G)entry;0(S,G)entry (*,224.1.1.1) RP:3.3.3.3 Protocol:pim-sm,Flag:WCEXT UpTime:0004 Upstreaminterface:GigabitEthernet0/0/1 Upstreamneighbor:10.1.34.3 RPFprimeneighbor:10.1.34.3 Downstreaminterface(s)information:None
隨后R4會向RPF上行接口發送(*,G)PIM Join消息,請求加入共享樹RPT。R4如何判斷哪個接口是RPF上行接口呢?R4通過單播路由表來判斷,對于RPT,PIM路由器在做RPF檢查的時候是朝向RP的,因此R4在單播路由表中查找到達RP3.3.3.3的路由,選擇路由的出接口作為RPF接口,但是這里由于全網接口COST都是默認值,因此R4上關于3.3.3.3的OSPF路由在R1及R3上出現等價負載均衡,這時R4會選擇R1及R3中接口IP較大的作為RPF的主鄰居,也就是R3,因此R4的GE0/0/1成為RPF接口。這與上面的輸出吻合。
R3在收到R4發上來的PIM Join消息后,它會創建一個(*,224.1.1.1)表項,將收到該報文的接口GE0/0/1添加到下行接口列表中,由于自己就是RP了,因此共享樹的一個分支就此建立完成。
displaypimrouting-table VPN-Instance:publicnet Total1(*,G)entry;0(S,G)entry (*,224.1.1.1) RP:3.3.3.3(local) Protocol:pim-sm,Flag:WC UpTime:0009 Upstreaminterface:Register Upstreamneighbor:NULL RPFprimeneighbor:NULL Downstreaminterface(s)information: Totalnumberofdownstreams:1#下行接口列表 1:GigabitEthernet0/0/1 Protocol:pim-sm,UpTime:0009,Expires:0021
![680c3bd0-703e-11ed-8abf-dac502259ad0.png](https://file1.elecfans.com//web2/M00/98/77/wKgaomTnVCWAWGdKAAB3x1ncMhw069.png)
源注冊、RP到源的SPT建立過程、組播報文的傳輸過程
接下去我們來觀察一下源注冊、RP到源的SPT建立過程及組播報文的傳輸過程。首先在R4上將RPT-SPT的切換設置為永遠不切換,因為這個特性我們在下一步中再去關注,這里暫時忽略掉。
[R4]pim [R4-pim]spt-switch-thresholdinfinity
使用上述配置將R4的PIM SPT切換特性設置為永遠不切換。
現在組播源開始向組播組224.1.1.1發送組播數據(這可以通過ping 224.1.1.1來模擬)。組播數據到達第一跳路由器R2后,R2會將組播數據封裝在單播的PIM Register報文中發往RP也就是R3。
通過在R2的GE0/0/1口上抓包,可以看到Register報文,這是一個單播包,目的地址是3.3.3.3。R3在收到這個包后,解封裝發現里頭是個(10.10.10.10,224.1.1.1)的組播數據包,因此在本地創建一個(10.10.10.10,224.1.1.1)表項,同時將組播數據包沿著RPT先傳下去(從GE0/0/1口發出去)。另一方面,R3緊接著向源的方向(同樣是借助單播路由表查找到10.10.10.10的路由來獲得RPF接口)發送(10.10.10.10,224.1.1.1)的PIM Join消息,試圖在自己與源之間建立一條源樹SPT。
displaypimrouting-table VPN-Instance:publicnet Total1(*,G)entry;1(S,G)entry (*,224.1.1.1) RP:3.3.3.3(local) Protocol:pim-sm,Flag:WC UpTime:0057 Upstreaminterface:Register Upstreamneighbor:NULL RPFprimeneighbor:NULL Downstreaminterface(s)information: Totalnumberofdownstreams:1 1:GigabitEthernet0/0/1 Protocol:pim-sm,UpTime:0057,Expires:0033 (10.10.10.10,224.1.1.1) RP:3.3.3.3(local) Protocol:pim-sm,Flag:SPT2MSDPACT UpTime:0022 Upstreaminterface:GigabitEthernet0/0/0 Upstreamneighbor:10.1.23.2 RPFprimeneighbor:10.1.23.2 Downstreaminterface(s)information: Totalnumberofdownstreams:1 1:GigabitEthernet0/0/1 Protocol:pim-sm,UpTime:0022,Expires:-
R2收到這個Join消息后,將GE0/0/1口添加到(10.10.10.10,224.1.1.1)組播表項的下行接口列表中國,然后將組播流量沿著建立好的SPT轉發到RP,而不再將組播流量封裝到Register報文中。
dispimrouting-table VPN-Instance:publicnet Total0(*,G)entry;1(S,G)entry (10.10.10.10,224.1.1.1) RP:3.3.3.3 Protocol:pim-sm,Flag:SPTLOCACT UpTime:0041 Upstreaminterface:GigabitEthernet0/0/2 Upstreamneighbor:NULL RPFprimeneighbor:NULL Downstreaminterface(s)information: Totalnumberofdownstreams:2 1:GigabitEthernet0/0/1 Protocol:pim-sm,UpTime:0041,Expires:0049 2:Register Protocol:pim-sm,UpTime:0041,Expires:-
![6827af00-703e-11ed-8abf-dac502259ad0.png](https://file1.elecfans.com//web2/M00/98/77/wKgaomTnVCWAKxqXAAB7speF4NY932.png)
SPT切換過程
現在,將R4上之前配置的SPT切換的相關配置去除(undo spt-switch-threshold)。在默認情況下,R4作為最后一跳路由器,只要一收到224.1.1.1的組播數據包,則立即進行SPT的切換。接著將R4的GE0/0/1口OSPF Cost稍稍調大,調節為2(默認是1),我們通過這個動作來模擬這樣一個事實:“R4從R1到達源,比從R3到達源要更近”。
現在,當R4從GE0/0/1口收到第一個224.1.1.1的組播數據包時,將啟動SPT切換機制,朝著源的方向(也就是R1)發送(10.10.10.10,224.1.1.1)的PIM Join消息,請求加入SPT。
R1收到這個Join消息后,創建(10.10.10.10,224.1.1.1)表項,將GE0/0/1口添加到下行接口列表,同時向R2發送Join消息。R2收到這個Join消息后,將自己的GE0/0/0口添加到(10.10.10.10,224.1.1.1)表項的下行接口列表,并開始向GE0/0/0口下傳組播數據。
displaymulticastrouting-table MulticastroutingtableofVPN-Instance:publicnet Total1entry 00001.(10.10.10.10,224.1.1.1) Uptime:0005 UpstreamInterface:GigabitEthernet0/0/2 Listof3downstreaminterfaces 1:GigabitEthernet0/0/0 2:GigabitEthernet0/0/1 3:Register
這一步完成之后,網絡中的組播路徑樹如下所示:
現在R4會從R1及R3收到組播數據的兩份拷貝,這顯然是沒有意義的,因此它向R3發送一個Prune消息,將自己從RPT上剪除。R3收到這個消息后,將接口GE0/0/1從(*,224.1.1.1)表項的下行接口列表中刪除,也就不再向GE0/0/1口發送組播流量了,然后發現下行接口列表為空,因此向R2發送一個Prune消息,請求將自己從SPT上修剪掉,因為它不再需要組播流量了。R2收到這個Prune消息后,將GE0/0/1口從表項的下行接口列表中刪除。
最終R2的組播表項如下:
displaypimrouting-table VPN-Instance:publicnet Total0(*,G)entry;1(S,G)entry (10.10.10.10,224.1.1.1) RP:3.3.3.3 Protocol:pim-sm,Flag:SPTLOCACT UpTime:0019 Upstreaminterface:GigabitEthernet0/0/2 Upstreamneighbor:NULL RPFprimeneighbor:NULL Downstreaminterface(s)information: Totalnumberofdownstreams:2 1:GigabitEthernet0/0/0 Protocol:pim-sm,UpTime:0019,Expires:0011 2:Register Protocol:pim-sm,UpTime:0019,Expires:-
組播路徑樹如下:
-
網絡
+關注
關注
14文章
7600瀏覽量
89303 -
PIM-SM
+關注
關注
0文章
3瀏覽量
6542
原文標題:組播Multicast進階:PIM-SM實驗配置
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論