-
IP組播
鎖定
- 中文名
- IP組播
- 外文名
- IP multicasting
IP組播簡介
IP組播(IP multicasting)是對硬件組播的抽象,是對標準IP網絡層協議的擴展。它通過使用特定的IP組播地址,按照最大投遞的原則,將IP數據包傳輸到一個組播羣組(multicast group)的主機集合。它的基本方法是:當某一個人向一組人發送數據時,它不必將數據向每一個人都發送,只需將數據發送到一個特定的預約的組地址,所有加入該組的人均可以收到這份數據。這樣對發送者而言,數據只需發送一次就可以發送到所有接收者,大大減輕了網絡的負載和發送者的負擔。
IP組播概念
多播是對需要接收該流量的客户端發送的一組數據,是一種無害的廣播。
IP組播優點
組播可以優化網絡性能,消除流量冗餘;
組播可以適應分佈式應用,當接收者數量發生變化時,網絡流量的波動很平穩。
IP組播多播地址
239.0.0.0--239.255.255.255 私有組播地址。
232.0.0.0--232.255.255.255 特定源多播。
IP組播地址結構
01005E,固定的16進制位,後接一固定的比特位0,再其後就任意了。
ip與mac的映射,例:
ip地址 229.147.109.235
劃成bit 11100101.1 / 0010011.01101101.11101011
多播mac結構 01005E "0" / ..........(斜槓後23位與上面對應)
從例子可知,32個多播地址映射成一個mac地址,所以在部署一個網絡時要措開使用ip多播地址(變尾部)
IP組播源分發樹
源分發樹,保證目的到達源的路徑最短,但要為每一個多播源保持一棵樹,CPU使用率高。
共享分發樹,要選RP,能保證目的到RP最近,不用為每一個源保持一棵樹,而共同保持一棵以RP為根的樹即可,這樣節約了設備資源,但是不能再保證到源的路徑最近了。(源發向rp的多播以單播ip in ip的形式)
IP組播RPF
RPF檢查的原理:路由器在單播路由表中查找源地址以確定數據包到達的接口是否位於返回信源的的反向路徑上,如果是則RPF檢查成功,如果不是則標記“RPF失敗丟棄”並丟棄數據包。簡單來説就是根據去的數據路由表項來檢查回來的包,確定去回在一線上。
作用:對於多播,能防止環路(多播RPF檢查是默認開啓且不能關閉的);對於單播,能防止IP欺騙攻擊(需要手工配置RPF檢查)
IP組播交互
PIM MODE:PIM DM(密集模式,使用源分發樹),
PIM SM(稀疏模式,使用共享分發樹),
PIM SDM(稀疏密集模式,先嚐試使用共享樹,找不到RP再切向源分發樹)
PIM SM,用於用户分散的情況,只有一棵樹,初始為空,只有路由器發起要求才建立分支。這種模式存在着第一個到目的的數據包會觸發目的向源發送一個單播形式的該數據,如果到源的路徑好過走rp的路徑則自動向最佳路徑切換。
PIM SDM,使用最多的模式,效率最高。
rp的選舉問題,三種方式:手工指定,auto rp(cisco only),BSR自舉路由器(只有pim v2支持)
配置:
(config)#ip mutilcast-routing
(config-if)#ip pim 模式
密集模式的配置:
(config-if)#ip pim dense
稀疏模式的配置:
靜態: (config)#ip mutilcast-routing
(config-if)#ip pim sparse
(config)#ip pim rp-add x.x.x.x
(config)#ip pim spt-thresheld infin / 具體值 指定向源切換的界限
定義映射代理,(config)#ip pim send-rp-discovery scope ttl值
指定模式,(config-if)#ip pim sp-de mode
注意,要224.0.1.39和224.0.1.40一對組播地址支持rp選舉:
rp映射代理發往rp候選者用224.0.1.40
反過來,用224.0.1.39
BSR:(config-if)#ip pim 1 / 2 更改pim版本號,bsr只支持2
(config-if)#ip pim bsr border 定義多播邊界
(config)#ip pim rp-candidate 接口 定義rp候選者
(config)#ip pim bsr-candidate 接口 定義bsr
這裏,bsr用224.0.1.13向候選者通告,候選者用單播迴應bsr。
sh ip mroute; sh ip pim int; sh ip pim nei;
sh ip pim rp; sh ip pim bsr; sh ip pim map.
(2)IGMP(Internet組管理協議)處理pc和router的交互。
三個版本:
igmpv1:report(pc發出,地址255.1.1.1,ttl=1),query(router發出,發項0.0.0.0,60秒一次,120s沒收到report迴應則停止向該pc發組播)。
igmpv2:在v1基礎上增加了一個leave消息,query消息的作用就變成了防止pc意外離開(沒有leave消息,不被router所知)。
igmpv3:可以對信源地址做控制了,選擇pc需要的特定多播。
另外還有一個igmpv3lite,是cisco私有的過渡方案,目的是讓程序員能立刻編寫ssm。
(3)switch的多播處理:cgmp和switch snooping
CGMP:思科私有協議,運行於思科交換機與思科路由器之間,讓交換機能夠通過路由器給出的消息間接支持組管理。
流程大致是:pc發igmp告知路由器我需要什麼多播,如果路由器就直接把多播傳入則經過交換機的時候會被交換機發向與該pc一個vlan的所有主機,router需要將該多播的mac通告交換機,讓其明白多播具體該發向哪,並建立一個多播的轉發表。