專利名稱:一種多點間無隧道透傳的方法
技術領域:
本發明涉及一種多點間無隧道透傳的方法,特別是指一種多個非以太網端口的被接入設備之間的無隧道透傳的方法,屬于數據通信領域。
背景技術:
網絡互連技術經過多年的發展,形成了很多不同的協議簇。而目前骨干網的解決方案則呈現統一的趨勢。在骨干網中,以太網交換機被大面積使用。以太網交換機有2層和3層的兩種,2層主要根據MAC地址來轉發,3層則根據IP地址來轉發。2層交換機以其價格和容量的優勢在骨干網中大量使用。
局域網之間需要通過骨干網互連時,如果兩個需要互連的網絡的接口都是ethernet接口,那它們之間的通訊就是一個標準的以太透明橋(bridge)應用,這在IEEE802.1D中有明確的規定。但是一些老的網絡,它們大多是低速窄帶的網絡,鏈路層協議和網絡層協議都很復雜,由于它們不兼容以太網協議,形成了一個個internet上的孤島。為充分利用已有的投資,各種解決這些孤島間互連的技術發展起來。解決這種問題有兩種思路協議轉換和透傳。網絡隧道技術(tunneling)就是一種透傳方案,利用一種網絡協議來傳輸另一種網絡協議。
現有的采用隧道技術實現多點間透傳的方法如圖1所示A1,A2是兩個需要互連的網絡孤島上要進行通訊的設備,稱為被接入設備。A1,A2所在的網絡是同類型的,它們直接相連可以進行通訊。B1,B3,C2,C3也是對等的要進行通訊的被接入設備。其中A1和A2進行通訊,B1和B3進行通訊,C2和C3進行通訊。被接入設備為了通過骨干網進行通訊,必須通過接入設備和骨干網相連,R1,R2,R3就是三個接入設備。被接入設備和接入設備之間通過接口相連,S11是R1連接A1的接口,S12是R1連接B1的接口,S21是R2連接B2的接口,S22是R2連接C2的接口,S31是R3連接B3的接口,S32是R3連接C3的接口。由于被接入設備處在不兼容IP的網絡孤島上,它們和接入設備之間的接口都不是ethernet接口。為實現被接入設備之間的通訊,利用接入設備來建立網絡隧道,把被接入設備的數據封裝在隧道中,然后通過骨干網發送到對方的接入設備,由對方的接入設備來去掉封裝頭,還原出原始數據,再發給對方的被接入設備。通過建立多條網絡隧道,來實現多點間透傳。A1和A2進行通訊,就要建立Tunnel1,B1和B3進行通訊,就要建立Tunnel2,C2和C3進行通訊,就要建立Tunnel3。
這種方案的缺點是,為了實現多點間透傳,每一對設備之間的通訊,都要建立一個隧道,這樣,隨著接入設備的增多,網絡管理的復雜性就迅速增加,可維護性不好,效率也比較低。另外,現在采用的隧道透傳技術主要是GRE技術或串行隧道STUN技術。GRE實現的是一種三層網絡協議承載在另外一種三層網絡協議之上,用GRE作為隧道,承載的開銷比較大。串行隧道技術就是在兩個設備之間建立TCP隧道,把一個接口(通常是串行口)上的數據發送到這個TCP隧道上,再從TCP隧道的另一側還原出來,發送到相應的接口上。維護這樣一個TCP隧道的開銷自然比較大。
發明內容
有鑒于此,本發明的主要目的在于提供一種簡單,通用的多點間透傳的方法,易于維護,高效,開銷小。
為達到上述目的,本發明采用MAC地址進行轉發,來實現被接入設備之間的透傳,該技術方案主要分以下幾個步驟A、在與骨干網連接的每一接入設備上對應各接口設置Local MAC地址和Remote MAC地址,其中Local MAC地址是與本端接入設備連接被接入設備的接口的虛MAC地址,Remote MAC地址是與本端被接入設備通訊的對端被接入設備上與其接入設備相連的口的虛MAC地址。
B、發端接入設備對被接入設備輸入其接口的負載報文封裝一個ethernet報文頭,在ethernet報文頭的目的MAC地址和源MAC地址上分別填上接入報文接口的Remote MAC地址和Local MAC地址,形成新的ethernet報文;C、發端接入設備將封裝好的ethernet報文根據MAC地址經骨干網轉發到接收端的接入設備;D、接收端接入設備檢驗以接收到的ethernet報文的報文頭,當報文頭中的已填上的Remote MAC地址和Local MAC地址與該接入設備連接一個被接入設備的接口的Local MAC地址和Remote MAC地址相同時,去掉ethernet報文頭,將負載報文從相應的接口發送到接收端被接入設備,否則,丟棄該報文。
上述方法中所述的接口是指提供數據收發的通道,可以是同步/異步這樣的物理接口,也可以是邏輯接口。
為了利用MAC地址轉發來實現透傳,要求和兩個進行通訊的被接入設備相連的接入設備在功能上是對等的,并且它們之間的骨干網可以支持MAC轉發。各接入設備和骨干網之間的接口是Ethernet連接,或者是支持bridge協議的接口。由于和被接入設備所連的接口不是Ethernet接口,沒有MAC地址,為了利用MAC地址進行轉發,我們要事先為這些接口指定虛MAC地址。我們就可以為它指定一個全局唯一的MAC地址,即Local MAC地址。為了能夠和對方通訊,還要配置一個對方的MAC地址,即RemoteMAC地址。同時,也要給對方的MAC地址進行相應的配置,并保證雙方的Local Mac地址分別等于對方的Remote MAC地址,雙方的Remote MAC地址分別等于對方的Local MAC地址。當有多個被接入設備之間要進行通訊時,和這些被接入設備相連的接口的虛MAC地址都要事先設置好。本端接入設備連接被接入設備的接口的虛MAC地址,與本端被接入設備通訊的對端被接入設備上與其接入設備相連接口的虛MAC地址,Local MAC地址,Remote MAC地址按與接口一一對應關系建立關聯表,這個關聯表由接入設備來維護。
從被接入設備發到所連接的接口的報文為負載報文(payload packet)。為了實現利用MAC地址轉發,我們在與被接入設備所連的接口收到的負載報文(payload packet)前面封裝一個ethernet報文頭,形成新的ethernet報文。增加了ethernet報文頭的新的報文由兩部分組成,一部分是Ethernet Header,另一部分是payload packet。Ethernet Header中至少要包括目的MAC地址(Dest MAC Address)和源MAC地址(Source MAC Address)。我們根據接入設備所維護的和被接入設備相連的接口的Local MAC地址和RemoteMAC地址來填寫Ethernet Header,在目的MAC地址(Dest MAC Address)里填上Remote MAC地址,在源MAC地址(Source MAC Address)里填上Local MAC地址。
封裝了Ethernet Header的新的ethernet報文,在接入設備中,通過MAC地址轉發,發到接入設備和骨干網相連的接口,再通過這個接口,在骨干網上通過MAC地址轉發,發給對端的接入設備。接入設備把收到ethernet報文按MAC地址轉發,當發現轉發的出接口是相應的非Ethernet接口時,檢驗ethernet報文中的已填上的Remote MAC地址是否等于接入設備維護的接口的Local MAC地址,已填上的Local MAC地址是否等于接入設備維護的接口的Remote MAC地址。如果匹配成功,把ethernet報文的ethernet報文頭去掉,把有效負載報文(payload packet)從相應的接口發到被接入設備,否則,就丟棄此報文。全部的轉發過程遵循IEEE802.1D的標準。
通過以上的方法,就實現了兩個被接入設備之間的無隧道透傳。用同樣的方法,可以其它兩個被接入設備之間的無隧道透傳,這樣就實現了多點間的無隧道透傳。接入設備需要維護的數據很少,只需維護一個關聯表,此外他們還都維護著一個MAC地址轉發表,這部分是IEEE802.1D規定的內容。
因此,本發明提出的基于MAC地址轉發來實現多點間無隧道透傳的方法,跟現有技術相比,在接入設備之間不必建立隧道,直接利用MAC轉發表進行轉發,降低了網絡管理的復雜性,減少了開銷,提高了效率。對于骨干網由以太網交換機構成的情況下尤其適用,可以大大提高轉發的效率,同時提高了有效負載帶寬的利用率。
圖1為現有技術中利用隧道技術進行透傳的組網圖;圖2為實現本發明技術方案的網絡拓補圖;圖3為本發明實施例中增加了ethernet報文頭封裝的負載報文格式;圖4為本發明實施例中增加了Ethernet Header的一種具體字段格式;圖5為本發明的實施例的操作流程圖。
具體實施例方式
下面結合附圖及具體實施例對本發明再作進一步詳細的說明。
用隧道來實現多點間透傳的方法,每一對設備之間的通訊,都要建立一個隧道,這樣,隨著接入設備的增多,網絡管理的復雜性就迅速增加,可維護性不好,效率也比較低,而且建立網絡隧道的開銷也比較大。因此本發明采用MAC地址轉發來實現透傳,無需建立隧道。
參見圖2,U1,U2,U3是接入設備R1,R2,R3和骨干網的接口,它們是Ethernet接口或者是支持bridge協議的接口。其中,A1和A2進行通訊,B1和B3進行通訊,C2和C3進行通訊。圖2中A1和A2進行通訊的具體流程如圖5所示步驟501當A1要發數據給A2時,設置R1連接A1的接口S11的LocalMAC地址=MAC_A1,Remote MAC地址=MAC_A2,設置R2連接A2的接口S21的Local MAC地址=MAC_A2,Remote MAC地址=MAC_A1。
步驟502A1經端口S11發負載報文(payload packet)發給R1。
步驟503R1為負載報文加上Ethernet Header,形成新的ethernet報文,新的ethernet報文的格式如圖3所示。其中Ethernet Header的格式可以按照EthernetII的格式來定義,其具體格式如圖4所示。其中Dest MAC地址和Source MAC地址分別是48bit的MAC地址,Type是Ethernet上的報文類型,如IP報文使用0x0800。我們定義類型為管道負載報文--Pipe,建議使用0x0880。根據預先設置的S11的Local MAC地址和Remote MAC地址來填寫Ethernet Header中的Dest MAC地址和Source MAC地址。在Dest MAC地址上填上MAC_A2,在Source MAC地址上填上MAC_A1,并填上Type,形成ethernet報文。
步驟504在R1中將ethernet報文經過MAC地址轉發,發送到U1。
步驟505在骨干網上將ethernet報文經過MAC地址轉發,發送到U2。
步驟506在R2中根據MAC地址轉發,發現出接口是S21,判斷ethernet報文中的Dest MAC地址是否等于預先設置的S21的Local MAC地址,Source MAC地址是否等于Remote MAC地址。如果不相等,丟棄此報文,如果相等,在R2中去掉ethernet報文的Ethernet Header,得到負載報文(payload packet)。
步驟507經過S21將負載報文(payload packet)發給A2。
圖5僅給出了從A1發數據給A2的過程,同樣的方法可以完成A2從S21接收負載報文(payload packet),封裝ethernet報文頭,轉發到R1,最后去掉ethernet頭,再從S11上發出,到達A1。這樣就實現了被接入設備A1和A2的互連。
當其他設備B1和B3,C2和C3需要互連時,同樣在與它們相對應的物理接口S12,S31,S22,S32上設置好相應的Local MAC地址和Remote MAC地址,并保證一方的Local MAC地址等于另外一方的Remote MAC地址,然后也按照上述過程進行操作,同樣可以完成透傳過程。這樣就實現了多點間的無隧道透傳。整個多點透傳的過程中,接入設備R1,R2,R3所要維護的數據很少,除了需要維護IEEE802.1D中所規定的MAC轉發表的內容,只需再維護一個指定和它們相連的各個被接入設備接口的Local MAC地址和Remote MAC地址的關聯表。R1只需維護關聯表1所示的數據,R2只需維護關聯表2所示數據,R3只需維護關聯表3所示的數據,開銷很小。
關聯表1
關聯表2
關聯表3
權利要求
1.一種實現多點間無隧道透傳的方法,可以實現多個非以太網接口的被接入設備之間無隧道透傳,其特征在于,該方法包括以下步驟A、在與骨干網連接的每一接入設備上對應各接口設置Local MAC地址和Remote MAC地址,其中Local MAC地址是與本端接入設備連接被接入設備的接口的虛MAC地址,Remote MAC地址是與本端被接入設備通訊的對端被接入設備上與其接入設備相連的口的虛MAC地址。B、發端接入設備對被接入設備輸入其接口的負載報文封裝一個ethernet報文頭,在ethernet報文頭的目的MAC地址和源MAC地址上分別填上接入報文接口的Remote MAC地址和Local MAC地址,形成新的ethernet報文;C、發端接入設備將封裝好的ethernet報文根據MAC地址經骨干網轉發到接收端的接入設備;D、接收端接入設備檢驗以接收到的ethernet報文的報文頭,當報文頭中的已填上的Remote MAC地址和Local MAC地址與該接入設備連接一個被接入設備的接口的Local MAC地址和Remote MAC地址相同時,去掉ethernet報文頭,將負載報文從相應的接口發送到接收端被接入設備,否則,丟棄該報文。
2.根據權利要求1所述的方法,其特征在于,所述的接口是指提供數據收發的通道。
3.根據權利要求1所述的方法,其特征在于,步驟B中,ethernet報文頭是加在負載報文的前面
4.根據權利要求1所述的方法,其特征在于,所述的每一接入設備上,本端接入設備連接被接入設備的接口的虛MAC地址,與本端被接入設備通訊的對端被接入設備上與其接入設備相連接口的虛MAC地址,Local MAC地址,Remote MAC地址按與接口一一對應關系建立關聯表,關聯表由接入設備維護。
5.根據權利要求1所述的方法,其特征在于,其中ethernet報文頭的格式按照Ethernet II格式定義,由目的MAC地址,源MAC地址和報文類型值組成。
6.根據權利要求4所述的方法,其特征在于,其中ethernet報文頭中的報文類型值預先指定為管道負載報文。
全文摘要
本發明公開了一種實現多點間無隧道透傳的方法,該方法是利用MAC地址進行轉發來實現多點間無隧道透傳。通過為被接入設備的非Ethernet的接口指定Local MAC地址和與之通訊的接口的Remote MAC地址,然后在被接入設備的接口所發的負載報文(payload packet)前面封裝一個ethernet報文頭,形成新的ethernet報文,在ethernet報文頭上填上根據Remote MAC地址和Local MAC地址設置的目的MAC地址和源MAC地址,然后在骨干網上通過MAC地址轉發。對于收到的ethernet報文,去掉ethernet報文頭,將負載報文發到相應的被接入設備的接口。該方法實現了多點間的無隧道透傳,降低了網絡管理的復雜性,增加了可維護性,提高了效率,減少了開銷。
文檔編號H04L12/28GK1553636SQ0312395
公開日2004年12月8日 申請日期2003年5月29日 優先權日2003年5月29日
發明者王颶, 王 颶 申請人:華為技術有限公司