Trill網(wǎng)絡中的報文轉發(fā)方法和裝置的制造方法
【技術領域】
[0001] 本申請涉及網(wǎng)絡通信技術領域,特別涉及一種TRILL網(wǎng)絡中的報文轉發(fā)方法和裝 置。
【背景技術】
[0002] 多鏈路透明互聯(lián)(Transparent Interconnection of Lots of Links,TRILL) 協(xié)議將三層路由技術的中間系統(tǒng)到中間系統(tǒng)(Intermediate System-to-Intermediate System,IS-IS)的設計思路引入二層網(wǎng)絡,從而將二層網(wǎng)絡的簡單、靈活性與三層網(wǎng)絡的穩(wěn) 定、可擴展和高性能有機融合,非常適合數(shù)據(jù)中心構建大型二層網(wǎng)絡的需要。
[0003] 運行TRILL協(xié)議的設備稱為路由橋(RB)。根據(jù)RB在TRILL網(wǎng)絡中的位置,又可將 其分為入口(Ingress) RB、中間(Transit) RB和出口(Egress) RB,分別表示報文進入TRILL 網(wǎng)絡的入節(jié)點、在TRILL網(wǎng)絡中經(jīng)過的中間節(jié)點以及離開TRILL網(wǎng)絡的出節(jié)點。
[0004] RB中具有兩類轉發(fā)表項:單播轉發(fā)表項和組播轉發(fā)表項。單播轉發(fā)表項用于轉發(fā) 已知單播報文;組播轉發(fā)表項用于轉發(fā)多目的報文,其中,多目的報文包括:組播報文、廣 播報文和未知單播報文。
[0005] 在現(xiàn)有技術中,無論是RB+VLAN類型的組播轉發(fā)表項,還是RB+VLAN+MAC類型的 組播轉發(fā)表項,每一個組播轉發(fā)表項中的VLAN標識均是單一的,即,VLAN標識是一個指定 VLAN的標識,這樣,當VLAN數(shù)量較多時,RB上需要記錄大量的組播轉發(fā)表項,從而占用了較 多的存儲資源。
[0006] 此外,當RB感知到網(wǎng)絡拓撲變化時,需要針對每一個組播轉發(fā)表項進行更新,這 樣,計算總時間與組播轉發(fā)表項的數(shù)量強相關,當組播轉發(fā)表項的數(shù)量較多時,計算總時間 會很長,降低了組播數(shù)據(jù)量的收斂速度。
【發(fā)明內容】
[0007] 有鑒于此,本申請?zhí)峁┝艘环NTRILL網(wǎng)絡中的報文轉發(fā)方法和裝置。
[0008] 本申請的技術方案如下:
[0009] -方面,提供了一種TRILL網(wǎng)絡中的報文轉發(fā)方法,該方法應用于RB,RB具有組播 轉發(fā)表項和索引關聯(lián)表,組播轉發(fā)表項中包括轉發(fā)信息與索引的對應關系,轉發(fā)信息中包 含樹根RB的標識和至少兩個VLAN的標識,索引關聯(lián)表中包括索引、RB組與出接口列表的對 應關系,索引關聯(lián)表中與組播轉發(fā)表項的索引相對應的RB組中的RB滿足以下條件:該RB 是該至少兩個VLAN的AVF ;該方法包括:
[0010] 接收多目的報文;
[0011] 查找轉發(fā)信息包含該多目的報文中攜帶的報文信息的組播轉發(fā)表項,其中,該報 文信息包括:樹根RB的標識和該多目的報文的內層的VLAN標識;
[0012] 根據(jù)查找到的組播轉發(fā)表項中的索引查找所述索引關聯(lián)表,以獲取該多目的報文 的出接口列表;
[0013] 根據(jù)該多目的報文的出接口列表轉發(fā)該多目的報文。
[0014] 其中,組播轉發(fā)表項的轉發(fā)信息中還包含組播MAC地址,則索引關聯(lián)表中與該組 播轉發(fā)表項的索引相對應的RB組中的RB滿足的條件具體為:該RB是該至少兩個VLAN中 的該組播MAC地址的組播接收者;
[0015] 報文信息中還包括多目的報文的內層的目的組播MAC地址。
[0016] 其中,該方法中還包括:
[0017] 當TRILL網(wǎng)絡的拓撲變化時,根據(jù)變化后的拓撲重新計算用于指導多目的報文轉 發(fā)的組播分發(fā)樹;
[0018] 針對索引關聯(lián)表中的每一個RB組,基于重新計算出的組播分發(fā)樹,計算到該RB組 中的每一個RB的出接口,將該RB組對應的出接口列表更新為計算出的出接口。
[0019] 其中,該方法中還包括:
[0020] 當其它RB上的AVF或者組播接收者發(fā)生了變化時,查找轉發(fā)信息滿足以下條件的 組播轉發(fā)表項;其中,當該其它RB上增加或減少了 M個VLAN的AVF時,該條件包括:轉發(fā) 信息中包含有M個VLAN中的X個VLAN的標識,當該其它RB上增加或減少了 M個VLAN中 的同一組播MAC地址的組播接收者時,該條件包括:轉發(fā)信息中包含有M個VLAN中的X個 VLAN的標識、以及該組播MAC地址,M為不小于1的自然數(shù),X為不小于1且不大于M的自 然數(shù);
[0021] 針對查找到的每一個組播轉發(fā)表項,在該組播轉發(fā)表項的轉發(fā)信息中僅包含X個 VLAN的標識時,判斷該組播轉發(fā)表項中第一索引的引用計數(shù)是否大于1 ;其中,引用計數(shù)為 索引關聯(lián)表中的索引被組播轉發(fā)表項引用的計數(shù);
[0022] 若等于1,則在索引關聯(lián)表中查找到與第一索引對應的第一 RB組,對第一 RB組進 行更新;其中,當該其它RB上增加了 M個VLAN的AVF或者M個VLAN中的同一組播MAC地址 的組播接收者時,更新為將該其它RB添加到第一 RB組中,當該其它RB上減少了 M個VLAN 的AVF或者M個VLAN中的同一組播MAC地址的組播接收者時,更新為從第一 RB組中刪除 該其它RB ;
[0023] 判斷索引關聯(lián)表中是否存在與更新后的第一 RB組相同的RB組;
[0024] 若不存在與更新后的第一 RB組相同的RB組,則將更新后的第一 RB組對應的出接 口列表更新為到更新后的第一 RB組中的每一個RB的出接口;
[0025] 若存在第二RB組與更新后的第一 RB組相同,則將該組播轉發(fā)表項中的第一索引 更新為第二RB組對應的第二索引,將第二索引的引用計數(shù)加1,從索引關聯(lián)表中刪除更新 后的第一 RB組及其對應的第一索引和出接口列表。
[0026] 其中,在判斷該組播轉發(fā)表項中第一索引的引用計數(shù)是否大于1之后,還包括:
[0027] 若大于1,則在索引關聯(lián)表中查找到與第一索引對應的第一 RB組,根據(jù)第一 RB組 創(chuàng)建第三RB組;其中,當該其它RB上增加了 M個VLAN的AVF或者M個VLAN中的同一組播 MAC地址的組播接收者時,第三RB組由第一 RB組和該其它RB構成,當該其它RB上減少了 M個VLAN的AVF或者M個VLAN中的同一組播MAC地址的組播接收者時,第三RB組由第一 RB組中除該其它RB以外的RB構成;
[0028] 判斷索引關聯(lián)表中是否存在與第三RB組相同的RB組;
[0029] 若不存在與第三RB組相同的RB組,則將第三RB組、第三索引與出接口列表的對 應關系添加到索引關聯(lián)表中,將該組播轉發(fā)表項中的第一索引更新為第三索引,將第三索 引的引用計數(shù)加1,將第一索引的引用計數(shù)減1 ;其中,第三RB組對應的出接口列表中包括: 到第三RB組中的每一個RB的出接口;
[0030] 若存在第四RB組與第三RB組相同,則將該組播轉發(fā)表項中的第一索引更新為第 四RB組對應的第四索引,將第四索引的引用計數(shù)加1,將第一索引的引用計數(shù)減1。
[0031] 其中,該方法中還包括:
[0032] 當其它RB上的AVF或者組播接收者發(fā)生了變化時,查找轉發(fā)信息滿足以下條件的 組播轉發(fā)表項;其中,當該其它RB上增加或減少了 M個VLAN的AVF時,該條件包括:轉發(fā) 信息中包含有M個VLAN中的X個VLAN的標識,當該其它RB上增加或減少了 M個VLAN中 的同一組播MAC地址的組播接收者時,該條件包括:轉發(fā)信息中包含有M個VLAN中的X個 VLAN的標識、以及該組播MAC地址,M為不小于1的自然數(shù),X為不小于1且不大于M的自 然數(shù);
[0033] 針對查找到的每一個組播轉發(fā)表項,在該組播轉發(fā)表項的轉發(fā)信息中包含X個 VLAN的標識和其它VLAN的標識時,將該組播轉發(fā)表項拆分成N1+N2個組播轉發(fā)表項,拆分 得到的Nl個組播轉發(fā)表項的轉發(fā)信息中包含其它VLAN中的至少一個VLAN的標識、索引 為拆分前的組播轉發(fā)表項中的第一索引,其余的N2個組播轉發(fā)表項的轉發(fā)信息中包含X個 VLAN中的至少一個VLAN的標識,其中,Nl和N2為不小于1的自然數(shù);將第一索引的引用計 數(shù)加 Nl-I ;其中,引用計數(shù)為索引關聯(lián)表中的索引被組播轉發(fā)表項引用的計數(shù);
[0034] 在索引關聯(lián)表中查找到與第一索引對應的第一 RB組,根據(jù)第一 RB組創(chuàng)建第三RB 組;其中,當該其它RB上增加了 M個VLAN的AVF或者M個VLAN中的同一組播MAC地址的 組播接收者時,第三RB組由第一 RB組和該其它RB構成,當該其它RB上減少了 M個VLAN 的AVF或者M個VLAN中的同一組播MAC地址的組播接收者時,第三RB組由第一 RB組中除 該其它RB以外的RB構成;
[0035] 判斷索引關聯(lián)表中是否存在與第三RB組相同的RB組;
[0036] 若不存在與第三RB組相同的RB組,則將第三RB組、第三索引與出接口列表的對 應關系添加到索引關聯(lián)表中,將N2個組播轉發(fā)表項中的索引設置為第三索引,將第三索引 的引用計數(shù)加 N2 ;其中,第三RB組對應的出接口列表中包括:到第三RB組中的每一個RB 的出接口;
[0037] 若存在第四RB組與第三RB組相同,則將N2個組播轉發(fā)表項中的索引設置為第四 RB組對應的第四索引,將第四索引的引用計數(shù)加 N2。
[0038] 另一方面,還提供了一種TRILL網(wǎng)絡中的報文轉發(fā)裝置,該裝置應用于RB中,RB具 有組播轉發(fā)表項和索引關聯(lián)表,組播轉發(fā)表項中包括轉發(fā)信息與索引的對應關系,轉發(fā)信 息中包含樹根RB的標識和至少兩個VLAN的標識,索引關聯(lián)表中包括索引、RB組與出接口 列表的對應關系,索引關聯(lián)表中與組播轉發(fā)表項的索引相對應的RB組中的RB滿足以下條 件:該RB是該至少兩個VLAN的AVF ;該裝置包括:
[0039] 接收模塊,用于接收多目的報文;
[0040] 查找模塊,用于在接收模塊接收到多目的報文之后,查找轉發(fā)信息包含該多目的 報文中攜帶的報文信息的組播轉發(fā)表項,其中,該報文信息包括:樹根RB的標識和該多目 的報文的內層的VLAN標識;還用于根據(jù)查找到的組播轉發(fā)表項中的索引查找索引關聯(lián)表, 以獲取該多目的報文的出接口列表;
[0041] 發(fā)送模塊,用于根據(jù)查找模塊獲取到的該多目的報文的出接口列表,轉發(fā)該多目 的報文。
[0042] 其中,組播轉發(fā)表項的轉發(fā)信息中還包含組播MAC地址,則索引關聯(lián)表中與該組 播轉發(fā)表項的索引相對應的RB組中的RB滿足的條件具體為:該RB是該至少兩個VLAN中 的該組播MAC地址的組播接收者;
[0043] 報文信息還包括該多目的報文的內層的目的組播MAC地址。
[0044] 其中,該裝置中還包括:
[0045] 計算模塊,用于當TRILL網(wǎng)絡的拓撲變化時,根據(jù)變化后的拓撲重新計算用于指 導多目的報文轉發(fā)的組播分發(fā)樹,針對索引關聯(lián)表中的每一個RB組,基于重新計算出的組 播分發(fā)樹,計算到該RB組中的每一個RB的出接口;
[0046] 索引關聯(lián)表更新模塊,用于在計算模塊計算出到RB組中的每一個RB的出接口之 后,將該RB組對應的出接口列表更新為計算出的出接口。
[0047] 其中,該裝置中還包括:判斷模塊、索引關聯(lián)表更新模塊、組播轉發(fā)表項更新模塊 和引用計數(shù)更新模塊,其中:
[0048] 查找模塊,還用于當其它RB上的AVF或者組播接收者發(fā)生了變化時,查找轉發(fā)信 息滿足以下條件的組播轉發(fā)表項;其中,當該其它RB上增加或減少了 M個VLAN的AVF時, 該條件包括:轉發(fā)信息中包含有M個VLAN中的X個VLAN的標識,當該其它RB上增加或減 少了 M個VLAN中的同一組播MAC地址的組播接收者時,該條件包括:轉發(fā)信息中包含有M 個VLAN中的X個VLAN的標識、以及該組播MAC地址,M為不小于1的自然數(shù),X為不小于1 且不大于M的自然數(shù);
[0049] 判斷模塊,用于針對查找模塊查找到的每一個組播轉發(fā)表項,在該組播轉發(fā)表項 的轉發(fā)信息中僅包含X個VLAN的標識時,判斷該組播轉發(fā)表項中第一索引的引用計數(shù)是否 大于1,其中,引用計數(shù)為索引關聯(lián)表中的索引被組播轉發(fā)表項引用的計數(shù);還用于判斷索 引關聯(lián)表中是否存在與經(jīng)過索引關聯(lián)表更新模塊更新后的第一 RB組相同的RB組;
[0050] 索引關聯(lián)表更新模塊,用于若判斷模塊判斷出第一索引的引用計數(shù)等于1,則在索 引關聯(lián)表中查找到與第一索引對應的第一 RB組,對第一 RB組進行更新,其中,當該其它RB 上增加了 M個VLAN的AVF或者M個VLAN中的同一組播MAC地址的組播接收者時,更新為 將該其它RB添加到第一 RB組中,當該其它RB上減少了 M個VLAN的AVF或者M個VLAN中 的同一組播MAC地址的組播接收者時,更新為從第一 RB組中刪除該其它RB ;還用于若判斷 模塊判斷出不存在與更新后的第一 RB組相同的RB組,則將更新后的第一 RB組對應的出接 口列表更新為到更新后的第一 RB組中的每一個RB的出接口;還用于在組播轉發(fā)表項更新 模塊將該組播轉發(fā)表項中的第一索引更新為第二RB組對應的第二索引之后,從索