專利名稱:轉發(fā)報文和建立媒質接入控制地址表項的方法及交換機的制作方法
技術領域:
本發(fā)明涉及虛擬局域網(wǎng)技術,特別是涉及一種轉發(fā)報文的方法和一種建立媒質接入控制(MAC)地址表項的方法以及一種交換機。
背景技術:
隔離用戶虛擬局域網(wǎng)(isolate-user-vlan)技術是應用在交換機上的二層虛擬局域網(wǎng)(VLAN)技術。如圖1所示,在交換機上應用isolate-user-vlan技術時,需要在交換機上劃分出一個主虛擬局域網(wǎng)(Primary VLAN)和多個次虛擬局域網(wǎng)(Secondary VLAN),并且,每一個Secondary VLAN中至少包括一個與固定用戶終端相連的接入端口,所有Secondary VLAN共用一個上行端口,該上行端口也與固定的網(wǎng)絡設備相連。Primary VLAN中包含所有Secondary VLAN中包含的接入端口和上行端口。在交換機上應用isolate-user-vlan技術后,對于與交換機通信的上層設備來說,只須識別交換機中的Primary VLAN,而不必關心Primary VLAN中包含的SecondaryVLAN,因此,簡化了配置,節(jié)省了VLAN資源。
參見圖1,比如,用戶終端1與上行端口即端口1相連,其IP地址為1.1.1.1/24,MAC地址為8888-8888-8888,用戶終端2與Secondary VLAN20中的接入端口即端口2相連,其IP地址為1.1.1.2/24,MAC地址為2222-2222-2222,用戶終端3與Secondary VLAN30中的接入端口即端口3相連,其IP地址為1.1.1.3/24,MAC地址為6666-6666-6666。在任意兩個用戶終端比如用戶終端1與用戶終端2通信時,在交換機上實現(xiàn)報文轉發(fā)的過程可參見圖2所示,具體包括以下步驟步驟201當用戶終端2需要與用戶終端1通信時,用戶終端2將請求報文發(fā)送至交換機的端口2。
這里,用戶終端2發(fā)送的請求報文中攜帶有源MAC地址即用戶終端2的MAC地址2222-2222-2222。
步驟202交換機在Secondary VLAN20的接入端口即端口2上接收到請求報文后,根據(jù)該請求報文中的源MAC地址,分別建立對應于SecondaryVLAN20和Primary VLAN100的MAC地址表項。
這里,交換機在接收到攜帶源MAC地址2222-2222-2222的請求報文后,由于是首次學習到源MAC地址2222-2222-2222,因此,交換機會建立如下表1中對應于Secondary VLAN20的第1條MAC地址表項,另外,還將該源MAC地址同步到Primary VLAN100,即建立如下表1中對應于PrimaryVLAN100的第2條MAC地址表項。
表1步驟203交換機根據(jù)請求報文中的目的MAC地址和SecondaryVLAN20的VLAN ID,在Secondary VLAN20中發(fā)送請求報文。
這里,由于只建立了表1所示的MAC地址表項,交換機根據(jù)請求報文中的目的MAC地址8888-8888-8888以及Secondary VLAN20的VLAN ID為20則無法查找到出端口,則通過Secondary VLAN20中除接收到該請求報文的端口2之外的所有端口分別發(fā)送一份請求報文。請求報文從端口1發(fā)送出去,到達與端口1相連的用戶終端1。
步驟204用戶終端1將響應報文發(fā)送至交換機的端口1。
這里,用戶終端1發(fā)送的響應報文中攜帶有源MAC地址即用戶終端1的MAC地址8888-8888-8888。
步驟205交換機在Primary VLAN100的上行端口即端口1上接收到響應報文后,根據(jù)該響應報文中的源MAC地址,建立對應于Primary VLAN100和所有Secondary VLAN的MAC地址表項。
這里,交換機在接收到攜帶源MAC地址8888-8888-8888的響應報文后,由于是首次學習到源MAC地址8888-8888-8888,因此,交換機會建立如下表2中對應于Primary VLAN100的第6條MAC地址表項,另外,還將該源MAC地址同步到所有的Secondary VLAN,即建立如下表2中分別對應于各個Secondary VLAN的第3、4和5條MAC地址表項。
表2步驟206交換機根據(jù)響應報文中的目的MAC和VLAN ID,在PrimaryVLAN中轉發(fā)響應報文。
這里,交換機根據(jù)目的MAC和VLAN ID(2222-2222-2222/100)在表2所示的MAC地址表中查找出端口,這時可以匹配到第2條表項,出端口為端口2,于是交換機將該響應報文從端口2轉發(fā)出去。
步驟207當交換機再次從Secondary VLAN20的端口2上接收到用戶終端2發(fā)送給用戶終端1的報文時,則根據(jù)該報文中的目的MAC和VLANID,查找到表2中的第3條MAC地址表項,確定出端口為端口1,則通過端口1將報文發(fā)送至用戶終端1。
由以上描述可以看出,在現(xiàn)有技術中,當在交換機上應用isolate-user-vlan技術時,交換機在首次學習到一個MAC地址后,都會建立該MAC地址對應的MAC地址表項,也就是說,從Primary VLAN的上行端口學習到的MAC地址會同步到所有Secondary VLAN,而從SecondaryVLAN的接入端口學習到的MAC地址會同步到Primary VLAN,即分別建立對應于該Secondary VLAN的MAC地址表項和對應于Primary VLAN的MAC地址表項。這樣,則會使得交換機中建立大量的MAC地址表項,大大浪費了交換機中的表項資源。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種轉發(fā)報文的方法、一種建立MAC地址表項的方法以及一種交換機,以便于減少交換機中建立的MAC地址表項,節(jié)約交換機的表項資源。
為了達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的一種轉發(fā)報文的方法,該方法包括交換機確定在接入端口上首次學習到第一MAC地址后,僅建立對應于Primary VLAN的第一MAC地址的表項;交換機在上行端口上首次學習到第二MAC地址后,分別建立對應于Primary VLAN和各個Secondary VLAN的第二MAC地址的表項;交換機根據(jù)已建立的MAC地址表項轉發(fā)報文。
所述交換機確定在接入端口上首次學習到第一MAC地址的步驟包括交換機判斷自身中是否保存有第一MAC地址,如果未保存,則確定在接入端口上首次學習到所述第一MAC地址,并保存該第一MAC地址。
當交換機在Secondary VLAN中接收到報文時,所述交換機根據(jù)已建立的MAC地址表項轉發(fā)報文的步驟包括交換機根據(jù)報文中攜帶的目的MAC地址和VLAN ID,在已建立的MAC地址表項中查找對應的MAC地址表項,如果查找到對應的MAC地址表項,則通過該MAC地址表項中記錄的端口轉發(fā)報文,如果未查找到對應的MAC地址表項,則通過Secondary VLAN中除接收到所述報文的端口之外的所有端口分別轉發(fā)所述報文。
一種建立MAC地址表項的方法,該方法包括
交換機確定在接入端口上首次學習到一個MAC地址后,僅建立對應于Primary VLAN的該MAC地址的表項。
所述交換機確定在接入端口上首次學習到一個MAC地址的步驟包括交換機判斷自身中是否保存有所述MAC地址,如果未保存,則確定在接入端口上首次學習到所述MAC地址,并保存該MAC地址。
一種交換機,該交換機包括MAC地址學習單元、檢測單元和表項建立單元,其中,MAC地址學習單元,用于從接入端口接收到的報文中學習第一MAC地址,并將學習到的第一MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第一MAC地址是否為首次學習到,在確定第一MAC地址為首次學習到后,將第一MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第一MAC地址后,僅建立對應于Primary VLAN的第一MAC地址的表項。
該交換機進一步包括MAC地址存儲單元,其中,所述檢測單元,用于檢測MAC地址存儲單元中是否保存有第一MAC地址,在檢測出未保存后,確定第一MAC地址為首次學習到,并將該第一MAC地址保存在MAC地址存儲單元中。
所述MAC地址學習單元,進一步用于從上行端口接收到的報文中學習第二MAC地址,并將學習到的第二MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第二MAC地址是否為首次學習到,在確定第二MAC地址為首次學習到后,將第二MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第二MAC地址后,分別建立對應于Primary VLAN和各個次虛擬局域網(wǎng)Secondary VLAN的第二MAC地址的表項。
該交換機進一步包括MAC地址存儲單元,其中,所述檢測單元,用于檢測MAC地址存儲單元中是否保存有第二MAC地址,在檢測出未保存后,確定第二MAC地址為首次學習到,并將該第二MAC地址保存在MAC地址存儲單元中。
該交換機進一步包括報文轉發(fā)單元,用于根據(jù)表項建立單元所建立的MAC地址的表項,轉發(fā)報文。
由此可見,在本發(fā)明中,當交換機確定在接入端口上首次學習到一個MAC地址后,僅建立對應于Primary VLAN的MAC地址表項,而不再執(zhí)行現(xiàn)有技術中建立對應于Secondary VLAN的MAC地址表項的過程。這樣,由于在交換機上存在多個接入端口,按照本發(fā)明的實現(xiàn)方式,從所有接入端口上學習到的MAC地址都無需建立對應于Secondary VLAN的MAC地址表項,因此,大大減少了交換機中建立的MAC地址表項,節(jié)約了交換機的表項資源。
圖1是在交換機上應用isolate-user-vlan技術的示意圖。
圖2是在現(xiàn)有技術中轉發(fā)報文的流程圖。
圖3是在本發(fā)明中轉發(fā)報文的流程圖。
圖4是在本發(fā)明中交換機內(nèi)部的基本結構示意圖。
圖5是在本發(fā)明中交換機內(nèi)部的一種優(yōu)選結構示意圖。
圖6是在本發(fā)明中交換機內(nèi)部的另一種優(yōu)選結構示意圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
在現(xiàn)有技術中,交換機從一個接入端口學習到一個MAC地址后,不僅會建立該MAC地址對應于Secondary VLAN的MAC地址表項,而且還要建立該MAC地址對應于Primary VLAN的MAC地址表項。而通過交換機上的報文轉發(fā)流程可以看出,如果一個Secondary VLAN中只設置一個與固定用戶終端相連的接入端口,也就是說,每一個Secondary VLAN中只有一個接入端口和一個上行端口,那么,根據(jù)從接入端口學習到的MAC地址所建立的對應于Secondary VLAN的MAC地址表項,在報文轉發(fā)過程中根本不會被使用,也就是說,該MAC地址表項對于交換機來說,沒有實際的利用價值;如果一個Secondary VLAN中包括多個接入端口,那么,根據(jù)從接入端口學習到的MAC地址所建立的對應于Secondary VLAN的MAC地址表項,也完全可以不用來轉發(fā)報文,而通過其他方式,比如廣播的方式來轉發(fā)報文。
根據(jù)上述特點,本發(fā)明提出了一種轉發(fā)報文的方法,其核心思想是交換機確定在接入端口上首次學習到第一MAC地址后,僅建立對應于PrimaryVLAN的第一MAC地址的表項;交換機在上行端口上首次學習到第二MAC地址后,分別建立對應于Primary VLAN和各個Secondary VLAN的第二MAC地址的表項;交換機根據(jù)已建立的MAC地址表項轉發(fā)報文。
相應地,本發(fā)明還提出了一種建立MAC地址表項的方法,該方法包括交換機確定在接入端口上首次學習到一個MAC地址后,僅建立對應于Primary VLAN的MAC地址表項。
為了更加清楚地說明在本發(fā)明中建立MAC地址表項和轉發(fā)報文的具體過程,下面以一個具體的報文轉發(fā)流程為例進行說明。
比如,每一個Secondary VLAN中只有一個接入端口,用戶終端1與上行端口即端口1相連,其IP地址為1.1.1.1/24,MAC地址為8888-8888-8888,用戶終端2與Secondary VLAN20中的接入端口即端口2相連,其IP地址為1.1.1.2/24,MAC地址為2222-2222-2222,用戶終端3與Secondary VLAN30中的接入端口即端口3相連,其IP地址為1.1.1.3/24,MAC地址為6666-6666-6666。在任意兩個用戶終端比如用戶終端1與用戶終端2通信時,在交換機上實現(xiàn)報文轉發(fā)的過程可參見圖3所示,具體包括以下步驟步驟301當用戶終端2需要與用戶終端1通信時,用戶終端2將請求報文發(fā)送至交換機的端口2。
這里,用戶終端2發(fā)送的請求報文中攜帶有源MAC地址即用戶終端2的MAC地址2222-2222-2222。
步驟302交換機在Secondary VLAN20的接入端口即端口2上接收到請求報文,并學習到該請求報文中的源MAC地址。
步驟303交換機判斷在接入端口上即端口2上學習到的源MAC地址是否為首次學習到,如果是,則執(zhí)行步驟304,否則,直接執(zhí)行步驟305。
步驟304交換機根據(jù)在接入端口上即端口2上學習到的源MAC地址,僅建立對應于Primary VLAN100的MAC地址表項。
這里,交換機在接收到攜帶源MAC地址2222-2222-2222的請求報文后,由于是首次學習到源MAC地址2222-2222-2222,因此,交換機僅將該源MAC地址同步到Primary VLAN100,即僅建立如下表3中對應于PrimaryVLAN100的第1條MAC地址表項。
表3步驟305交換機根據(jù)請求報文中的目的MAC地址和SecondaryVLAN20的VLAN ID,在Secondary VLAN20中發(fā)送請求報文。
這里,由于只建立了表3所示的MAC地址表項,交換機根據(jù)請求報文中的目的MAC地址8888-8888-8888以及Secondary VLAN20的VLAN ID為20則無法查找到出端口,則通過Secondary VLAN20中除接收到該請求報文的端口2之外的所有端口分別發(fā)送一份請求報文。其中,由于在Secondary VLAN20中除端口2之外的端口只有上行端口即端口1,因此,請求報文從端口1發(fā)送出去,到達與端口1相連的用戶終端1。
步驟306用戶終端1將響應報文發(fā)送至交換機的端口1。
這里,用戶終端1發(fā)送的響應報文中攜帶有源MAC地址即用戶終端1的MAC地址8888-8888-8888。
步驟307交換機在Primary VLAN100的上行端口即端口1上接收到響應報文后,根據(jù)該響應報文中的源MAC地址,建立對應于Primary VLAN100和所有Secondary VLAN的MAC地址表項。
本步驟的實現(xiàn)過程與現(xiàn)有技術的相應實現(xiàn)過程相同,即,交換機在接收到攜帶源MAC地址8888-8888-8888的響應報文后,由于是首次學習到源MAC地址8888-8888-8888,因此,建立如下表4中對應于Primary VLAN100的第5條MAC地址表項,另外,還將該源MAC地址同步到所有的SecondaryVLAN,即建立如下表4中分別對應于各個Secondary VLAN的第2、3和4條MAC地址表項。
表4步驟308交換機根據(jù)響應報文中的目的MAC和VLAN ID,在PrimaryVLAN中轉發(fā)響應報文。
這里,交換機根據(jù)目的MAC和VLAN ID(2222-2222-2222/100)在表2所示的MAC地址表中查找出端口,這時可以匹配到第1條表項,出端口為端口2,于是交換機將該報文從Primary VLAN中的端口2轉發(fā)出去。
步驟309當交換機再次從端口2上接收到用戶終端2發(fā)送給用戶終端1的報文時,則根據(jù)該報文中的目的MAC和VLAN ID,查找到表4中的第2條MAC地址表項,確定出端口為端口1,則在Secondary VLAN20中通過端口1將報文發(fā)送至用戶終端1。
需要說明的是,在上述圖3所示過程中,是以Secondary VLAN中只有一個接入端口為例來說明報文轉發(fā)流程。如果Secondary VLAN中包括多個接入端口,那么,交換機建立MAC地址表項的具體過程與上述圖3所示流程中的相應過程完全相同,而需要指出的是,當交換機在Secondary VLAN中接收到報文時,交換機根據(jù)已建立的MAC地址表項轉發(fā)報文的具體實現(xiàn)過程包括交換機根據(jù)報文中攜帶的目的MAC地址和VLAN ID,在已建立的MAC地址表項中查找對應的MAC地址表項,如果查找到對應的MAC地址表項,則通過該MAC地址表項中記錄的端口轉發(fā)報文,如果未查找到對應的MAC地址表項,則通過Secondary VLAN中除接收到所述報文的端口之外的所有端口分別轉發(fā)所述報文。
相應地,本發(fā)明還提出了一種交換機。圖4是在本發(fā)明中交換機內(nèi)部的基本結構示意圖。參見圖4,在本發(fā)明中,該交換機包括MAC地址學習單元、檢測單元和表項建立單元,其中,MAC地址學習單元,用于從接入端口接收到的報文中學習第一MAC地址,并將學習到的第一MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第一MAC地址是否為首次學習到,在確定第一MAC地址為首次學習到后,將第一MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第一MAC地址后,僅建立對應于Primary VLAN的第一MAC地址的表項。
參見圖4,較佳地,在本發(fā)明提出的交換機中,所述MAC地址學習單元,進一步用于從上行端口接收到的報文中學習第二MAC地址,并將學習到的第二MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第二MAC地址是否為首次學習到,在確定第二MAC地址為首次學習到后,將第二MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第二MAC地址后,分別建立對應于Primary VLAN和各個次虛擬局域網(wǎng)Secondary VLAN的第二MAC地址的表項。
圖5是在本發(fā)明中交換機的一種優(yōu)化結構示意圖。參見圖5,在本發(fā)明中,交換機還可以進一步包括MAC地址存儲單元,這樣,較佳地,所述檢測單元用于檢測MAC地址存儲單元中是否保存有第一MAC地址,在檢測出未保存后,確定第一MAC地址為首次學習到,并將該第一MAC地址存儲在MAC地址存儲單元中;較佳地,所述檢測單元用于檢測MAC地址存儲單元中是否保存有第二MAC地址,在檢測出未保存后,確定第二MAC地址為首次學習到,并將該第二MAC地址存儲在MAC地址存儲單元中。
圖6是在本發(fā)明中交換機的另一種優(yōu)化結構示意圖。參見圖6,在本發(fā)明中,交換機還可以進一步包括報文轉發(fā)單元,用于根據(jù)表項建立單元所建立的MAC地址的表項,轉發(fā)報文。
總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種轉發(fā)報文的方法,其特征在于,該方法包括交換機確定在接入端口上首次學習到第一媒質接入控制MAC地址后,僅建立對應于主虛擬局域網(wǎng)Primary VLAN的第一MAC地址的表項;交換機在上行端口上首次學習到第二MAC地址后,分別建立對應于Primary VLAN和各個次虛擬局域網(wǎng)Secondary VLAN的第二MAC地址的表項;交換機根據(jù)已建立的MAC地址表項轉發(fā)報文。
2.根據(jù)權利要求1所述的方法,其特征在于,所述交換機確定在接入端口上首次學習到第一MAC地址的步驟包括交換機判斷自身中是否保存有第一MAC地址,如果未保存,則確定在接入端口上首次學習到所述第一MAC地址,并保存該第一MAC地址。
3.根據(jù)權利要求1或2所述的方法,其特征在于,當交換機在SecondaryVLAN中接收到報文時,所述交換機根據(jù)已建立的MAC地址表項轉發(fā)報文的步驟包括交換機根據(jù)報文中攜帶的目的MAC地址和VLAN ID,在已建立的MAC地址表項中查找對應的MAC地址表項,如果查找到對應的MAC地址表項,則通過該MAC地址表項中記錄的端口轉發(fā)報文,如果未查找到對應的MAC地址表項,則通過Secondary VLAN中除接收到所述報文的端口之外的所有端口分別轉發(fā)所述報文。
4.一種建立MAC地址表項的方法,其特征在于,該方法包括交換機確定在接入端口上首次學習到一個MAC地址后,僅建立對應于Primary VLAN的該MAC地址的表項。
5.根據(jù)權利要求4所述的方法,其特征在于,所述交換機確定在接入端口上首次學習到一個MAC地址的步驟包括交換機判斷自身中是否保存有所述MAC地址,如果未保存,則確定在接入端口上首次學習到所述MAC地址,并保存該MAC地址。
6.一種交換機,其特征在于,該交換機包括MAC地址學習單元、檢測單元和表項建立單元,其中,MAC地址學習單元,用于從接入端口接收到的報文中學習第一MAC地址,并將學習到的第一MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第一MAC地址是否為首次學習到,在確定第一MAC地址為首次學習到后,將第一MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第一MAC地址后,僅建立對應于Primary VLAN的第一MAC地址的表項。
7.根據(jù)權利要求6所述的交換機,其特征在于,該交換機進一步包括MAC地址存儲單元,其中,所述檢測單元,用于檢測MAC地址存儲單元中是否保存有第一MAC地址,在檢測出未保存后,確定第一MAC地址為首次學習到,并將該第一MAC地址保存在MAC地址存儲單元中。
8.根據(jù)權利要求6所述的交換機,其特征在于,所述MAC地址學習單元,進一步用于從上行端口接收到的報文中學習第二MAC地址,并將學習到的第二MAC地址發(fā)送至檢測單元;檢測單元,用于檢測學習到的第二MAC地址是否為首次學習到,在確定第二MAC地址為首次學習到后,將第二MAC地址發(fā)送至表項建立單元;表項建立單元,用于在接收到檢測單元發(fā)來的第二MAC地址后,分別建立對應于Primary VLAN和各個次虛擬局域網(wǎng)Secondary VLAN的第二MAC地址的表項。
9.根據(jù)權利要求6所述的交換機,其特征在于,該交換機進一步包括MAC地址存儲單元,其中,所述檢測單元,用于檢測MAC地址存儲單元中是否保存有第二MAC地址,在檢測出未保存后,確定第二MAC地址為首次學習到,并將該第二MAC地址保存在MAC地址存儲單元中。
10.根據(jù)權利要求6至9中任意一項所述的交換機,其特征在于,該交換機進一步包括報文轉發(fā)單元,用于根據(jù)表項建立單元所建立的MAC地址的表項,轉發(fā)報文。
全文摘要
本發(fā)明公開了一種轉發(fā)報文的方法和建立媒質接入控制(MAC)地址表項的方法以及一種交換機。在本發(fā)明中,交換機確定在接入端口上首次學習到第一MAC地址后,僅建立對應于主虛擬局域網(wǎng)(Primary VLAN)的第一MAC地址的表項;并且,交換機在上行端口上首次學習到第二MAC地址后,分別建立對應于Primary VLAN和各個次虛擬局域網(wǎng)(Secondary VLAN)的第二MAC地址的表項;交換機根據(jù)已建立的MAC地址表項轉發(fā)報文。本發(fā)明中的交換機包括MAC地址學習單元、檢測單元和表項建立單元。本發(fā)明大大減少了交換機中建立的MAC地址表項,節(jié)約了交換機的表項資源。
文檔編號H04L12/04GK101014015SQ200710080260
公開日2007年8月8日 申請日期2007年2月15日 優(yōu)先權日2007年2月15日
發(fā)明者王峰, 李達 申請人:杭州華為三康技術有限公司