多點傳播組(g):接收同一個多點傳播位址的裝置。
如何區分不同的多點傳播組?根據多點傳播位址來區分。
多點傳播源(s):多點傳播資料包的發送者
多點傳播成員:所有加入某多點傳播組的主機
多點傳播路由器:運作多點傳播協定的裝置
多點傳播服務模型
依據接收者接收流量是否針對源進行區分,可分為:
ASM模型(組成員無法對多點傳播源做出選擇時,應該部署ASM服務模型)
SSM模型(組成員可以對多點傳播源做出選擇時,可以部署SSM服務模型)
ASM :隻通過多點傳播位址來唯一的區分不同的多點傳播業務,即不同的多點傳播業務需要配置設定不同的多點傳播位址,會造成多點傳播位址浪費,但對組成員的能力要求不高,容易部署和維護。接收者隻需要事先知道自己要加入的多點傳播位址即可。
SSM:通過多點傳播位址群組播源的位址來唯一的區分不同的多點傳播業務,那麼可以實作多點傳播位址重複利用。即同一個多點傳播位址可以使用不同的多點傳播源來提供不同的多點傳播業務。組成員需要事先知道源群組的對應關系。
多點傳播位址-IP位址:
224.0.0.0~224.0.0.255 永久組位址
224.0.1.0~231.255.255.255
233.0.0.0~238.255.255.255
---ASM多點傳播位址,全網範圍内有效
232.0.0.0~232.255.255.255 預設為SSM多點傳播位址,全網範圍内有效
239.0.0.0~239.255.255.255 本地管理組位址,僅在本地管理域内有效
多點傳播位址-MAC位址
TCP/IP模型 決定所有IP封包都必須封裝成幀才能在鍊路上轉發。
單點傳播以太網資料幀:
SMAC:發送該資料幀的三層接口的MAC位址
DMAC:根據目的IP位址通過ARP解析而來
第8bit為1—多點傳播MAC
01-00-5E-0{多點傳播ip位址的後23bit}
多點傳播協定:
IGMP
PIM
IGMP
一個網段内主機與多點傳播路由器之間維護組成員關系的協定
版本:IGMPv1、IGMPv2、IGMPv3
IGMPv1基本原理
封包:
普遍組查詢(通用組查詢封包)
成員報告封包
封包格式:
Version:IGMP的版本
Type:封包類型,1為普遍組查詢、2為成員報告
Group address:組位址
1、通用組查詢封包General Query
由路由器周期性發送,預設每隔60s發送一次,通過IP封包封裝,SIP為路由器接口位址,DIP為224.0.0.1(鍊路上所有路由器和主機)。
通用組查詢封包group address 為0.0.0.0,代表針對所有多點傳播組發起組成員查詢。
當組成員接收到通用組查詢封包後,随機延時一個0~10s的時間後,發送成員報告封包,SIP為主機自身接口IP,DIP為該主機所屬的多點傳播組位址。Group address為該主機所屬的多點傳播組位址。
随機延遲時間為0~10s之間一個值,10s稱為最大響應時間,實作組成員報告抑制機制,IGMPv1無法修改該時間值。
為什麼要設計最大響應時間呢?避免同組的成員重複發送成員報告封包,減少路由器負擔。由于組成員報告延遲時間不一緻,誰先逾時誰先報告。
路由器接收到成員報告之後,将建立(,G)表項,并将收到該成員報告的接口做該(,G)表項的下遊接口,未來路由器收到發現該組的多點傳播封包就向該下遊接口複制一份,進而發給成員主機所在的網段。
IGMPv1沒有設計離組機制,成員離開不會發送任何通知,靜默離開,如果該組最後一個成員離開,路由器在130s内接收不到該組的報告封包,則認為該組不存在成員,将(*,G)表項的下遊接口删除,停止向該組網段發送該組的多點傳播封包。
IGMPv1沒有查詢者選舉機制。
什麼是IGMP查詢者呢?當一個網段存在多台路由器時,負責向該網段發送普遍組查詢的路由器。
IGMPv1需要PIM協定的DR選舉機制來協助查詢者的選舉,是以啟用IGMPv1的接口還需啟用PIM協定。由PIM協定選舉出該網段上的DR,由DR充當IGMPv1的查詢器。
PIM DR的選舉規則:
1.根據PIM協定中hello中攜帶的優先級選舉DR,優先級越大,優先成為DR。優先級預設為1。 pim hello-option dr-priority 10
PIM DR具有搶奪性,DR失效後會重新選舉DR,充當IGMPv1的查詢器
2.優先級相同,則比較接口IP位址的大小,位址大的優先成為DR。
igmp timer query 10,修改IGMP普遍組查詢封包的發送間隔。
IGMPv2
在IGMPv1的基礎之上新增2種封包:
1.特定組查詢封包
2.離組封包
在IGMPv1的基礎之上新增3種機制:
1.離組機制
1)當主機要離開某個組時,會發送離組封包。SIP為自身網卡IP,DIP為224.0.0.2(代表鍊路上的路由器),Group address 為離組的多點傳播位址。
2)路由器收到離組封包後,會發送指定組查詢封包,SIP 路由器接口位址,DIP 為主機離組的組位址,Group address為離組的多點傳播位址。
3)指定組查詢預設連續以1s為間隔,連續發2次,在“發送間隔發送次數”時間内,如果沒有收到該組成員的報告,則認為該組不再存在成員,删除相應的(,G)表項,停止該多點傳播流量轉發。
離組封包有2種發送機制 :
(1)隻要主機離組,就會發送離組封包。eNSP有離開按鈕,會發離組封包。
(2)隻有本輪查詢的報告者離組時,由報告者發送離組封包,本輪的非報告者離組不發送離組封包,靜默離開。
2.查詢器選舉機制
1)IGMPv2設計了自身的查詢器選舉機制,接口位址小的成為查詢器,具有搶奪性。
2)非查詢器會維護一個“其它查詢器失效時間”預設為125s。
3)非查詢器根據自身的“健壯系數 × IGMP普遍組查詢封包發送間隔 + (1/2) × 最大查詢響應時間”來計算“其它查詢器失效時間”
3.最大響應時間控制機制
IGMPv2、IGMPv3适用的指令:
igmp max-response-time 5 修改通用組查詢封包的最大響應時間;
igmp lastmember-queryinterval 3 修改特定組查詢封包的最大響應時間,預設1s;
igmp robust-count 3 修改指定組查詢封包發送次數IGMPv2、IGMPv3适用,即健壯系數。預設2s;
IGMPv3:
一、IGMPv3的封包類型:
1.通用組查詢封包
2.指定組查詢封包
3.特定源組查詢封包
4.成員報告封包,沒有離組封包
二、取消了成員報告抑制封包
報告中的include為空
二層多點傳播轉發的機制:
1)IGMP監聽
2)CGMP,思科
3)靜态多點傳播表項
PIM協定
PIMv2 與協定無關的多點傳播路由協定
網絡使用靜态、RIP、ISIS、MP-BGP都可以運作PIM協定。
DVMRP 距離矢量多點傳播路由協定
MOSPF 多點傳播OSPF協定
---但是對單點傳播網絡有要求,比如DVMRP要求IGP使用RIP,MOSPF要求IGP使用OSPF。“協定相關路由協定”
PIMv2有3種工作模式:
1、密集模式 DM
2、稀疏模式 SM
DM、SM用于支援ASM的多點傳播網絡
3、指定源多點傳播模式 SSM
SSM用于支援SSM的多點傳播模式
PIM的作用:
建構、維護多點傳播路由轉發表項
運作在路由器和路由器之間
第一跳路由器:群組播源相連的PIM路由器
最後一跳路由器:群組成員源相連的PIM路由器
葉子路由器:與使用者主機相連的PIM路由器,連接配接的使用者主機不一定為組成員
源樹(SPT樹):
多點傳播在網絡中傳輸經過的路由器和路徑組成的樹
特點:以多點傳播源為根,到組成員的最短路徑樹
PIM路由表使用(S,G)描述SPT樹。S代表多點傳播源位址,G代表多點傳播組的位址
(S,G)表項:
1)有且隻有一個上遊接口,也稱為 RPF 接口(反向路徑檢測接口),用于接收該(S,G)的多點傳播流量。
2)可以有一個或多個或沒有下遊接口,用于發送該(S,G)的多點傳播流量。
3)下遊接口不可能成為向上遊接口。
共享樹(RPT樹):
以RP(彙聚點)為根一棵多點傳播分發樹
優點:隻需要維護(*,G)表項,節省裝置資源
(*,G)表項:
1)有且隻有一個上遊接口,也稱為 RPF 接口(反向路徑檢測接口),用于接收該(*,G)的多點傳播流量。
2)可以有一個或多個或沒有下遊接口,用于發送該(*,G)的多點傳播流量。
對比:
(S,G)多點傳播轉發路徑最優,需要維護所有已知的(S,G)表項,比較占用裝置資源,流量路徑比較多,不利于運維和故障定位以及排除。
(*,G)多點傳播轉發路由非最優,但無需維護所有的(S,G)表項,裝置開銷較小,多點傳播流量路徑明确,有控制點,友善故障定位和排錯。
PIM-DM(密集模式)
“推(Push)”的模式轉發多點傳播封包
周期性的擴散和剪枝建構和維護單向無環的SPT樹
适用于小型的多點傳播網絡
1.鄰居發現
Hello消息
目的位址為224.0.0.13、源位址為接口的IP位址、TTL值為1
周期性時間:30s
失效時間:105s
PIM-DR作用:
1、用于充當IGMPv1的查詢器
2、PIM-DM模式下,DR沒有實際用途。
接口開啟PIM,鄰居關系就會建立起來。
2.擴散機制
将多點傳播源發送的多點傳播封包擴散到全網
沿途每台PIM-DM路由器建立(S,G)表項
DM模式擴散機制:
1)路由器接收到多點傳播流量後,對接收該流量的接口進行RPF檢測。
如果RPF檢測成功,則建立(S,G)表項,RPF檢測成功的接收成為上遊接口,檢測失敗丢棄該多點傳播流量。
RPF檢測機制:根據多點傳播的源位址查找單點傳播路由表,如果接收多點傳播流量的接口是去往多點傳播源位址的單點傳播路由出口,則RPF檢測通過,接收該多點傳播流量,并建立(S,G)表項。
如果去往多點傳播源存在多條等價出口,則下一跳位址大的出口,作為RPF接口。RPF接口上的PIM鄰居稱為RPF鄰居。
RPF檢測舉例:
2)從上遊接口接收到的(S,G)流量,從除了RPF接口之外的存在PIM鄰居的接口以及存在直連組成員進行擴散。
3.剪枝機制
1)當路由器發現自身不存在任何下遊接口時,将發起剪枝機制,向RPF接口上發送剪枝封包,目的位址為224.0.0.13,即該接口上的所有PIM鄰居。
上遊路由器收到剪枝封包後,如果剪枝封包中攜帶的RPF鄰居位址是自身接口IP,則将自身接收剪枝封包的接口從(S,G)下遊接口中删除
①如果剪枝後,下遊接口不為空,剪枝結束;
②如果剪枝後,下遊接口為空,繼續向(S,G)表項RPF的接口發送剪枝封包,向上遊繼續剪枝。
出現等價出口,三個出接口,誰的位址大,誰就是我的RPF鄰居
PIM DM--SPT樹的形成
1)經過擴散-剪枝過程,形成多點傳播源與接收者之間SPT樹
2)擴散-剪枝周期進行,210s重複一次
DM模式周期性擴散的意義:
1)向全網路由器表明多點傳播源是活躍的。
2)能夠維護(S,G)表項不被老化。
4.嫁接(graft)
作用:剪枝的路徑上如果存在新組成員的加入,快速獲得多點傳播流量
路由器根據組位址查找對應的(S,G)表項;
1)如果沒有對應的(S,G)表項則無法完成嫁接。
2)如果有對應的(S,G)表項,那麼根據多點傳播源位址查RPF接口,朝RPF接口的RPF鄰居發送單點傳播嫁接封包,SIP位址為自身路由器的接口位址,DIP為RPF鄰居的位址。
上遊RPF鄰居接收到嫁接封包,将接收該封包的接口接入到自身(S,G)表項的下遊接口中,并單點傳播回複嫁接确認封包。如果這個被嫁接的接口是(S,G)表項唯一的下遊接口,則繼續向上遊發起嫁接;如果這個被嫁接的接口不是(S,G)表項唯一的下遊接口,則嫁接結束。
總結:即以前剪枝到哪,就嫁接到哪
5.狀态重新整理機制
是PIM-DM預設的優化機制,避免了周期性擴散-剪枝行為的發送,導緻多點傳播流量占用網絡帶寬,節省網絡資源。
1)第一跳路由器會周期性的發送PIM的狀态重新整理封包,目的位址為224.0.0.13,即發給所有的PIM鄰居,該封包還攜帶(S,G)的資訊。
2)下遊路由器收到狀态重新整理封包後,會重置(S,G)表項的老化時間以及重置剪枝接口的剪枝逾時定時器。當多點傳播源不再向網絡發送多點傳播流量時,第一跳路由器停止狀态重新整理封包的發送,全網(S,G)表項逾時後被删除。
周期性時間:60s
配置在第一跳路由器連接配接多點傳播源的接口,預設開啟
6.斷言機制(assert)
接收到重複的多點傳播流量:
斷言:保證隻有一個PIM路由器向該網段轉發多點傳播封包,實作無重複多點傳播流量
斷言封包發給該網段上的所有PIM路由器,即224.0.0.13。
斷言封包中攜帶:1)路由器到達多點傳播源路由的協定優先級;
2)路由器到達多點傳播源路由的開銷值
3)路由器自身在該網段的接口位址
斷言選舉機制:1)協定優先級優的成為斷言的winner
2)優先級相同,比較開銷值小的成為斷言的winner
3)開銷值相同,接口位址大的成為斷言的winner
斷言的優勝者負責在該網段擴散多點傳播流量,失敗者将失敗的接口從(S,G)表項删除。
斷言的優勝者被下遊路由器認為是自己的RPF鄰居,比下遊路由器自身判斷RPF鄰居的機制優先。
斷言的失敗者會在該網段發送剪枝封包,企圖将斷言優勝者也剪枝掉,斷言優勝者如果在3s内收到join封包,則否決剪枝封包,如果3s後沒有收到join封包,也将接口從(S,G)表項中删除。剪枝否決機制。
PIM-SM(稀疏模式)
使用“拉”的模式轉發多點傳播封包---按需
适用于大型多點傳播網絡
以RP為根建構RPT
1.鄰居發現和DR競選
1)鄰居發現和PIM-DM一緻
2)廣播網絡中必須進行DR選舉
PIM-SM的DR分為兩種:
1)源端DR:負責發送reg注冊封包或者reg-stop封包,建構SPT樹。
2)成員端DR:負責發送join封包建構RPT樹。
RPT樹的建立:
以RP為根,成員端DR發送join封包建構
PIM-SM模式:
PIM網絡的路由器
(S,G)一定要事先知道S的位址,以及存在S的路由
(*,G)一定要事先知道RP的位址,以及存在RP的路由
(,G)表項是由收到成員報告封包或者收到(,G)的join封包而被建立的。
(*,G)表項的上行接口是根據RP的位址進行RPF檢測得到的。
(,G)表項的下遊接口是存在直連組成員或者收到正确的(,G) join封包而被建立出來的。
(,G)表項的下遊接口收到(,G)的剪枝封包或者最後組成員leave封包而被删除。當(,G)表項下遊接口為NULL時,朝RP的RPF接口發送(,G)剪枝封包。
PIM-SM—RP發現
發現方式:
1)靜态RP
2)動态RP
RP的特點:
1.同一個時刻一個組隻能有一個RP
2.不同的組可以有相同的RP
一、靜态RP
靜态RP需要在每台路由器上配置
static-rp 1.1.1.1 ,将1.1.1.1設定為所有組的RP
static-rp 2.2.2.2 2000,将2.2.2.2設定為acl 2000組位址範圍的RP
1)如果某個組位址同時滿足多條ACL,則掩碼長度大的優先,即越精确越優先
3)預設情況下,動态RP優先使用。Preferred:設定靜态RP優先。
二、動态RP協定
BSR 自舉協定,開放标準的協定。
BSR的工作機制:
1)首先管理者需要手動配置C-BSR路由器,可以是一台或者多台。
2)在所有C-BSR中選舉出BSR路由器。
3)如果BSR路由器失效,在其他的C-BSR中重新選舉新的BSR路由器。
4)如果隻有一台C-BSR,則它成為BSR
選舉過程:
1、C-BSR 初始認為自身就是BSR,在所有存在PIM鄰居的接口上周期性發送Bootstrap封包,源位址為實體機接口IP,目的位址為224.0.0.13,TTL=1。
2、攜帶C-BSR的位址、C-BSR的優先級,逐跳在泛洪到整個PIM網絡。
選舉規則:
1)比較C-BSR的優先級,值越大優先成為BSR
2)優先級相同,C-BSR位址大的成為BSR。
3、競選失敗的C-BSR将不會周期性發送Bootstrap封包,即此刻網絡中隻有BSR周期性發送Bootstrap封包。周期性時間60s。
4、C-BSR維護一個BSR失效計時器,預設在130s逾時,如果沒有收到Bootstrap封包,則認為BSR失效,重新進行BSR的選舉。
為了防止Bootstrap的泛洪環路,引入BSR RPF檢測機制,路由器收到Bootstrap封包,根據BSR的位址進行RPF檢測。
隻有同時滿足以下2個條件時才接收Bootstrap封包,并向其他接口繼續泛洪:
1、收到Bootstrap封包的接口為去往BSR的出口。
2、收到的Bootstrap封包的源位址為RPF鄰居的位址。
pim
c-bsr loopback0
RP的選舉機制:
1、首先管理者需要手動配置C-RP路由器,可以是一台或者多台,C-BSR也可以是C-RP
2、C-RP向BSR的位址發送單點傳播的advertisement封包,源位址為C-RP的競選位址,目的位址為BSR的位址。
3、Advertisement封包中攜帶RP的競選參數,包括C-RP位址、C-RP的優先級、服務的位址組範圍
RP選舉機制:
1)服務組範圍掩碼長的優先
2)C-RP優先級值小的優先,預設為0。
3)根據bootstrap封包設定的hash掩碼長度計算hash,值大的優先。
4)C-RP位址大的優先。
PIM-SM的SPT切換
1、SPT切換由最後一跳路由器發起
2、當最後一跳路由器接收到從RPT樹的多點傳播流量後,可以通過多點傳播流量得知多點傳播源的位址,則預設發起SPT切換,希望建構一棵源到最後一跳路由器的SPT樹,實作路由優化。
SPT切換的流程:
1、最後一跳路由器根據多點傳播源的位址進行RPF檢測,并向指向多點傳播源的RPF接口上RPF鄰居發送(S,G)的join封包,逐跳建構SPT樹。
2、當去往多點傳播源位址和去往RP的位址的RPF接口不一緻時,路由器沿着去往多點傳播源RPF發送(S,G) (S)join,沿着去往RP的RPF接口發送(S,G) (SR)prune。
沿着RP方向上的路由器将自身(S,G)表項的下遊口剪枝掉,實作SPT切換,通過SPT樹接收多點傳播流量。
配置指令:
spt-switch-threshold 1000 //檢測到多點傳播流量速率達到1000kb時進行SPT切換,門檻值預設為0,即收到多點傳播流量就進行切換。門檻值為infiity(無限大)時不進行切換(關閉SPT切換)。