PIM(下)

PIM(下)
前言:請先觀看PIM(上)博客
-------------------------------Graft機制---------------------

在這裏插入圖片描述
·在我們這張圖中,RTE和RTC的接口處於prune狀態,在這個狀態下,如果RTE現在新加入一個接收者,並且接收者向RTE發送IGMP的report的時候,實際上在這個情況下,RTE的入接口會從prune狀態恢復成forward狀態,並且向RTC發送graft消息,發送graft以後,RTC也將自己的出接口恢復成forward,在這種情況下,流量就能正常下發了。
·需要注意graft嫁接消息的時候,使用的單播發送的,這個和我們的修剪不一樣,修剪使用的是224.0.0.13。而這裏是單播,逐跳向組播源傳遞嫁接消息。
·由於graft是個可靠的信息,因此實際需要上游設備需要給下游發送graft ACK才能夠將狀態變成forward,因此還是有確認機制的,如果上游設備3s還沒回復,那麼就繼續發送graft信息。

PIM-DM實驗:
·需要注意AR1和源配置的時候接口也要是pim dm
·在配置pim時首先要打開組播,華爲設備默認開啓pim,因此可以不需要用pim
·display pim routing-table //查看pim路由表
·display pim routing-table fms //查看詳細的pim路由表信息

----------------------------Assert(斷言)機制--------------------------------
在這裏插入圖片描述
·對於此圖而言,我們知道,對於我們的Multicast Network裏面的路由器,會發送包含(S,G)信息的數據包,向下遊設備發送組播信息後,下游設備也有了(S,G)表項,給A,B,C發送,發送完成之後,ABC三臺路由器實際上都會發送組播數據包,以RTA爲例,它會收到2個一模一樣的(S,G)表項的組播信息,在這種情況下,RTA發現存在相同的組播信息,我們說過在一個鏈路上只存在一份組播信息,因此以這個情況來說,接收者A會收到三份一樣的組播流量,這是不正常的
·針對這種情況,斷言機制就出現了,斷言機制主要是爲了解決在MA網絡裏面存在多播信息的情況的,在我們的組播路由器接收到了鄰居路由器發送的相同組播信息之後,會以組播的方式向本網段的所有PIM路由器發送Assert消息,其中目的地址爲224.0.0.13。在我們這張圖中,也就是讓RTA,RTB,RTC去進行assert競選。
在這裏插入圖片描述

-----------------------------PIM-DM配置驗證------------------------------------------
display pim routing-table //查看pim的組播路由表
display pim neighbor //查看pim的鄰居
display interface verbose //查看pim接口配置

-----------------------------PIM-DM侷限性------------------------------------------
·使用PIM-DM時候,實際上在小型網絡裏面,設備密集的時候,我們使用PIM-DM會有一定的優勢,但是如果網絡比較大,並且設備比較稀疏,實際上我們去進行擴散-剪枝的週期會導致資源的浪費比較嚴重,因此不適合稀疏的網絡環境,在這種情況下我們就可以使用PIM-SM

-----------------------------PIM-SM基本概述------------------------------------------
·PIM-SM(Protocol independent Multicast-Sparse Mode):與協議無關組播-稀疏模式。
在這裏插入圖片描述在這裏插入圖片描述

  • PIM-SM的特點
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  • RPT共享樹形成
    首先接收者向DR發送IGMP的report報文,那麼由這臺與接收者相連的路由器收到以後,它就會做一個IGMP的維護,同時,如果這臺路由器是DR的話,那麼就會朝着RP的方向逐跳去發送(*,G)的加組信息,這個信息一定是pim報文。逐跳到達RP以後,就截止掉了,不會再繼續轉發了,這個時候,RP->B->C已經形成了一個共享樹RPT。
  • SPT有源樹的形成
    現在路由器D作爲DR,實際上不能向PIM-DM一樣向下游去擴散,那麼在這種情況下,路由器D作爲第一跳路由器,在組播源持續打流量過來的時候,由組播信息觸發着讓它向下遊設備發送單播信息,這個單播信息是發給RP的,這個單播信息就是單播的註冊消息,就是對RP進行詢問,有一個(S,G)中表示的這個源這個組,有沒有對這個組播數據這個組感興趣的設備。那麼如果RP的共享樹有感興趣的,那麼爲了讓組播數據往下轉,RP就會向第一跳路由器逐跳的去發送(S,G)的join信息。那麼反向,D逐跳到達RP的這個路徑,就是原樹,那麼組播數據流就會沿着源樹先給RP,再由RP去傳給接收者。

-------------------------組播接收者側DR與組播源側DR-------------------------------------
在這裏插入圖片描述
·只要是共享式的網絡或者多路訪問網絡,就會選擇DR
·只有在接收者側,也就是最後一跳路由器,以及組播源側,也就是第一跳路由器,DR纔會有用。
·DR選舉和PIM-DM一致:
①選舉DR,是通過優先級進行查詢的,這裏的優先級(指的是hello消息攜帶的優先級)默認爲1,優先級數值越大,則優先級越大。
②優先級如果一致的情況下,會通過IP地址去進行選舉,IP地址越大,則優先級越大。

---------------------------------匯聚點RP-------------------------------------
在這裏插入圖片描述

【講到RP的作用時,我們需要了解RP如果負責所有的組播流量時,如果RP出問題了,會導致所有組流量斷掉了,其實可以在組播網絡環境中,弄出兩個RP來,一個RP爲一個組播組服務,另一個RP爲另一半組播組服務】

·RP的指定
RP可以靜態指定也可動態選舉:
靜態指定是指由管理員在每臺PIM-SM路由器上進行配置,使得每臺路由器獲知RP的位置。
動態選舉是指通過專用協議在若干臺C-RP(Candidate-RP)中選舉產生。管理員需要開啓選舉協議並配置若干臺PIM-SM路由器成爲C-RP。
RP配置方式建議:
中小型網絡:建議選擇靜態RP方式,對設備要求低,也比較穩定。
如果網絡中只有一個組播源,建議選擇直連組播源的設備作爲靜態RP,這樣可以省略源端DR向RP註冊的過程。
採用靜態RP方式要確保域內所有路由器(包括RP本身)的RP信息以及服務的組播組範圍全網一致。
大型網絡:可以採用動態RP方式,可靠性高,可維護性強。
如果網絡中存在多個組播源,且分佈密集,建議選擇與組播源比較近的核心設備作爲C-RP;如果網絡中存在多個用戶,且分佈密集,建議選擇與用戶比較近的核心設備作爲C-RP。
在這裏插入圖片描述

  • 拓撲圖
    在這裏插入圖片描述
    1、先有接收者後有組播流

  • RPT共享樹加入
    實際上和之前說的一樣,接收者所連接的最後一跳路由器向上遊發送(*,G)的信息,然後一直髮到RP,然後向下形成了RPT

  • 組播源註冊過程
    對於組播源註冊來說,實際上就是我們的接收者存在時,RP已經建立的RPT共享樹的情況下,如果組播源向第一跳路由器發送組播報文,那麼實際上就由第一跳路由器向RP發送單播的信息,也就是(S,G)註冊信息,這個註冊信息實際上就是對組播信息實現了一個再次的封裝,封裝以後再單播發送給RP,在RP處進行解封裝,解封裝之後,那麼RP就向第一跳路由器逐跳發送(S,G)的加入信息,並且將數據向下遊設備轉發。

  • 停止註冊過程
    問題什麼時候第一跳路由器計算有組播源發送組播數據來的時候,也不會像RP發送單播的SG註冊信息呢?
    其實就是RP向第一跳路由器發送停止註冊信息時就能達到這個效果。但實際上第一跳路由器不會永久不發送,只是間隔爲1分鐘。

其次需要考慮RP什麼時候會發送停止註冊信息讓第一跳路由器停止發送單播的註冊信息
①如果已經形成有源樹SPT了,那麼實際上沒有必要再繼續去註冊了,因此會發送停止註冊信息。(RP如果直接收到純的組播報文,那麼就觸發了效果),register報文會一分鐘一次進行發送。在這個情況下,沿着源樹向RP傳輸組播報文。

2、先有組播流,後有接收者。
在這裏插入圖片描述

  • 前期還是一樣,由DR向RP發送單播註冊,但是如果現在RP並沒有存在這個S,G的共享樹,那麼立馬就會回覆一個stop信息。但是會出現一個(S,G)的表項信息
  • 如果現在最後一跳路由器中加入一個接收者,那麼實際上會向上發送IGMP的report報文,發送上去以後,組播路由器會向RP發送(,G)信息,這個信息到達RP以後,由於RP存在對應(S,G)信息,那麼在這個情況下,不需要等待第一跳路由器發送單播的註冊信息,RP會直接向第一跳路由器發送(,G)的join信息,直接建立SPT樹,然後就和之前就一樣了

附加: reject週期爲一分鐘的原因:因爲RP上的S,G表項會超時,如果S,G表項超時,那麼對於新加入的接收者,RP並不知道它有感興趣的組,那麼也不會爲它去向第一跳路由器發送*,G的加入信息,所以也就永遠不會有流到達新加入的接收者,因此爲了刷新RP上緩存的表項,我們要讓DR去週期性發送單播的註冊信息,這樣如果有新的接收者,能夠馬上建立去往組播源的SPT。

-------------------------------------PIM-SM的轉發樹------------------------------------------

在這裏插入圖片描述

  • 在本圖中,假設單播的路由協議使用的是OSPF,在這種情況下,綠色的RPT的路徑實際上不是非常的完美,因爲不是我們最佳的轉發路徑,最佳的轉發路徑應該是左邊這條,因此我們就涉及一個知識點,也就是RPT向第二棵SPT樹裝換,那麼在這種情況下,我們需要先了解一個前提
    前提①:對於PIM-SM來說,我們之前建立的SPT有源樹,叫做第一棵有源樹
    前提②:對於後面RTP轉換成的SPT,叫做第二棵有源樹。

-------------------------------------------Switchover機制-----------------------
·默認情況下,設備閾值默認值是0,(閾值實際上就是根據報文的速率與閾值的比值來判斷RPT是否需要轉換爲第二棵SPT)
·在我們的接收端DR,也就是ClientA所連接的路由器設備來說,它通過單播路由協議知道,我們最佳的路徑應該是屬於左側的路徑,在這種情況下,從RP根據RPT發來的組播數據,實際上組播數據的報文速率會超過接收端DR的閾值,一旦發現超過閾值,那麼立馬向上遊設備發送(S,G)的join信息,並且創建S,G表項,建立組播源端DR到達接收端DR的第二棵SPT,那麼在這裏,接收端DR發送(S,G)Join信息的原因,就是因爲通過單播路由協議能夠知曉組播源的地址,並且join的作用和我們之前RP建立源樹是一樣的。一定是最後一跳路由器產生的切換。
·SPT建立後,爲了避免一個相同的組播流量,也就是會通過原來SPT-RPT,以及現在的SPT發送過來的情況,那麼在這種情況下,我們要想辦法將原來的共享樹RPT的流量給刪除,那麼解決辦法如下:
用戶端DR會沿着RPT逐跳向RP發送剪枝報文,收到剪枝報文的路由器將(*,G)複製成相應的(S,G),並將相應的下游接口置爲剪枝狀態。剪枝結束後,RP不再沿RPT轉發組播報文到組成員端。在這裏需要注意,剪掉的是原來共享樹的流量剪掉,而不是共享樹剪掉。並且對於我們RP中出現的SG表項,實際上出接口爲空,那麼不會向共享樹發送流量,並且這麼做了以後,RP還需要向上遊設備,去修剪我們的源樹。
·機制之後,就只剩下第二棵SPT樹了,就能通過最優的路徑去走
·華爲設備上默認開啓了RPT切換SPT的功能
在這裏插入圖片描述
·由於默認的閾值是0,那麼實際上我們在第一次接受到組播數據報文以後,就會立馬加入最短路徑樹SPT。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章