報文處理的方法和交換機的製作方法
2023-04-30 06:16:01
專利名稱:報文處理的方法和交換機的製作方法
技術領域:
本發明涉及通信技術領域,尤其涉及報文處理的方法和交換機。
背景技術:
在典型的交換機結構中,所屬同一主機內的所有交換機都可以連接在同一個交換機上。
由於使用三層、二層防火牆都無法對接在同一個交換機上的同IP(InternetProtocol,網絡之間互連的協議)網段的交換機之間的通信進行控制,因此,使用常規網絡設備也就不能對安裝在同一個主機之上的同IP網段的交換機之間的流量進行控制。
為了解決上述問題,可以利用虛擬網絡標識(virtual network-tag, VN-TAG)對安裝在相同主機之上的同IP網段的交換機之間的流量進行控制。在報文中增加VN-TAG幀頭以標識每個交換機所綁定的虛擬接口(virtual interface,簡稱VIF)。VN-TAG標識中包括了目的虛擬接口標識(destination virtual interface_ID,簡稱DVIF_ID)和源虛擬接口標識(source virtual interface_ID,簡稱SVIF_ID),利用VN-TAG標識可以清楚地區分來自同一個物理網口上的每個交換機的虛擬網絡接口的報文。交換機強制把交換機的流量上傳到物理網絡中,物理網絡內的安全設備對流量進行正常處理之後再轉發給相應的交換機。由於VN-TAG標識的存在,可以保證流量轉發進入物理網絡之後,依然能夠返回至VN-TAG標識對應的交換機中。
在實現上述報文處理的過程中,發明人發現現有技術中至少存在如下問題:VN-TAG技術的實現,需要通過物理網卡晶片固件或者交換機平臺軟體;因此使用VN-TAG技術時,需要對現有的硬體以及軟體進行升級或更換,導致成本較高。例如,改變現有的二層協議,更換特殊的伺服器網卡硬體,或者更換物理交換機設備,才可以在交換機中實現VN-TAG 技術。發明內容
本發明的實施例提供一種報文處理的方法和交換機,解決了為了對交換機流量在物理網絡中進行控制,而導致成本較高的問題。
為達到上述目的,本發明的實施例採用如下技術方案:
第一方面,本發明實施例提供了一種報文處理的方法,包括:
接收第一報文;
根據預先確定的規則判斷是否需要對所述第一報文進行檢測;
若需要對所述第一報文進行檢測,則將所述第一報文發送至報文檢測設備;
接收從所述報文檢測設備返回的通過檢測的第二報文;
判斷所述第二報文的目的MAC地址是否是多播地址;
若所述第二報文的目的MAC地址是多播地址,則將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的埠、將所述第一報文發送至所述報文檢測設備的埠以及接收所述第二報文的埠外的交換機的埠。
在第一種可能的實現方式中,在接收第一報文之後,所述方法還包括:
判斷所述第一報文的源MAC地址及接收所述第一報文的源埠是否存儲於MAC學習表中;
若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源埠更新到所述MAC學習表中。
結合第一方面或第一方面的第一種可能的實現方式,在第二種可能的實現方式中,在所述判斷所述第二報文的目的MAC地址是否是多播地址之後,所述方法還包括:
若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址;
若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理;
若所述MAC學習表中存儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同;
如果相同,則丟棄所述第二報文;
如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
結合第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述預定策略包括:
丟棄所述第二報文;或者,
將所述第二報文發送至所述其他埠。
結合第一方面或第一方面的第一種可能的實現方式至第三種可能的實現方式中任意一種方式,在第四種可能的實現方式中,所述預先確定的規則為:
若所述接收所述第一報文的埠與所述接收所述第二報文的埠相同,則不將所述第一報文發送至所述報文檢測設備;
若所述接收所述第一報文的埠與所述接收所述第二報文的埠不相同,則將所述第一報文發送至所述報文檢測設備;或者,
若所述第一報文包括指示信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
第二方面,本發明實施例還提供了一種交換機,包括:
接收器,用於接收第一報文;接收從報文檢測設備返回的通過檢測的第二報文;
處理器,用於根據預先確定的規則判斷是否需要對所述第一報文進行檢測;判斷所述第二報文的目的MAC地址是否是多播地址;
發送器,用於若需要對所述第一報文進行檢測,則將所述第一報文發送至所述報文檢測設備;若所述第二報文的目的MAC地址是多播地址,則將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的埠、將所述第一報文發送至所述報文檢測設備的埠以及接收所述第二報文的埠外的所述交換機的埠。
在第一種可能的實現方式中,所述處理器,還用於在接收第一報文之後,判斷所述第一報文的源MAC地址及接收所述第一報文的源埠是否存儲於MAC學習表中;若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源埠更新到所述MAC學習表中。
結合第二方面或第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述處理器,還用於在所述判斷所述第二報文的目的MAC地址是否是多播地址之後,若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址;
若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理;
若所述MAC學習表中存儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同;
如果相同,則丟棄所述第二報文;
如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
結合第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述處理器處理所述第二報文的預定策略包括:
丟棄所述第二報文;或者,
將所述第二報文發送至所述其他埠。
結合第二方面或第二方面的第一種可能的實現方式至第三種可能的實現方式中任意一種方式,在第四種可能的實現方式中,所述處理器判斷是否需要對所述第一報文進行檢測的預先確定的規則為:
若所述接收所述第一報文的埠與所述接收所述第二報文的埠相同,則不將所述第一報文發送至所述報文檢測設備;
若所述接收所述第一報文的埠與所述接收所述第二報文的埠不相同,則將所述第一報文發送至所述報文檢測設備;或者,
若所述第一報文包括指示信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
第三方面,提供另一種交換機,包括:
處理單元、數據埠、引流埠、回注埠 ;
所述交換機通過所述數據埠接收第一報文;
所述處理單元,用於根據預先確定的規則判斷是否需要對所述第一報文進行檢測;判斷從報文檢測設備返回的通過檢測的第二報文的目的MAC地址是否是多播地址;
在所述處理單元判斷出需要對所述第一報文進行檢測後,所述交換機通過所述引流埠將所述第一報文發送至所述報文檢測設備;
所述交換機通過所述回注埠接收從所述報文檢測設備返回的通過檢測的第二報文;
在所述處理單元判斷出所述第二報文的目的MAC地址是多播地址後,將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的數據埠、所述引流埠以及所述回注埠外的交換機的埠。
在第一種可能的實現方式中,所述處理單元,所述處理單元,還用於在所述交換機通過所述數據埠接收第一報文之後,判斷所述第一報文的源MAC地址及接收所述第一報文的源數據埠是否存儲於MAC學習表中;若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源數據埠更新到所述MAC學習表中。
結合第三方面或第三方面的第一種可能的實現方式,在第二種可能的實現方式中,所述處理單元,還用於在所述處理單元判斷所述第二報文的目的MAC地址是否是多播地址之後,若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址;
若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理;
若所述MAC學習表中存儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同;
如果相同,則丟棄所述第二報文;
如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
結合第三方面的第二種可能的實現方式,在第三種可能的實現方式中,所述處理單元處理所述第二報文的預定策略包括:
丟棄所述第二報文;或者,
將所述第二報文發送至所述其他埠。
結合第三方面或第三方面的第一種可能的實現方式至第三種可能的實現方式中任意一種方式,在第四種可能的實現方式中,所述處理單元判斷是否需要對所述第一報文進行檢測的預先確定的規則為:
若所述接收所述第一報文的數據埠與所述回注埠相同,則不將所述第一報文發送至所述報文檢測設備;
若所述接收所述第一報文的數據埠與所述回注埠不相同,則將所述第一報文發送至所述報文檢測設備;或者,
若所述第一報文包括指示信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
本發明實施例提供的報文處理的方法和交換機,採用上述方案後,交換機接收第一報文;根據預先確定的規則判斷是否需要對所述第一報文進行檢測;若需要對所述第一報文進行檢測,則將所述第一報文發送至報文檢測設備;接收從所述報文檢測設備返回的通過檢測的第二報文;判斷所述第二報文的目的MAC地址是否是多播地址;若所述第二報文的目的MAC地址是多播地址,則將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的埠、將所述第一報文發送至所述報文檢測設備的埠以及接收所述第二報文的埠外的所述交換機的埠。使得可以通過設置相應埠將第一報文發送至報文檢測設備,並還可以通過設置的相應的埠接收報文檢測設備發送的第二報文,換言之,可以通過除使用VN-TAG技術以外的其他方式將第一報文發送至報文檢測設備進行處理的同時,不增加成本。
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本實施例提供一種報文處理的方法流程圖2為本實施例提供另一種報文處理的方法的系統結構示意圖3為本實施例提供另一種報文處理的方法流程圖4為本實施例提供一種交換機的結構示意圖5為本實施例提供的另一種交換機的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本實施例提供一種報文處理的方法,該方法的執行主體可以為包含有二層交換機功能的任意物理設備或虛擬設備,以下實施例均以虛擬交換機(後續簡稱為交換機)為例進行說明,如圖1所示,可以包括:
101、交換機接收第一報文;
102、根據預先確定的規則判斷是否需要對第一報文進行檢測;
103、若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;
104、接收從報文檢測設備返回的通過檢測的第二報文;
105、判斷第二報文的目的MAC (Media Access Control,MAC)地址是否是多播地址;
106、若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。
採用上述方案後,交換機接收第一報文;根據預先確定的規則判斷是否需要對第一報文進行檢測;若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;接收從報文檢測設備返回的通過檢測的第二報文;判斷第二報文的目的MAC地址是否是多播地址;若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。使得可以通過設置相應埠將第一報文發送至報文檢測設備,並還可以通過設置的相應的埠接收報文檢測設備發送的第二報文,換言之,可以通過除使用VN-TAG技術以外的其他方式將第一報文發送至報文檢測設備進行處理的同時,不增加成本。
為了可以更清晰的對以下實施例進行描述,首先,對本實施例所應用的系統結構進行描述。如圖2所示,為本實施例可以應用的系統結構示意圖。其中交換機可以通過埠 1、埠 2、埠 3分別與相應的虛擬機進行數據傳輸,每個虛擬機被分配有各自的地址。值得說明的是,圖2中的引流埠即為將第一報文發送至報文檢測設備的埠,回注埠即為接收第二報文的埠,埠 I即為接收第一報文的埠,在下面的實施例中不再贅述。
該交換機可以具備但不限於二層交換機的功能,即交換機可以識別接收到的報文中包含的目的MAC地址,並根據目的MAC地址查詢到相應的目的埠地址,然後,通過目的埠發送報文。
本實施例對二層交換機的功能不作限定,為本領域技術人員熟知的技術,在此不再贅述。
本實施例提供另一種報文處理的方法,該方法是對圖1所示的方法的進一步擴展,如圖3所示,可以包括:
301、交換機接收第一報文。
作為本實施例的一種實施方式,如圖2所示,交換機可以通過埠 1、埠 2、埠3接收相應的虛擬機發送的第一報文。
進一步的,第一報文可以包括:第一報文的源MAC地址和目的MAC地址。
交換機在接收到第一報文後,判斷第一報文的源MAC地址及接收第一報文的源埠是否存儲於MAC學習表中;若未存儲於MAC學習表中,則將源MAC地址及源埠更新到MAC學習表中。其中,源埠為設直於交換機上的埠,如圖中所不的埠 1、埠 2或者端Π 3。
302、根據預先確定的規則判斷是否需要對第一報文進行檢測。若需要,則執行步驟303,若不需要,則執行步驟307。
進一步的,預先確定的規則可以為:
若接收第一報文的埠與接收第二報文的埠相同,則不將第一報文發送至報文檢測設備。
作為本實施例的一種實施方式,交換機上可以設置有引流埠和回注埠,可以通過引流埠將第一報文發送至報文檢測設備(例如:流量清洗設備)進行處理,並還可以通過回注埠接收報文檢測設備發送的檢測後的第二報文。
作為本實施例的一種實施方式,判斷第一報文是否需要通過引流埠被發送至報文檢測設備可以但不限於包括:
判斷第一報文的源MAC地址對應的源埠是否為回注埠,若為回注埠,則第一報文不需要通過引流埠被發送至報文檢測設備,若不為回注埠,則第一報文可能需要通過引流埠被發送至報文檢測設備。
若源埠為回注埠,則交換機通過回注埠接收到的報文為已經過報文檢測設備檢測後的報文,因此,該報文不需要通過引流埠被發送至報文檢測設備。
若接收第一報文的埠與接收第二報文的埠不相同,則將第一報文發送至報文檢測設備。
預先確定的規則還可以為:
若第一報文包括指示信息,該指示信息用於指示將第一報文發送至報文檢測設備,則將第一報文發送至報文檢測設備;若第一報文包括指示信息,該指示信息用於指示不將第一報文發送至報文檢測設備,則不將第一報文發送至報文檢測設備。
本實施例對指示信息的作用不作限定,可以根據實際需要進行設定,在此不再贅述。
作為本實施例的一種實施方式,判斷第一報文的源MAC地址對應的源埠是否為回注埠具體可以但不限於包括:
根據第一報文的源MAC地址從交換機存儲的MAC學習表中查詢源MAC地址對應的源埠地址,並判斷該源埠是否為回注埠。
其中,MAC學習表可以但不限於包括:相應的報文的源MAC地址/目的MAC地址與交換機的相應埠地址的對應關係。
本實施例對報文檢測設備對報文進行處理的方法不作限定,為本領域技術人員熟知的技術,且可以根據實際需要進行設定,例如,可以是對報文進行流量控制等,在此不再贅述。
本實施例對MAC學習表中包含的內容不作限定,可以根據實際需要進行設定,在此不再贅述。
值得說明的是,可以單獨使用上述兩種判斷方式判斷第一報文是否需要通過引流埠被發送至報文檢測設備,也可以結合使用上述兩種判斷方式判斷第一報文是否需要通過弓I流埠被發送至報文檢測設備。
具體的,結合使用可以包括:首先,判斷第一報文的源MAC地址對應的源埠是否為回注埠,若為回注埠,則第一報文不需要通過引流埠被發送至報文檢測設備,若不為回注埠,則再根據第一報文中包含的指示信息判斷第一報文是否需要通過引流埠被發送至報文檢測設備。
本實施例對判斷第一報文是否需要通過引流埠被發送至報文檢測設備的方法不作限定,可以根據實際需要進行設定,在此不再贅述。
303、通過引流埠將第一報文發送至報文檢測設備,以便報文檢測設備對第一報文進行處理。
304、通過回注埠接收從報文檢測設備返回的通過檢測的第二報文。
進一步的,第二報文可以包括:第二報文的源MAC地址和目的MAC地址。
值得說明的是,第一報文與第二報文之間的區別在於,第二報文是被報文檢測設備檢測後的第一報文,相對應的兩個報文之間存儲的源MAC地址相同,且目的MAC地址也相同。
305、判斷第二報文的目的MAC地址是否是多播地址。若是,則執行步驟306。若不是,則執行步驟307。
本實施例對判斷第二報文是否是被多播或是被組播發送的方法不作限定,為本領域技術人員熟知的技術,且可以根據實際需要進行設定,例如,可以但不限於是根據目的埠地址判斷第二報文是否是被多播或是被組播發送,在此不再贅述。
306、將第二報文發送至其他埠。
進一步的,其他埠可以但不限於為:除接收第一報文的埠、將第一報文發送至報文檢測設備的埠(即引流埠)以及接收第二報文的埠(即回注埠)外的交換機的埠。
流程結束。307、查找MAC學習表中是否存儲有目的MAC地址。若存儲有目的MAC地址,則執行步驟308,若未存儲有目的MAC地址,則執行步驟311。308、判斷目的MAC地址與源MAC地址是否相同。若相同,則執行步驟309,若不相同,則執行步驟310。309、丟棄第二報文。流程結束。310、將第二報文發至目的MAC地址對應的埠。流程結束。311、按預定策略對第二報文進行處理。進一步的,預定策略可以但不限於包括:丟棄第二報文;或者,將第二報文發送至其他埠。流程結束。採用上述方案後,交換機接收第一報文;根據預先確定的規則判斷是否需要對第一報文進行檢測;若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;接收從報文檢測設備返回的通過檢測的第二報文;判斷第二報文的目的MAC地址是否是多播地址;若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。使得可以通過設置相應埠將第一報文發送至報文檢測設備,並還可以通過設置的相應的埠接收報文檢測設備發送的第二報文,換言之,可以通過除使用VN-TAG技術以外的其他方式將第一報文發送至報文檢測設備進行處理的同時,不增加成本。具體的,通過對交換機設置引流埠和回注埠,使交換機可以支持網絡流量回注功能。能夠在不更新網卡,不修改數據包,不增加新的協議情況下把屬於同一交換機的不同交換機之間的流量引出交換機進行處理之後再返回給交換機。解決了屬於同一交換機的不同交換機之間的流量監控管理的問題的同時不增加成本。下面提供一些裝置實施例,該裝置實施例分別與上述提供的相應的方法實施例相對應。本實施例提供一種交換機,如圖4所示,可以包括:接收器41,用於接收第一報文;接收從報文檢測設備返回的通過檢測的第二報文;處理器42,用於根據預先確定的規則判斷是否需要對第一報文進行檢測;判斷第二報文的目的MAC地址是否是多播地址;發送器43,用於若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。進一步的,處理器42,還用於在接收第一報文之後,判斷第一報文的源MAC地址及接收第一報文的源埠是否存儲於MAC學習表中;若未存儲於MAC學習表中,則將源MAC地址及源埠更新到MAC學習表中。
進一步的,處理器42,還用於在判斷第二報文的目的MAC地址是否是多播地址之後,若第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有目的MAC地址;若MAC學習表中未存儲有目的MAC地址,則按預定策略對第二報文進行處理;若MAC學習表中存儲有目的MAC地址,判斷目的MAC地址與源MAC地址是否相同;如果相同,則丟棄第二報文;如果不相同,則將第二報文發至目的MAC地址對應的埠。進一步的,處理器42處理第二報文的預定策略包括:丟棄第二報文;或者,將第二報文發送至其他埠。進一步的,處理器42判斷是否需要對第一報文進行檢測的預先確定的規則可以至少有以下兩種規則。預先確定的第一種規則為:若接收第一報文的埠與接收第二報文的埠相同,則不將第一報文發送至報文檢測設備;若接收第一報文的埠與接收第二報文的埠不相同,則將第一報文發送至報文檢測設備。預先確定的第二種規則為:若第一報文包括指示信息,該指示信息用於指示將第一報文發送至報文檢測設備,則將第一報文發送至報文檢測設備;若第一報文包括指示信息,該指示信息用於指示不將第一報文發送至報文檢測設備,則不將第一報文發送至報文檢測設備。採用上述方案後,接收器,用於接收第一報文;接收從報文檢測設備返回的通過檢測的第二報文;處理器,用於根據預先確定的規則判斷是否需要對第一報文進行檢測;判斷第二報文的目的MAC地址是否是多播地址;發送器,用於若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。使得可以通過設置相應埠將第一報文發送至報文檢測設備,並還可以通過設置的相應的埠接收報文檢測設備發送的第二報文,換言之,可以通過除使用VN-TAG技術以外的其他方式將第一報文發送至報文檢測設備進行處理的同時,不增加成本。具體的,通過對交換機設置引流埠和回注埠,使交換機可以支持網絡流量回注功能。能夠在不更新網卡,不修改數據包,不增加新的協議情況下把屬於同一交換機的不同交換機之間的流量引出交換機進行處理之後再返回給交換機。解決了屬於同一交換機的不同交換機之間的流量監控管理的問題的同時不增加成本。本實施例提供另一種交換機,如圖5所示,可以包括:處理單元51、數據埠 52、弓丨流埠 53、回注埠 54 ;交換機通過數據埠 52接收第一報文;處理單元51,用於根據預先確定的規則判斷是否需要對第一報文進行檢測;判斷從報文檢測設備返回的通過檢測的第二報文的目的MAC地址是否是多播地址;在處理單元51判斷出需要對第一報文進行檢測後,交換機通過引流埠 53將第一報文發送至報文檢測設備;交換機通過回注埠 54接收從報文檢測設備返回的通過檢測的第二報文;在處理單元51判斷出第二報文的目的MAC地址是多播地址後,將第二報文發送至其他埠,其他埠為除接收第一報文的數據埠、引流埠以及回注埠外的交換機的埠。進一步的,處理單元51,還用於在交換機通過數據埠 52接收第一報文之後,判斷第一報文的源MAC地址及接收第一報文的源數據埠是否存儲於MAC學習表中;若未存儲於MAC學習表中,則將源MAC地址及源數據埠更新到MAC學習表中。進一步的,處理單元51,還用於在判斷第二報文的目的MAC地址是否是多播地址之後,若第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有目的MAC地址;若MAC學習表中未存儲有目的MAC地址,則按預定策略對第二報文進行處理;若MAC學習表中存儲有目的MAC地址,判斷目的MAC地址與源MAC地址是否相同;如果相同,則丟棄第二報文;如果不相同,則將第二報文發至目的MAC地址對應的埠。進一步的,處理單元51處理第二報文的預定策略包括:丟棄第二報文;或者,將第二報文發送至其他埠。進一步的,處理單元51判斷是否需要對第一報文進行檢測的預先確定的規則為:若接收第一報文的數據埠與回注埠相同,則不將第一報文發送至報文檢測設備;若接收第一報文的數據埠與回注埠不相同,則將第一報文發送至報文檢測設備;或者,若第一報文包括指示信息,該指示信息用於指示將第一報文發送至報文檢測設備,則將第一報文發送至報文檢測設備;若第一報文包括指示信息,該指示信息用於指示不將第一報文發送至報文檢測設備,則不將第一報文發送至報文檢測設備。採用上述方案後,交換機通過數據埠接收第一報文;處理單元,用於根據預先確定的規則判斷是否需要對第一報文進行檢測;判斷從報文檢測設備返回的通過檢測的第二報文的目的MAC地址是否是多播地址;在處理單元判斷出需要對第一報文進行檢測後,交換機通過引流埠將第一報文發送至報文檢測設備;交換機通過回注埠接收從報文檢測設備返回的通過檢測的第二報文;在處理單元判斷出第二報文的目的MAC地址是多播地址後,將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。使得可以通過設置相應埠將第一報文發送至報文檢測設備,並還可以通過設置的相應的埠接收報文檢測設備發送的第二報文,換言之,可以通過除使用VN-TAG技術以外的其他方式將第一報文發送至報文檢測設備進行處理的同時,不增加成本。通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在可讀取的存儲介質中,如計算機的軟盤,硬碟或光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述的方法。以上所述,僅為本發明的具體實施方式
,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應所述以權利要求的保護範圍為準。
權利要求
1.一種報文處理的方法,其特徵在於,包括: 交換機接收第一報文; 根據預先確定的規則判斷是否需要對所述第一報文進行檢測; 若需要對所述第一報文進行檢測,則將所述第一報文發送至報文檢測設備; 接收從所述報文檢測設備返回的通過檢測的第二報文; 判斷所述第二報文的目的MAC地址是否是多播地址; 若所述第二報文的目的MAC地址是多播地址,則將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的埠、將所述第一報文發送至所述報文檢測設備的埠以及接收所述第二報文的埠外的所述交換機的埠。
2.根據權利要求1所述的報文處理的方法,其特徵在於,在接收第一報文之後,所述方法還包括: 判斷所述第一報文的源MAC地址及接收所述第一報文的源埠是否存儲於MAC學習表中; 若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源埠更新到所述MAC學習表中。
3.根據權利要求1或2所述的報文處理的方法,其特徵在於,在所述判斷所述第二報文的目的MAC地址是否是多播地址之後,所述方法還包括: 若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址; 若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理; 若所述MAC學習表中存 儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同; 如果相同,則丟棄所述第二報文; 如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
4.根據權利要求3所述的報文處理方法,其特徵在於,所述預定策略包括: 丟棄所述第二報文;或者, 將所述第二報文發送至所述其他埠。
5.根據權利要求1-4中任意一項所述的報文處理方法,其特徵在於,所述預先確定的規則為: 若所述接收所述第一報文的埠與所述接收所述第二報文的埠相同,則不將所述第一報文發送至所述報文檢測設備;若所述接收所述第一報文的埠與所述接收所述第二報文的埠不相同,則將所述第一報文發送至所述報文檢測設備;或者, 若所述第一報文包括指示信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
6.一種交換機,其特徵在於,包括: 接收器,用於接收第一報文;接收從報文檢測設備返回的通過檢測的第二報文;處理器,用於根據預先確定的規則判斷是否需要對所述第一報文進行檢測;判斷所述第二報文的目的MAC地址是否是多播地址; 發送器,用於若需要對所述第一報文進行檢測,則將所述第一報文發送至所述報文檢測設備;若所述第二報文的目的MAC地址是多播地址,則將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的埠、將所述第一報文發送至所述報文檢測設備的埠以及接收所述第二報文的埠外的所述交換機的埠。
7.根據權利要求6所述的交換機,其特徵在於,所述處理器,還用於在接收第一報文之後,判斷所述第一報文的源MAC地址及接收所述第一報文的源埠是否存儲於MAC學習表中;若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源埠更新到所述MAC學習表中。
8.根據權利要求6或7所述的交換機,其特徵在於,所述處理器,還用於在所述判斷所述第二報文的目的MAC地址是否是多播地址之後,若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址; 若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理; 若所述MAC學習表中存儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同; 如果相同,則丟棄所述第二報文; 如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
9.根據權利要求8所述的交換機,其特徵在於,所述處理器處理所述第二報文的預定策略包括: 丟棄所述第二報文;或者, 將所述第二報文發送至所述其他埠。
10.根據權利要求6-9中任意一項所述的交換機,其特徵在於,所述處理器判斷是否需要對所述第一報文進行檢測的預先確定的規則為: 若所述接收所述第一報文的埠與所述接收所述第二報文的埠相同,則不將所述第一報文發送至所述報文檢測設備; 若所述接收所述第一報文的埠與所述接收所述第二報文的埠不相同,則將所述第一報文發送至所述報文檢測設備;或者, 若所述第一報文包括指示信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
11.一種交換機,其特徵在於,包括:處理單元、數據埠、引流埠、回注埠 ; 所述交換機通過所述數據埠接收第一報文; 所述處理單元,用於根據預先確定的規則判斷是否需要對所述第一報文進行檢測;判斷從報文檢測設備返回的通過檢測的第二報文的目的MAC地址是否是多播地址; 在所述處理單元判斷出需要對所述第一報文進行檢測後,所述交換機通過所述引流埠將所述第一報文發送至所述報文檢測設備;所述交換機通過所述回注埠接收從所述報文檢測設備返回的通過檢測的第二報文; 在所述處理單元判斷出所述第二報文的目的MAC地址是多播地址後,將所述第二報文發送至其他埠,所述其他埠為除接收所述第一報文的數據埠、所述引流埠以及所述回注埠外的交換機的埠。
12.根據權利要求11所述的交換機,其特徵在於,所述處理單元,所述處理單元,還用於在所述交換機通過所述數據埠接收第一報文之後,判斷所述第一報文的源MAC地址及接收所述第一報文的源數據埠是否存儲於MAC學習表中;若未存儲於所述MAC學習表中,則將所述源MAC地址及所述源數據埠更新到所述MAC學習表中。
13.根據權利要求11或12所述的交換機,其特徵在於,所述處理單元,還用於在所述處理單元判斷所述第二報文的目的MAC地址是否是多播地址之後,若所述第二報文的目的MAC地址不是多播地址,則查找MAC學習表中是否存儲有所述目的MAC地址; 若所述MAC學習表中未存儲有所述目的MAC地址,則按預定策略對所述第二報文進行處理; 若所述MAC學習表中存儲有所述目的MAC地址,判斷所述目的MAC地址與所述源MAC地址是否相同; 如果相同,則丟棄所述第二報文; 如果不相同,則將所述第二報文發至所述目的MAC地址對應的埠。
14.根據權利要求13所述的交換機,其特徵在於,所述處理單元處理所述第二報文的預定策略包括: 丟棄所述第二報文;或者, 將所述第二報文發送至所述其他埠。
15.根據權利要求11至14中任意一項所述的交換機,其特徵在於,所述處理單元判斷是否需要對所述第一報文進行檢測的預先確定的規則為: 若所述接收所述第一報文的數據埠與所述回注埠相同,則不將所述第一報文發送至所述報文檢測設備; 若所述接收所述第一報文的數據埠與所述回注埠不相同,則將所述第一報文發送至所述報文檢測設備;或者, 若所述第一報文包括指示 信息,該指示信息用於指示將所述第一報文發送至所述報文檢測設備,則將所述第一報文發送至所述報文檢測設備;若所述第一報文包括指示信息,該指示信息用於指示不將所述第一報文發送至所述報文檢測設備,則不將所述第一報文發送至所述報文檢測設備。
全文摘要
本發明提供一種報文處理的方法和交換機。涉及通信技術領域。解決了為了對交換機流量在物理網絡中進行控制,而導致成本較高的問題。具體可以包括交換機接收第一報文;根據預先確定的規則判斷是否需要對第一報文進行檢測;若需要對第一報文進行檢測,則將第一報文發送至報文檢測設備;接收從報文檢測設備返回的通過檢測的第二報文;判斷第二報文的目的MAC地址是否是多播地址;若第二報文的目的MAC地址是多播地址,則將第二報文發送至其他埠,其他埠為除接收第一報文的埠、將第一報文發送至報文檢測設備的埠以及接收第二報文的埠外的交換機的埠。可應用於交換機的報文處理中。
文檔編號H04L12/931GK103166869SQ20131007832
公開日2013年6月19日 申請日期2013年3月12日 優先權日2013年3月12日
發明者王雨晨, 宋凱 申請人:華為技術有限公司