【組播技術(shù)入門 05】IGMPv2(RFC2236)
1.消息格式 TYPE: Max Resp Time: 最大響應(yīng)時間(只在查詢消息中設(shè)置,,其他消息中為0x00)是主機(jī)用membership report 來響應(yīng)查詢包的最長等待時間,,默認(rèn)10s,,使用ip igmp query-max-response-time修改(此處設(shè)置的單位是s),而這個時間存儲在報文中則是以1/10s為單位,。因此這個值的范圍是:0-255個1/10s或0-25.5s Group address: 在發(fā)送常規(guī)查詢時,,該字段為全0;特定組查詢中該字段設(shè)置為該組的組播地址,。 在成員關(guān)系報告或離開組消息中,,該字段設(shè)置為目標(biāo)組播組地址。 2.消息類型 2.1 成員關(guān)系查詢 Membership query (TYPE:0x11)
路由器向子網(wǎng)中所有主機(jī)進(jìn)行輪詢 發(fā)向224.0.0.1,,而且不涉及任何一個具體組播組,。消息中的組地址設(shè)置為0.0.0.0。 如果一臺組播路由器在querier timeout 計時器(默認(rèn)是3倍的查詢間隔)超前仍沒有收到一個特定子網(wǎng)的Membership Report消息,,那么這個路由器將宣布這個子網(wǎng)中沒有組員,,不再向這個子網(wǎng)發(fā)送組播數(shù)據(jù)。 常規(guī)查詢默認(rèn)60s發(fā)送一次(范圍0-65535),,可使用ip igmp query-interval修改,。這個查詢中同時包含Max ResponseTime,這個值告訴主機(jī)用membership report消息回應(yīng)這個查詢的最長等待時間,,默認(rèn)10S,,使用ip igmp query-max-response-time修改,單位1/10S,范圍是0-255個1/10S,。
路由器的Group-Specific Query消息是根據(jù)主機(jī)發(fā)出的Leave Group消息而發(fā)出的,,當(dāng)路由器收到Leave Group消息時,必須判斷子網(wǎng)中是否仍有組員存在,。特定組查詢消息報文目的地址為該發(fā)出Leave Group的主機(jī)所在組的組地址,。為了避免Group-Specific Query被意外丟棄或被破壞導(dǎo)致路由器誤以為組內(nèi)沒有成員了,因此查詢路由器將間隔1S一次性發(fā)送兩個Group-Specific Query消息(可以使用ip igmp last-member-query-count修改發(fā)送幾個特定組查詢消息),,如果依然沒有成員響應(yīng),,路由器刪除該組。 2.2 Membership Report (0x16) 這個消息在一臺主機(jī)第一次加入組播組時發(fā)送,,用于通知IGMP查詢器自己要加入特定的組播組,。這個報文也用來響應(yīng)IGMP查詢器發(fā)出的membership Query。該消息被封裝在IP報文中,,目的是該主機(jī)期望加入的組播組地址,。 2.3 Version1 Membership Report (0x12) 功能同上,為兼容V1而設(shè)定的消息,。 2.4 Leave report (0x17) 3.報告抑制機(jī)制 當(dāng)一臺主機(jī)想加入某個組播組(224.5.5.5)時,發(fā)送關(guān)于224.5.5.5的Membership Report,,由于這是個組播報文,,當(dāng)二層交換機(jī)收到時,沒有關(guān)于這個目的MAC地址(01-00-5e-05-05-05)的轉(zhuǎn)發(fā)表項,因此就從所有端口發(fā)送出去,,這時,,當(dāng)網(wǎng)絡(luò)中還有需要接收224.5.5.5組播數(shù)據(jù)的主機(jī)收到這個關(guān)于224.5.5.5的Membership Report時,自己就不會再發(fā)送關(guān)于224.5.5.5的Membership 報文.這樣可以減少組播數(shù)據(jù)在網(wǎng)絡(luò)中的泛洪,。這些個現(xiàn)象,,可以通過debug ip igmp看到。 4.離開機(jī)制 首先我們看一下上圖所示的情況:有組成員希望離開組播組,,但該主機(jī)不是子網(wǎng)中該組播組的最后一個組播成員,。
上面這種情況,,PC2為224.2.2.2組播組的最后一個成員:
5.IGMPv2查詢器 如果一個LAN中有多個組播路由器,,這些組播路由器都發(fā)送IGMP查詢消息的話那就顯得非常多余且低效,這種情況下我們會在這些路由器(的接口)中選擇出一臺IGMP查詢器,。前面我們已經(jīng)了解到IGMPv1沒有定義機(jī)制來選舉查詢器,因此不得不依賴于第三層的組播路由協(xié)議來協(xié)助選擇,。而IGMPv2就定義了查詢器的選舉辦法,,IP地址小(指的是發(fā)送genernal Query的源地址)的路由器來充當(dāng)IGMP查詢器,,由它來發(fā)送查詢消息,。 初始化的時候大家伙兒都會發(fā),穩(wěn)定后只有IP小的那個充當(dāng)查詢者,。如果非查詢者在“other query persent Interval”(other query persent Interval這個計時器在CISCO IOS上默認(rèn)120s,,這個時間是查詢間隔計時器的兩倍,后來IETF又做了微調(diào),,把查詢間隔計時器改成125s,,因此other query persent Interval默認(rèn)就是兩倍的125s也就是250s,這里在實際部署的時候一定要注意新舊設(shè)備的計時器差異) 內(nèi)沒有收到查詢者的查詢,,那么它會認(rèn)為查詢者掛了,,自己就會成為查詢者,。 6.IGMPv2計時器 |
|