一種組播轉(zhuǎn)發(fā)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種組播流量轉(zhuǎn)發(fā)方法和裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,組播技術(shù)在生活中的應(yīng)用也越來越廣泛。在現(xiàn)有組網(wǎng)中,位 于組播接收端的二層交換設(shè)備一般可通過IGMP-SN00PING (Internet Group Management Protocol Snooping,互聯(lián)網(wǎng)組管理窺探)技術(shù),學(xué)習(xí)該二層交換設(shè)備的路由器端口和成員 端口,并根據(jù)組播流量MAC (Media Access Control,介質(zhì)訪問控制層)地址與成員端口的映 射關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng),然后將該二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到交換芯片,使交換芯片 根據(jù)該二層組播轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)組播流量。
[0003] 但在實(shí)際應(yīng)用中,有很多應(yīng)用場景將支持IGMP-SN00PING技術(shù)的二層交換設(shè)備置 于組播源端。然而,由于源端的二層交換設(shè)備并不能直接連接請求組播流量的成員主機(jī), 因此無法通過IGMP-SN00PING技術(shù)學(xué)習(xí)到成員端口,也無法根據(jù)組播流量MAC地址與成員 端口的映射關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)給轉(zhuǎn)發(fā)芯片,導(dǎo)致組播流量在VLAN (Virtual Local Area Network,虛擬局域網(wǎng))內(nèi)發(fā)生洪泛。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供一種組播流量轉(zhuǎn)發(fā)方法和裝置來解決組播流量在VLAN內(nèi) 發(fā)生洪泛的問題。
[0005] -種組播流量轉(zhuǎn)發(fā)方法,所述方法應(yīng)用于位于組播源端的二層交換設(shè)備,所述方 法包括步驟:
[0006] 接收轉(zhuǎn)發(fā)芯片上送的未知組播流量;
[0007] 獲取所述未知組播流量的組播組MAC地址對應(yīng)的出端口;
[0008] 根據(jù)所述組播組MAC地址和出端口的對應(yīng)關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng);
[0009] 將所述二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到所述轉(zhuǎn)發(fā)芯片,使所述轉(zhuǎn)發(fā)芯片按照所述二層組 播轉(zhuǎn)發(fā)表項(xiàng)將所述未知組播流量進(jìn)行二層轉(zhuǎn)發(fā)。
[0010] 進(jìn)一步的,所述獲取所述未知組播流量的組播組MAC地址對應(yīng)的出端口,包括:
[0011] 通過與請求所述未知組播流量的組播組交互,獲取請求所述未知組播流量的組播 組IP地址及出端口的對應(yīng)關(guān)系;
[0012] 根據(jù)所述未知組播流量中的組播組IP地址及組播組MAC地址的映射關(guān)系,獲取所 述未知組播流量的組播組MAC地址對應(yīng)的出端口。
[0013] 進(jìn)一步的,在接收所述轉(zhuǎn)發(fā)芯片上送的未知組播流量前,所述方法還包括:
[0014] 當(dāng)二層交換設(shè)備位于組播接收端時,去使能所述二層交換設(shè)備的CPU接收所述轉(zhuǎn) 發(fā)芯片上送的未知組播流量。
[0015] 進(jìn)一步的,在接收所述轉(zhuǎn)發(fā)芯片上送的未知組播流量后,所述方法還包括:判斷所 述組播流量是否符合預(yù)設(shè)的過濾策略,若不符合則將所述組播流量丟棄。
[0016] 進(jìn)一步的,將所述二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到所述轉(zhuǎn)發(fā)芯片后,所述方法還包括:
[0017] 按照預(yù)設(shè)時間間隔查詢所述轉(zhuǎn)發(fā)芯片上是否存在所述二層組播轉(zhuǎn)發(fā)表項(xiàng)對應(yīng)的 組播流量,若不存在則控制所述轉(zhuǎn)發(fā)芯片刪除所述組播轉(zhuǎn)發(fā)表項(xiàng)。
[0018] 基于相同的構(gòu)思,本發(fā)明還提供一種組播流量轉(zhuǎn)發(fā)裝置,所述裝置應(yīng)用于位于組 播源端的二層交換設(shè)備,所述裝置包括:
[0019] 接收單元,用于接收轉(zhuǎn)發(fā)芯片上送的未知組播流量;
[0020] 獲取單元,用于獲取所述未知組播流量的組播組MAC地址對應(yīng)的出端口;
[0021] 創(chuàng)建單元,用于根據(jù)所述組播組MAC地址和出端口的對應(yīng)關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā) 表項(xiàng);
[0022] 下發(fā)單元,用于將所述二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到所述轉(zhuǎn)發(fā)芯片,使所述轉(zhuǎn)發(fā)芯片 按照所述二層組播轉(zhuǎn)發(fā)表項(xiàng)將所述未知組播流量進(jìn)行二層轉(zhuǎn)發(fā)。
[0023] 進(jìn)一步的,所述獲取單元具體用于:
[0024] 通過與請求所述未知組播流量的組播組交互,獲取請求所述未知組播流量的組播 組IP地址及出端口的對應(yīng)關(guān)系;
[0025] 根據(jù)所述未知組播流量中的組播組IP地址及組播組MAC地址的映射關(guān)系,獲取所 述未知組播流量的組播組MAC地址對應(yīng)的出端口。
[0026] 進(jìn)一步的,所述裝置還包括:
[0027] 使能單元,用于當(dāng)二層交換設(shè)備位于組播接收端時,去使能所述接收單元接收所 述轉(zhuǎn)發(fā)芯片上送的未知組播流量。
[0028] 進(jìn)一步的,所述裝置還包括:
[0029] 過濾單元,用于在接收所述轉(zhuǎn)發(fā)芯片上送的未知組播流量后,判斷所述組播流量 是否符合預(yù)設(shè)的過濾策略,若不符合則將所述組播流量丟棄。
[0030] 進(jìn)一步的,所述裝置還包括:
[0031] 查詢單元,用于在所述二層組播轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到所述轉(zhuǎn)發(fā)芯片后,按照預(yù)設(shè)時間 間隔查詢所述轉(zhuǎn)發(fā)芯片上是否存在所述二層組播轉(zhuǎn)發(fā)表項(xiàng)對應(yīng)的組播流量,若不存在則控 制所述轉(zhuǎn)發(fā)芯片刪除所述組播轉(zhuǎn)發(fā)表項(xiàng)。
[0032] 由此可見,本發(fā)明可以使源端的二層交換設(shè)備獲取組播流量對應(yīng)的組播組MAC地 址和出端口,以組播組MAC地址和出端口的對應(yīng)關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng)并下發(fā)到轉(zhuǎn)發(fā) 芯片,從而可以準(zhǔn)確轉(zhuǎn)發(fā)組播流量,避免組播流量在VLAN內(nèi)發(fā)生洪泛。
【附圖說明】
[0033] 圖1是現(xiàn)有技術(shù)中接收端交換機(jī)轉(zhuǎn)發(fā)組播流量的示意圖;
[0034] 圖2是現(xiàn)有技術(shù)中源端交換機(jī)轉(zhuǎn)發(fā)組播流量的示意圖;
[0035] 圖3是本發(fā)明實(shí)施例中一種組播流量轉(zhuǎn)發(fā)方法的處理流程圖;
[0036] 圖4是本發(fā)明實(shí)施例中源端交換機(jī)轉(zhuǎn)發(fā)組播流量的示意圖;
[0037] 圖5是本發(fā)明實(shí)施例中一種組播流量轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
[0038] 圖6是本發(fā)明實(shí)施例中另一種組播流量轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039] 請參見圖1,現(xiàn)有技術(shù)中接收端交換機(jī)轉(zhuǎn)發(fā)組播流量的示意圖。其中包括位于組 播接收端的交換機(jī)A和交換機(jī)B。交換機(jī)A可以通過IGMP-SN00PING技術(shù)與請求組播流量 的主機(jī)交互,學(xué)習(xí)路由器端口和成員端口。所謂的路由器端口即交換機(jī)A朝向上有組播設(shè) 備一側(cè)的端口(如圖1中?所示);所謂的成員端口即交換機(jī)A朝向下游主機(jī)一側(cè)的端口 (如圖1中Λ所示);然后建立組播MAC地址與成員端口的對應(yīng)關(guān)系。當(dāng)主機(jī)B和主機(jī)C請 求組播流量時,交換機(jī)A可以利用MAC地址與成員端口的對應(yīng)關(guān)系轉(zhuǎn)發(fā)組播流量(圖1中 虛線箭頭所示)。
[0040] 然而,實(shí)際應(yīng)用中,很多源端的交換機(jī)也需要處理二層組播流量。如圖2所示,其 中交換機(jī)A位于組播源端,交換機(jī)B位于組播接收端,路由器A、路由器B和交換機(jī)A位于 同一 VLAN。當(dāng)主機(jī)C和主機(jī)B請求組播流量時,會向交換機(jī)B發(fā)送IGMP加組報(bào)文,但由于 路由器A和路由器B不會向上游的交換機(jī)A發(fā)送IGMP加組報(bào)文,因此交換機(jī)A無法通過 IGMP-SN00PING技術(shù)獲取請求組播流量的成員端口,即交換機(jī)A面向路由器的出端口,也就 不能根據(jù)組播MAC地址和出端口的對應(yīng)關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng)。
[0041] 若組播源發(fā)送組播流量時,位于源端的交換機(jī)A若根據(jù)二層組播轉(zhuǎn)發(fā)表項(xiàng)查找不 到該組播流量的出端口,則將該組播流量稱為未知組播流量。由于交換機(jī)A不能判斷該未 知組播流量應(yīng)該轉(zhuǎn)發(fā)到路由器A還是路由器B,因此會將該未知組播流量向該流量所在的 VLAN中的每個設(shè)備都發(fā)送一份(如圖2中虛線箭頭所示),導(dǎo)致原本沒有請求組播流量的 路由器B也收到該組播流量,造成組播流量在VLAN內(nèi)發(fā)生洪泛。
[0042] 有鑒于此,本發(fā)明提供一種組播流量轉(zhuǎn)發(fā)方法和裝置,可以使源端的二層交換機(jī) 設(shè)備獲取組播流量對應(yīng)的組播組MAC地址和出端口,以組播組MAC地址和出端口的對應(yīng)關(guān) 系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng)并下發(fā)到轉(zhuǎn)發(fā)芯片,從而可以準(zhǔn)確轉(zhuǎn)發(fā)組播流量,避免組播流量 在VLAN中發(fā)生洪泛。
[0043] 本發(fā)明實(shí)施例提供的一種組播流量轉(zhuǎn)發(fā)方法的處理流程如圖3所示,該方法應(yīng) 用于位于組播源端的二層交換設(shè)備,該二層交換設(shè)備通常包括轉(zhuǎn)發(fā)芯片和CPU (Central Processing Unit,中央處理器),所述方法包括步驟:
[0044] 步驟301、CPU接收轉(zhuǎn)發(fā)芯片上送的未知組播流量;
[0045] 請參考圖4,其中包括交換機(jī)A、交換機(jī)B、及交換機(jī)C,其中交換機(jī)A位于組播源 端,交換機(jī)B和交換機(jī)C位于組播接收端。假設(shè)圖中的路由器A和路由器B與交換機(jī)A屬 于同一 VALN1。當(dāng)組播源發(fā)送組播流量時,交換機(jī)A可以獲取該組播流量,并且解析該組播 流量的源MAC地址為MAC0和目的MAC地址為MAC1,其中源MAC地址為組播源的MAC地址, 目的MAC地址為組播組的MAC地址,該組播組的MAC地址是一個邏輯地址,并不是一個物理 設(shè)備的MAC地址。交換機(jī)A的轉(zhuǎn)發(fā)芯片對于查找不到出端口的未知組播流量,可以將其上 送至CPU處理。于是,CPU可以接收到轉(zhuǎn)發(fā)芯片上送的未知組播流量。
[0046] 步驟302、獲取所述未知組播流量的組播組MAC地址對應(yīng)的出端口;
[0047] 在可選的實(shí)施例中,CPU接收到轉(zhuǎn)發(fā)芯片上送的所述未知組播流量后,可以通過與 請求所述未知組播流量的組播組進(jìn)行PIM(Protocol Independent Multicast,協(xié)議無關(guān)組 播)Hello報(bào)文交互,來獲取請求所述未知組播流量的組播組IP地址及出端口的對應(yīng)關(guān)系; 再根據(jù)從所述未知組播流量中獲取的組播組IP地址和MAC地址的映射關(guān)系,從而得到所述 未知組播流量的組播組MAC地址與出端口的對應(yīng)關(guān)系。
[0048] 下面以圖4中的主機(jī)B和主機(jī)C請求組播流量為例,具體說明CPU如何獲取所述未 知組播流量的組播組MAC地址對應(yīng)的出端口。首先,連接主機(jī)B和主機(jī)C的路由器A可向 組播源發(fā)送PM Hello報(bào)文來請求組播流量。所述P頂Hello報(bào)文中包括組播組IP地址; 交換機(jī)A可以將接收到ΡΠ 1 Hello報(bào)文的端口(假設(shè)為ethl)與該組播組IP地址(IP1) 建立映射關(guān)系;由于所述未知組播流量中有組播組IP地址(IP1)和MAC地址(MAC1)的映 射關(guān)系,從而CPU可得到所述未知組播流量的組播組MAC地址(MAC1)與出端口(ethl)的 對應(yīng)關(guān)系。
[0049] 步驟303、根據(jù)所述組播組MAC地址和出端口的對應(yīng)關(guān)系創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng);
[0050] 根據(jù)上述CPU獲取的所述未知組播流量的組播組MAC地址(MAC1)與出端口 (ethl)的對應(yīng)關(guān)系可以創(chuàng)建二層組播轉(zhuǎn)發(fā)表項(xiàng),如表1所不。
[0051]
[0052] 表 1
[0053] 步驟304、將所述二層組播轉(zhuǎn)