MLD協(xié)議測(cè)試實(shí)操(信而泰原創(chuàng)文章)
一、簡(jiǎn)介
1. MLD簡(jiǎn)介
MLD
· Multicast Listener Discovery Protocol
· 組播偵聽(tīng)者發(fā)現(xiàn)協(xié)議
功能
· 在終端主機(jī)和與其直接相鄰的組播路由器之間建立/維護(hù)組播組成員關(guān)系
標(biāo)準(zhǔn)
· RFC2710: MLD, 1999.10
· RFC3810: MLDv2, 2004.06
其定義是:組播偵聽(tīng)者發(fā)現(xiàn)協(xié)議MLD(Multicast Listener Discovery)是負(fù)責(zé)IPv6組播成員管理的協(xié)議,用來(lái)在IPv6成員主機(jī)和與其直接相鄰的組播路由器之間建立和維護(hù)組播組成員關(guān)系。MLD通過(guò)在成員主機(jī)和組播路由器之間交互MLD報(bào)文實(shí)現(xiàn)組成員管理功能,MLD報(bào)文封裝在IPv6報(bào)文中。
在功能上:出現(xiàn)于IPv4時(shí)代的組播技術(shù),有效解決了單點(diǎn)發(fā)送、多點(diǎn)接收的問(wèn)題,實(shí)現(xiàn)了網(wǎng)絡(luò)中點(diǎn)到多點(diǎn)的高效數(shù)據(jù)傳送,能夠大量節(jié)約網(wǎng)絡(luò)帶寬、降低網(wǎng)絡(luò)負(fù)載。在IPv6網(wǎng)絡(luò)中,組播技術(shù)的應(yīng)用得到了進(jìn)一步的豐富和加強(qiáng)。MLD可以理解為IGMP的IPv6版本,兩者的協(xié)議行為完全相同,區(qū)別僅僅在于報(bào)文格式。
因此,MLD定義了一個(gè)IPv6網(wǎng)段內(nèi)組播路由器與成員主機(jī)之間如何建立和維護(hù)組成員關(guān)系
2. IGMP與MLD
MLDv1的工作機(jī)制與IGMPv2相同,基于查詢和響應(yīng)機(jī)制完成對(duì)IPv6組播組成員的管理。MLDv2在MLDv1的基礎(chǔ)上,增加的主要功能是成員主機(jī)可以指定接收或不接收某些組播源的報(bào)文。MLD兩個(gè)版本在演進(jìn)過(guò)程中對(duì)協(xié)議報(bào)文的處理是向前兼容的,即運(yùn)行MLDv2的組播路由器可以識(shí)別MLDv1的協(xié)議報(bào)文。

這里,我們以MLDv1進(jìn)行舉例:
3. MLDv1工作原理
MLDv1主要基于查詢和響應(yīng)機(jī)制完成對(duì)IPv6組播組成員的管理
· 查詢器選舉機(jī)制
· 加入IPv6組播組機(jī)制
· 離開(kāi)IPv6組播組機(jī)制
MLDv1包含四種報(bào)文
· 普遍組查詢報(bào)文(General Query):查詢器向共享網(wǎng)絡(luò)上所有主機(jī)和路由器發(fā)送的查詢報(bào)文,用于了解哪些組播組存在成員;
· 特定組查詢報(bào)文(Multicast Address Specific Query):查詢器向共享網(wǎng)段內(nèi)指定組播組發(fā)送的查詢報(bào)文,用于查詢?cè)摻M播組是否存在成員;
· 成員報(bào)告報(bào)文(Multicast Listener Report):主機(jī)向查詢器發(fā)送的報(bào)告報(bào)文,用于申請(qǐng)加入某個(gè)組播組或者應(yīng)答查詢報(bào)文;
· 成員離開(kāi)報(bào)文(Multicast Listener Done):主機(jī)離開(kāi)組播組時(shí)主動(dòng)向查詢器發(fā)送的報(bào)文,用于宣告自己離開(kāi)了某個(gè)組播組。
4. MLDv1:查詢器選舉機(jī)制
網(wǎng)段內(nèi)有多個(gè)IPv6組播組路由器時(shí),需要確定一臺(tái)路由器作為查詢器發(fā)送查詢報(bào)文
· 所有Router都網(wǎng)絡(luò)中發(fā)送MLD普遍查詢報(bào)文;
· 收到其他router的普遍查詢報(bào)文后,自行與自己的IPv6地址比較,地址最小的成為查詢器;
· 所有非查詢器上會(huì)啟動(dòng)一個(gè)定時(shí)器(Other Querier Present Timer)。在定時(shí)器超時(shí)前收到來(lái)自查詢器的MLD查詢報(bào)文,則重置該定時(shí)器;否則,認(rèn)為查詢器失效,并發(fā)起新的查詢器選舉。

5. MLDv1:普遍組查詢和響應(yīng)機(jī)制
通過(guò)普遍組查詢和響應(yīng),MLD查詢器可以了解到該網(wǎng)段內(nèi)那些組播組存在成員
· MLD查詢器發(fā)送目的地址為FF02::1的普遍查詢報(bào)文,收到該查詢報(bào)文的組成員啟動(dòng)定時(shí)器;
· 第一個(gè)定時(shí)器查實(shí)的組成員發(fā)送針對(duì)該組的報(bào)告報(bào)文;
· 其余組成員收到此報(bào)告報(bào)文后,停止定時(shí)器,不再發(fā)送針對(duì)該組的報(bào)告報(bào)文,此功能被抑制;
· MLD查詢器收到組成員報(bào)告報(bào)文后,知道本網(wǎng)段內(nèi)存在組播組G1的成員,并由IPv6組播路由協(xié)議生成(*,G1)組播轉(zhuǎn)發(fā)表項(xiàng),一旦有組播組G1的數(shù)據(jù)到達(dá)路由器,就向該網(wǎng)段轉(zhuǎn)發(fā)。

6. MLDv1:加入IPv6組播組機(jī)制
網(wǎng)段內(nèi)有新成員需要加入組播組時(shí),會(huì)主動(dòng)向MLD查詢器發(fā)送報(bào)告報(bào)文,不必等待普遍查詢報(bào)文的到來(lái)
· 右圖三個(gè)主機(jī)分別向G1、G2發(fā)送報(bào)告報(bào)文,MLD查詢器接收到成員報(bào)告報(bào)文后,了解到網(wǎng)段中有G1 和G2的成員,IPv6路由組播協(xié)議生成(*,G1)和(*,G2)組播轉(zhuǎn)發(fā)表項(xiàng)
· MLD查詢器周期性地以組播方式向本網(wǎng)段的所有主機(jī)和路由器發(fā)送普遍查詢報(bào)文,主機(jī)分別響應(yīng)G1和G2的查詢,HostC被HostB的組成員關(guān)系報(bào)告報(bào)文抑制,不發(fā)送成員關(guān)系報(bào)告報(bào)文

7. MLDv1:離開(kāi)IPv6組播組機(jī)制
通過(guò)離開(kāi)組機(jī)制,MLD查詢器可以及時(shí)了解到網(wǎng)段內(nèi)哪些組播組已不存在成員,從而及時(shí)更新組成員關(guān)系,減少網(wǎng)絡(luò)中冗余的組播流量
· Host B向網(wǎng)段內(nèi)所有組播路由器發(fā)送針對(duì)組G1的離開(kāi)報(bào)文;
· MLD查詢器收到離開(kāi)報(bào)文,會(huì)發(fā)送針對(duì)組G1的特定組查詢報(bào)文,同時(shí)查詢器啟動(dòng)組成員關(guān)系定時(shí)器(Timer-Membership);
· 網(wǎng)段內(nèi)還存在組G1的其他成員Host C,Host C收到特定組查詢報(bào)文后會(huì)立即發(fā)送針對(duì)組G1的報(bào)告報(bào)文,查詢器收到報(bào)告報(bào)文后會(huì)繼續(xù)維護(hù)該組成員關(guān)系;
· 如果網(wǎng)段內(nèi)不存在組G1的其他成員,查詢器將不會(huì)收到針對(duì)組G1的報(bào)告報(bào)文,在組成員關(guān)系定時(shí)器(Timer-Membership)超時(shí)后,查詢器將刪除記錄的(*,G1)組信息。

二、測(cè)試用例(以BigTao-V網(wǎng)絡(luò)測(cè)試儀為例)
MLD測(cè)試用例
測(cè)試目的
· 驗(yàn)證DUT基本的MLD功能
· 驗(yàn)證組播流量轉(zhuǎn)發(fā)功能
測(cè)試步驟
· 按圖連接好拓?fù)?/span>
· 測(cè)試儀端口T1連接DUT的G 0/0/1接口
· DUT的G 0/0/1接口配置MLD
· 測(cè)試儀端口T2連接DUT的G 0/0/2接口,構(gòu)建組播數(shù)據(jù)流量,T1能夠接收到組播數(shù)據(jù)流量
· DUT的G 0/0/2接口配置PIM IPv6 SM,轉(zhuǎn)發(fā)組播數(shù)據(jù)流量
預(yù)期結(jié)果
· 測(cè)試儀端口T1模擬的主機(jī)可以成功加入組播組
· DUT能夠查到組播成員
· 測(cè)試儀T1端口能夠收到T2發(fā)送的流量
· 停止MLD協(xié)議仿真,測(cè)試儀T1端口不能收到T2發(fā)送的流量

三、DUT配置
1. 使用案例
#
vlan batch 500 600
#
multicast ipv6 routing-enable
#
interface Vlanif500
ipv6 enable
ipv6 address 2010::2/64
mld enable
#
interface Vlanif600
ipv6 enable
ipv6 address 2020::2/64
pim ipv6 sm
#
#
interface GigabitEthernet0/0/21
port link-type access
port default vlan 500
#
interface GigabitEthernet0/0/22
port link-type access
port default vlan 600
#
四、測(cè)試儀配置
1. 準(zhǔn)備工作: 添加機(jī)框

2. 準(zhǔn)備工作: 預(yù)約端口

3. 添加Interface


4. 修改Interface
· 使能“啟用網(wǎng)關(guān)MAC地址學(xué)習(xí)”
· 地址數(shù)量,代表模擬的主機(jī)個(gè)數(shù)
· IPv6地址,代表主機(jī)的起始IP
· IPv6網(wǎng)關(guān)地址,代表對(duì)接端口的IPv6地址
· IPv6 Link Local地址,鏈路本地地址

![]()
· 將Interface和MLD協(xié)議關(guān)聯(lián)
· 源MAC填寫任意單播地址(也可以不修改);目MAC填寫對(duì)應(yīng)組播組的MAC地址,比如ff1e::1對(duì)應(yīng)的組播MAC地址是3333-0000-0001
· 源IPv6和DUT對(duì)端IPv6設(shè)置成同網(wǎng)段,本例中編輯為2020::10;目的IPv6填寫T1所添·加的組播組的IP地址ff1e::1
· 主機(jī)狀態(tài)變?yōu)?ldquo;Member”表示添加組播組成功
· 可在DUT上查看加入組播組狀態(tài),發(fā)送報(bào)告報(bào)文的主機(jī)是FE80::200:10FF:FE00:1,加入的組播組是FF1E::1
訂閱“Port Stream Statistic”統(tǒng)計(jì)
沒(méi)有丟包,說(shuō)明組播流量可以正常轉(zhuǎn)發(fā),與預(yù)期結(jié)果一致
流量不通,說(shuō)明主機(jī)離開(kāi)了組播組ff1e::1,與預(yù)期結(jié)果一致
以上就是MLD協(xié)議測(cè)試的全部?jī)?nèi)容。










