專利名稱:報文轉(zhuǎn)發(fā)方法、系統(tǒng)及設備的制作方法
技術(shù)領域:
本發(fā)明涉及數(shù)據(jù)傳輸領域,尤其涉及一種報文轉(zhuǎn)發(fā)方法、系統(tǒng)及設備。
背景技術(shù):
IB(Infiniband)是一種基于通道的、采用交換結(jié)構(gòu)的I/O體系,主要用于服務器領域的通信,包括服務器與服務器、服務器與存儲設備以及服務器與網(wǎng)絡之間的通信。在IB上傳輸IP報文協(xié)議(IPoIB,IP over Infiniband)是為了實現(xiàn)Infiniband網(wǎng)絡與傳輸控制協(xié)議(TCP)/網(wǎng)際協(xié)議(IP)網(wǎng)絡的兼容而制定的協(xié)議,描述了通過Infiniband傳輸IP報文,使具有主機通道適配器(HCA)卡的主機即IB主機借助IPoIB協(xié)議來訪問因特網(wǎng)(Internet)。IPoIB通過Infiniband體系的不可靠數(shù)據(jù)包(UD)傳輸層協(xié)議承載IP報文,在UD幀的載荷數(shù)據(jù)段上封裝TCP/IP數(shù)據(jù)包。圖1所示為IPoIB幀的具體格式,主要包括IB幀頭、幀尾和載荷三部分,其中,IB載荷又分為前導頭和IP/地址解析協(xié)議(ARP)報文兩部分,前導頭中包括類型(Type)字段和保留(Reserved)字段。
在IPoIB中,IB-以太網(wǎng)(IB-Ethernet)網(wǎng)關,以下簡稱IB-Eth網(wǎng)關,主要用于實現(xiàn)2層交換功能,負責IPoIB幀與在以太網(wǎng)上傳輸?shù)腎P報文(IP over Ethernet)幀之間的相互轉(zhuǎn)換并進行轉(zhuǎn)發(fā),從而使得IB主機與Ethernet主機之間能夠利用IP報文進行相互通訊。IB-Eth網(wǎng)關的典型組網(wǎng)如圖2所示。IP報文在IB-Eth網(wǎng)關上的具體交換過程主要包括以下步驟當IB-Eth網(wǎng)關接收到IB側(cè)發(fā)送過來的IPoIB報文時,首先通過硬件和軟件處理,使該報文只保留IP數(shù)據(jù)段,其次分析該IP數(shù)據(jù)段中的目的IP地址,根據(jù)目的IP地址查找與之綁定的目的Ethernet地址句柄,該Ethernet地址句柄包含該報文的Ethernet出接口和Ethernet目的媒質(zhì)接入控制(MAC)地址等信息,然后再用該信息對該IP數(shù)據(jù)段添加以太網(wǎng)2層幀頭,封裝成Ethernet幀格式,并轉(zhuǎn)發(fā)到指定的Ethernet出接口,從而使該IP報文被最終目的Ethernet主機所接收;相反,當IB-Eth網(wǎng)關接收到Ethernet側(cè)發(fā)送過來的IP over Ethernet時,首先通過硬件和軟件處理,使該報文只保留IP數(shù)據(jù)段,其次分析該IP數(shù)據(jù)段中的目的IP地址,根據(jù)目的IP地址查找與之綁定的目的IB地址句柄,該IB地址句柄包含本地標識(LID)、隊列對(QP)、隊列關鍵字(Qkey)、分區(qū)關鍵字(Pkey)等信息,然后再用該信息對該IP數(shù)據(jù)段添加IB側(cè)2層幀頭,封裝成IPoIB幀格式,并轉(zhuǎn)發(fā)給目的IB主機。
上述從IB網(wǎng)到Ethernet網(wǎng)的IP報文轉(zhuǎn)發(fā)過程,只適合Ethernet主機目的IP地址與IB主機源IP地址位于同一網(wǎng)段/廣播域內(nèi)的情況。當目的IP地址與IB主機源IP地址不在同一網(wǎng)段內(nèi)時,一般會采用缺省路由的方法,即在IB-Eth網(wǎng)關上配置一個以太網(wǎng)側(cè)的缺省轉(zhuǎn)發(fā)網(wǎng)關地址。比如,參見圖2所示,在IB-Eth網(wǎng)關上配置以太網(wǎng)側(cè)的缺省轉(zhuǎn)發(fā)網(wǎng)關地址為路由器Route1的Eth0接口地址。IB-Eth網(wǎng)關收到IB側(cè)的IPoIB報文后,分析目的IP地址,當目的IP地址與源IP地址位于不同的網(wǎng)段時,IB-Eth網(wǎng)關就指定缺省轉(zhuǎn)發(fā)網(wǎng)關地址作為該報文的目的轉(zhuǎn)發(fā)地址,并將收到的報文經(jīng)幀格式轉(zhuǎn)換后轉(zhuǎn)發(fā)到該目的接口。但是,該轉(zhuǎn)發(fā)方式會消耗一定的IB-Eth網(wǎng)關CPU處理時間,當大量此類IPoIB報文需要轉(zhuǎn)發(fā)時,會導致IB-Eth網(wǎng)關轉(zhuǎn)發(fā)性能的下降。
尤其是當IB網(wǎng)絡內(nèi)有多個IP網(wǎng)段與Ethernet網(wǎng)絡互連并且處于同一廣播域內(nèi)時,此時很難再通過配置缺省轉(zhuǎn)發(fā)網(wǎng)關地址的方式轉(zhuǎn)發(fā)從IB網(wǎng)到Ethernet網(wǎng)的此類IP報文,而可能需要在IB-Eth網(wǎng)關上綁定多個Ethernet網(wǎng)關地址,即分別為每個子網(wǎng)綁定對應的Ethernet網(wǎng)關地址。比如,參見圖3所示的包含二個網(wǎng)段二個Ethernet網(wǎng)關的典型組網(wǎng),圖中包含192.168.0.0/24和192.168.1.0/24兩個網(wǎng)段,它們對應的網(wǎng)關地址分別為Route1的Eth0接口地址和Route2的Eth0接口地址,這里需要在IB-Eth網(wǎng)關上分別綁定這兩個接口地址。當IB主機Server1發(fā)送一個目的IP地址為8.0.0.3的IPoIB報文時,IB-Eth網(wǎng)關在收到該IPoIB報文后,首先提取報文中的目的IP地址,分析目的IP地址與源IP地址是否屬于同一網(wǎng)段,如果該報文需要轉(zhuǎn)發(fā)到外網(wǎng),則從源IP地址中獲取子網(wǎng)地址,查找與該子網(wǎng)地址綁定的Ethernet網(wǎng)關地址——Route1的Eth0接口地址,并查找與該目的以太網(wǎng)接口地址綁定的以太網(wǎng)地址句柄,然后利用獲取的以太網(wǎng)地址句柄將收到的IPoIB報文經(jīng)過幀格式轉(zhuǎn)換后轉(zhuǎn)發(fā)出去。也就是說,在轉(zhuǎn)發(fā)IPoIB報文時,IB-Eth網(wǎng)關需要進行目的IP地址到目的以太網(wǎng)地址句柄的查找過程,其間的處理步驟較為復雜,需要消耗大量的IB-Eth網(wǎng)關CPU處理時間,容易造成IB-Eth網(wǎng)關轉(zhuǎn)發(fā)效率的降低。尤其是當大量此類IPoIB報文需要轉(zhuǎn)發(fā)時,會導致IB-Eth網(wǎng)關轉(zhuǎn)發(fā)性能的急劇下降。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種報文轉(zhuǎn)發(fā)方法、系統(tǒng)及設備,提高IB-Eth網(wǎng)關的轉(zhuǎn)發(fā)效率。
為達到上述目的,本發(fā)明提供的報文轉(zhuǎn)發(fā)方法如下在IB-Eth網(wǎng)關的IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;IB側(cè)將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上;IPoIB子接口收到來自IB側(cè)的IP報文后,將收到的IP報文轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口。
其中,所述創(chuàng)建IPoIB子接口的過程包括通過命令行方式在IPoIB主接口下靜態(tài)創(chuàng)建IPoIB子接口,同時指定該IPoIB子接口綁定的以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄。
所述創(chuàng)建IPoIB子接口的過程包括
通過命令行方式在IPoIB主接口下靜態(tài)創(chuàng)建IPoIB子接口,同時指定該IPoIB子接口綁定的以太網(wǎng)接口IP地址,該IP地址對應的以太網(wǎng)地址句柄通過動態(tài)獲取方式進行綁定,動態(tài)獲取的具體過程包括IB-Eth網(wǎng)關接收到來自以太網(wǎng)側(cè)的發(fā)送端IP地址與IPoIB子接口綁定的IP地址相同的ARP報文后,提取該報文中的發(fā)送端MAC地址及該報文的入接口信息,保存到以太網(wǎng)地址句柄中,與創(chuàng)建的IPoIB子接口進行綁定。
所述以太網(wǎng)接口IP地址為以太網(wǎng)主機IP地址,或者為以太網(wǎng)網(wǎng)關IP地址。
所述以太網(wǎng)接口IP地址為以太網(wǎng)網(wǎng)關IP地址,所述創(chuàng)建IPoIB子接口的過程包括IB主機向自身所屬網(wǎng)段對應的以太網(wǎng)網(wǎng)關發(fā)送ARP報文,并在該報文中攜帶IPoIB子接口創(chuàng)建請求;IB-Eth網(wǎng)關收到攜帶IPoIB子接口創(chuàng)建請求的ARP報文后,創(chuàng)建與該報文中的目的網(wǎng)關IP地址綁定的IPoIB子接口,并將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定。
所述ARP報文為ARP請求報文,所述IB-Eth網(wǎng)關將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定的具體過程包括IB-Eth網(wǎng)關將收到的ARP請求報文轉(zhuǎn)發(fā)給目的以太網(wǎng)網(wǎng)關,目的以太網(wǎng)網(wǎng)關收到后返回ARP應答報文;IB-Eth網(wǎng)關收到以太網(wǎng)側(cè)的ARP應答報文后,提取該報文中的發(fā)送端MAC地址及該報文的入接口信息,保存到以太網(wǎng)地址句柄中,與創(chuàng)建的IPoIB子接口進行綁定。
所述ARP報文為ARP應答報文,所述IB主機發(fā)送ARP應答報文之前包括所述以太網(wǎng)網(wǎng)關向IB主機發(fā)送ARP請求報文;所述IB-Eth網(wǎng)關將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定的具體過程包括
IB-Eth網(wǎng)關查找目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄,并將查找到的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定。
所述IPoIB子接口創(chuàng)建請求攜帶在ARP報文前導頭的Reserved字段中。
所述創(chuàng)建IPoIB子接口之后進一步包括IB-Eth網(wǎng)關定時為創(chuàng)建的IPoIB子接口構(gòu)造免費ARP報文,在該報文中插入IPoIB子接口查詢,并進行廣播發(fā)送,IB主機收到攜帶IPoIB子接口查詢的ARP報文后,廣播發(fā)送攜帶IPoIB子接口報告的ARP請求報文進行響應;IB-Eth網(wǎng)關發(fā)出所述免費ARP報文后,如果在規(guī)定時間內(nèi)未收到某一網(wǎng)段內(nèi)任一IB主機響應的ARP請求報文,則刪除該網(wǎng)段對應的以太網(wǎng)網(wǎng)關綁定的IPoIB子接口。
所述IB-Eth網(wǎng)關定時為創(chuàng)建的IPoIB子接口構(gòu)造免費ARP報文包括IB-Eth網(wǎng)關定時為每個創(chuàng)建的IPoIB子接口分別構(gòu)造一個免費ARP報文;或者,IB-Eth網(wǎng)關從從屬于一個IPoIB主接口的所有IPoIB子接口選擇一個IPoIB子接口構(gòu)造免費ARP報文。
所述IPoIB子接口查詢和IPoIB子接口報告攜帶在ARP報文前導頭的Reserved字段中。
所述IPoIB子接口將收到的IP報文轉(zhuǎn)發(fā)給以太網(wǎng)接口之前包括IPoIB子接口利用自身綁定的以太網(wǎng)地址句柄信息將收到的IP報文轉(zhuǎn)換成以太網(wǎng)幀格式。
該方法進一步包括當以太網(wǎng)側(cè)通過創(chuàng)建有IPoIB子接口的IB-Eth網(wǎng)關向IB側(cè)發(fā)送IP報文時,IB-Eth網(wǎng)關的IPoIB主接口轉(zhuǎn)發(fā)所有來自以太網(wǎng)側(cè)的IP報文;或者,IPoIB主接口和IPoIB子接口采用負載均衡的方式共同轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
同時,本發(fā)明還提供了一種報文轉(zhuǎn)發(fā)設備,包括IPoIB主接口和Eth口,該設備進一步包括IPoIB子接口管理模塊,用于在IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;所述IPoIB子接口,用于接收來自IB側(cè)的IP報文,并將收到的IP報文通過Eth口轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口。
其中,所述IPoIB子接口進一步用于轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
所述IPoIB子接口管理模塊進一步用于,在IPoIB子接口綁定的以太網(wǎng)接口對應的網(wǎng)段內(nèi)不存在任一IB主機時,刪除該IPoIB子接口。
另外,本發(fā)明還提供了一種報文轉(zhuǎn)發(fā)系統(tǒng),包括IB主機以及包括IPoIB主接口和Eth口的IB-Eth網(wǎng)關,其中,IB-Eth網(wǎng)關進一步包括IPoIB子接口管理模塊,用于在IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;所述IPoIB子接口,用于接收來自IB側(cè)的IP報文,并將收到的IP報文通過Eth口轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口;所述IB主機,用于將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上。
所述IPoIB子接口進一步用于轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
所述IPoIB子接口管理模塊進一步用于,在IPoIB子接口綁定的以太網(wǎng)接口對應的網(wǎng)段內(nèi)不存在任一IB主機時,刪除該IPoIB子接口。
由此可見,本發(fā)明創(chuàng)建了與Ethernet接口IP地址綁定的IPoIB子接口,對于發(fā)往所述綁定了IPoIB子接口的Ethernet接口的IP報文、或者是需經(jīng)所述綁定了IPoIB子接口的Ethernet接口發(fā)往其它設備的IP報文,IB側(cè)可以直接將這些IP報文發(fā)送到所述Ethernet接口IP地址綁定的IPoIB子接口上;鑒于一個IPoIB子接口只綁定了一個Ethernet接口IP地址,因此,IPoIB子接口收到來自IB側(cè)的IP報文后,可以直接將收到的IP報文發(fā)送給自身綁定的Ethernet接口,而無需進行目的IP地址到目的以太網(wǎng)地址句柄的查找。從而節(jié)省了報文轉(zhuǎn)發(fā)的處理時間,加快了報文轉(zhuǎn)發(fā)速度,提高了轉(zhuǎn)發(fā)效率。尤其是當大量IPoIB報文需要轉(zhuǎn)發(fā)時,這樣能夠明顯提高IB-Eth網(wǎng)關的轉(zhuǎn)發(fā)性能。
并且,在本發(fā)明的較佳實施例中,對于動態(tài)創(chuàng)建與管理IPoIB子接口的情況,其中的IPoIB子接口管理信息可以通過ARP報文前導頭的Reserved字段攜帶,而無需重新定義新的IPoIB子接口報文類型。這樣可以實現(xiàn)與標準IPoIB驅(qū)動軟件的無縫兼容,具有IPoIB子接口動態(tài)創(chuàng)建與管理機制的IB主機能夠與不具有該機制的IB主機之間進行任何IPoIB報文交互。
圖1為現(xiàn)有技術(shù)中的IPoIB幀格式示意圖。
圖2為現(xiàn)有技術(shù)中IB-Eth網(wǎng)關的典型組網(wǎng)結(jié)構(gòu)。
圖3為現(xiàn)有技術(shù)中二個網(wǎng)段二個Ethernet網(wǎng)關的典型組網(wǎng)結(jié)構(gòu)。
圖4為現(xiàn)有技術(shù)中IPoIB的MAC地址結(jié)構(gòu)。
圖5為本發(fā)明實施例中IPoIB子接口未創(chuàng)建時,由IB主機發(fā)起ARP請求并創(chuàng)建IPoIB子接口的處理流程示意圖。
圖6為本發(fā)明實施例中IPoIB子接口未創(chuàng)建時,由Ethernet網(wǎng)關發(fā)起ARP請求并創(chuàng)建IPoIB子接口的處理流程示意圖。
圖7為本發(fā)明實施例中IPoIB子接口已創(chuàng)建時,由IB主機發(fā)起ARP請求的ARP報文處理流程示意圖。
圖8為本發(fā)明實施例中IPoIB子接口已創(chuàng)建時,由Ethernet網(wǎng)關發(fā)起ARP請求的ARP報文處理流程示意圖。
圖9為本發(fā)明實施例中IB網(wǎng)到Ethernet方向上的IP報文轉(zhuǎn)發(fā)過程。
圖10為本發(fā)明實施例中Ethernet到IB網(wǎng)方向上的IP報文轉(zhuǎn)發(fā)過程。
圖11為本發(fā)明實施例中的報文轉(zhuǎn)發(fā)系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面參照附圖并舉實施例,對本發(fā)明作進一步詳細說明。
在IB-Eth網(wǎng)關初始化IPoIB驅(qū)動模塊時,IPoIB驅(qū)動模塊將會給每個廣播域即為每個虛擬局域網(wǎng)標識(VLAN ID)都創(chuàng)建一個IPoIB接口。為便于后續(xù)描述,本文將創(chuàng)建的此類接口稱為IPoIB主接口。每個IPoIB主接口都會綁定一個IB定義的隊列對號(QPN),同時還會綁定Qkey、Pkey、LID等信息,并與全局標識(GID)組成一個鏈路層的單播MAC地址,該MAC地址的結(jié)構(gòu)如圖4所示,長度為20字節(jié),包括24比特的QPN和128比特的GID。每個IPoIB主接口都加入各自相應的廣播域中并使用同一GID。所有來自IB網(wǎng)的IP報文都由IB-Eth網(wǎng)關的IPoIB主接口負責轉(zhuǎn)發(fā)。
由背景技術(shù)描述可知,當Ethernet主機目的IP地址與IB主機源IP地址分別位于不同的子網(wǎng)/廣播域時,IP報文的轉(zhuǎn)發(fā)過程較為復雜,需要消耗大量的CPU處理時間,造成IB-Eth網(wǎng)關轉(zhuǎn)發(fā)性能的下降。
為克服上述問題,本發(fā)明提供了一種報文轉(zhuǎn)發(fā)方法,其基本思想是在IB-Eth網(wǎng)關的IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個Ethernet接口IP地址以及與該IP地址對應的Ethernet地址句柄;IB側(cè)將發(fā)往所述綁定了IPoIB子接口的以太網(wǎng)接口、或者是需經(jīng)所述綁定了IPoIB子接口的以太網(wǎng)接口發(fā)往其它設備的IP報文,直接發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上;IPoIB子接口收到來自IB側(cè)的IP報文后,利用自身綁定的Ethernet地址句柄信息將收到的IP報文轉(zhuǎn)換成Ethernet幀格式,并將經(jīng)幀格式轉(zhuǎn)換后的IP報文發(fā)送到自身綁定的Ethernet接口IP地址對應的Ethernet接口。
其中,IPoIB子接口綁定的Ethernet接口IP地址既可以是Ethernet網(wǎng)關接口IP地址(如圖3中Route1的Eth0接口IP地址),也可以是Ethernet主機IP地址(如圖3中Server2的IP地址)。對于發(fā)往綁定了IPoIB子接口的Ethernet主機的IP報文、或者是需經(jīng)過綁定了IPoIB子接口的Ethernet網(wǎng)關發(fā)送外網(wǎng)的IP報文,IB主機可以直接將這些IP報文發(fā)送到所述Ethernet主機IP地址所綁定的IPoIB子接口、或者是所述Ethernet網(wǎng)關接口IP地址所綁定的IPoIB子接口上。由于一個IPoIB子接口只綁定了一個Ethernet接口,發(fā)送到IPoIB子接口上的IP報文一定是發(fā)送給與之綁定的Ethernet接口,因此,IPoIB子接口收到來自IB側(cè)的IP報文后,可以直接將收到的IP報文發(fā)送到自身綁定的Ethernet接口上,而無需進行目的IP地址到目的以太網(wǎng)地址句柄的查找。從而節(jié)省了轉(zhuǎn)發(fā)處理時間,加快了報文轉(zhuǎn)發(fā)速度,提高了報文轉(zhuǎn)發(fā)效率,尤其是當大量IPoIB報文需要轉(zhuǎn)發(fā)時,這樣能夠明顯提高IB-Eth網(wǎng)關的轉(zhuǎn)發(fā)性能。
在本發(fā)明中,每個IPoIB主接口可以創(chuàng)建一個或多個IPoIB子接口。創(chuàng)建的IPoIB子接口可以與IPoIB主接口共用相同的Qkey、Pkey、GID、LID等信息,但每個IPoIB子接口都需各自創(chuàng)建QPN,即各個IPoIB子接口都擁有自己的鏈路層單播MAC地址。除了具有不同的單播MAC地址之外,所創(chuàng)建的每個IPoIB子接口均只綁定一個Ethernet接口IP地址以及與該IP地址對應的Ethernet地址句柄;每個IPoIB子接口只從屬于創(chuàng)建該子接口的IPoIB主接口,當需要刪除IPoIB主接口時,需先刪除該主接口下從屬的IPoIB子接口;每個IPoIB子接口可以加入到指定的IPoIB主接口,也可以從指定的IPoIB主接口退出;IPoIB子接口只接收和處理指向其自身單播MAC地址的IPoIB報文,不接收和處理任何廣播報文和多播報文,不加入IPoIB主接口所屬的廣播域和多播組中,但可以發(fā)送廣播或多播報文(一般不發(fā)送該類報文,而由IPoIB主接口代理發(fā)送)。當需要在廣播域或多播組中加入IPoIB子接口,則可通過軟件方法過濾不發(fā)往該子接口的IPoIB幀。
IPoIB子接口的創(chuàng)建既可以采取靜態(tài)創(chuàng)建的方式,也可以采取動態(tài)創(chuàng)建的方式。下面分別針對這兩種情況對IPoIB子接口的創(chuàng)建和管理進行詳細說明。
一、靜態(tài)創(chuàng)建IPoIB子接口。
通過命令行等方式在指定的IPoIB主接口下靜態(tài)創(chuàng)建IPoIB子接口,同時指定該IPoIB子接口需綁定的Ethernet接口IP地址。該Ethernet接口IP地址對應的Ethernet地址句柄的綁定過程可靜態(tài)指定或動態(tài)獲取。所述動態(tài)獲取的具體方法如下IB-Eth網(wǎng)關接收到以太網(wǎng)側(cè)發(fā)送過來的ARP報文后,查看ARP報文中的發(fā)送端IP地址是否與IPoIB子接口綁定的IP地址相同,如果相同,則提取該報文中的發(fā)送端硬件地址即以太網(wǎng)MAC地址、記錄該報文的入接口等信息,并保存到所述IP地址對應的Ethernet地址句柄中,完成綁定過程。另外需要說明的是,靜態(tài)創(chuàng)建的IPoIB子接口需通過靜態(tài)刪除的方法來刪除。
靜態(tài)創(chuàng)建的IPoIB子接口不僅可以綁定指定的Ethernet網(wǎng)關接口IP地址,也可以綁定指定的Ethernet主機IP地址。
當一個Ethernet主機IP地址與一個IPoIB子接口綁定時,可以加快所有IB主機到該Ethernet主機方向的IP報文轉(zhuǎn)發(fā)速度,尤其適用于IB主機與該Ethernet主機之間有大量IP報文交互的場合。
二、動態(tài)創(chuàng)建IPoIB子接口。
通過ARP報文交互動態(tài)創(chuàng)建IPoIB子接口。比如,在IPoIB幀前導頭的Reserved字段中添加IPoIB子接口管理信息,利用ARP報文攜帶的IPoIB子接口管理信息實現(xiàn)IPoIB子接口的創(chuàng)建與管理。
關于IPoIB子接口管理信息的具體內(nèi)容可參見表1所示。
表1動態(tài)創(chuàng)建的IPoIB子接口常用于動態(tài)綁定Ethernet網(wǎng)關接口IP地址。
下面分別結(jié)合圖5和圖6對動態(tài)創(chuàng)建與Ethernet網(wǎng)關接口IP地址綁定的IPoIB子接口的過程進行詳細闡述。
其中,圖5為IPoIB子接口未創(chuàng)建時,由IB主機發(fā)起ARP請求并創(chuàng)建IPoIB子接口的處理流程示意圖,其具體包括以下步驟步驟501IB主機通過發(fā)送ARP請求報文來解析本網(wǎng)段對應的Ethernet網(wǎng)關的鏈路層MAC地址,該ARP請求報文中攜帶的目的IP地址為所述Ethernet網(wǎng)關的IP地址,并且,IB主機在發(fā)送的ARP請求報文前導頭的Reserved字段中插入IPoIB子接口創(chuàng)建事件。
步驟502IB-Eth網(wǎng)關的IPoIB主接口接收到該ARP請求報文后,提取該ARP請求報文中攜帶的IPoIB子接口創(chuàng)建事件,并根據(jù)報文中的目的網(wǎng)關IP地址查找是否已經(jīng)存在該IP地址對應的IPoIB子接口;在圖5所示的情況下并不存在所述IP地址對應的IPoIB子接口,故直接創(chuàng)建該IP地址對應的IPoIB子接口,并將收到的ARP請求報文轉(zhuǎn)換成Ethernet下的ARP報文格式,發(fā)送到目的Ethernet網(wǎng)關。
步驟503Ethernet網(wǎng)關收到ARP請求報文后,通過IB-Eth網(wǎng)關向IB主機返回ARP應答報文。
步驟504IB-Eth網(wǎng)關收到Ethernet側(cè)的ARP應答報文后,提取報文中的源IP地址,并查找是否存在與該IP地址對應的IPoIB子接口,如果存在,則表明IB-Eth網(wǎng)關已對該IP地址綁定了指定的IPoIB子接口,于是提取該報文中的發(fā)送端硬件地址即以太網(wǎng)MAC地址和該報文的入接口等信息,保存到該子接口綁定的Ethernet地址句柄中,完成IPoIB子接口Ethernet地址句柄的綁定過程。然后,IB-Eth網(wǎng)關再將該ARP應答報文的發(fā)送端硬件地址字段修改為源IP地址對應的IPoIB子接口的鏈路層MAC地址,并將修改后的ARP應答報文轉(zhuǎn)發(fā)給IB主機。
至此,整個IPoIB子接口創(chuàng)建完畢。
圖6為IPoIB子接口未創(chuàng)建時,Ethernet網(wǎng)關發(fā)起ARP請求并創(chuàng)建IPoIB子接口的處理流程示意圖,其具體包括以下步驟步驟601Ethernet網(wǎng)關通過發(fā)送ARP請求報文來解析目的IP地址對應的IB主機IPoIB接口的鏈路層MAC地址。
步驟602IB-Eth網(wǎng)關收到Ethernet側(cè)的ARP請求報文后,提取報文中的源IP地址,并查找是否存在與該IP地址對應的IPoIB子接口;在圖6所示的情況下并不存在所述IP地址對應的IPoIB子接口,IB-Eth網(wǎng)關則將該ARP請求報文的發(fā)送端硬件地址字段修改為IPoIB主接口的鏈路層MAC地址,并將修改后的ARP請求報文轉(zhuǎn)發(fā)給IB主機;同時,IB-Eth網(wǎng)關還會提取該報文中的發(fā)送端硬件地址即以太網(wǎng)MAC地址和該報文的入接口等信息,保存到該報文源IP地址綁定的Ethernet地址句柄中。
步驟603IB主機收到ARP請求報文后,構(gòu)造ARP應答報文來響應收到的ARP請求報文,該ARP應答報文的鏈路層目的地址為IB-Eth網(wǎng)關的IPoIB主接口MAC地址,并且,當ARP應答報文的目的IP地址為本網(wǎng)段對應的Ethernet網(wǎng)關IP地址時,IB主機要在發(fā)送的ARP應答報文前導頭的Reserved字段中插入IPoIB子接口創(chuàng)建事件。
步驟604由于此時尚未創(chuàng)建與IB主機所屬網(wǎng)段對應的Ethernet網(wǎng)關IP地址綁定的IPoIB子接口,因此,IB-Eth網(wǎng)關的IPoIB主接口將會接收到該ARP應答報文。收到后,IB-Eth網(wǎng)關提取該ARP應答報文中攜帶的IPoIB子接口創(chuàng)建事件,并根據(jù)報文中的目的網(wǎng)關IP地址查找是否已存在與該網(wǎng)關IP地址對應的IPoIB子接口,如果不存在,則創(chuàng)建與該網(wǎng)關IP地址對應的IPoIB子接口,同時,查找該網(wǎng)關IP地址對應的Ethernet地址句柄,并綁定到新創(chuàng)建的IPoIB子接口中。然后,IB-Eth網(wǎng)關構(gòu)造一個新的ARP請求報文,該報文的發(fā)送端IP地址字段填寫為此前接收到的ARP應答報文的目的IP地址,發(fā)送端硬件地址字段填寫為創(chuàng)建的IPoIB子接口的鏈路層MAC地址,目的IP地址字段填寫為此前接收到的ARP應答報文的發(fā)送端IP地址,并通過IPoIB子接口向IB主機發(fā)送新的ARP請求報文。
步驟605IB主機收到ARP請求報文后,構(gòu)造ARP應答報文來響應收到的ARP請求報文,該ARP應答報文的鏈路層目的地址為之前IB-Eth網(wǎng)關創(chuàng)建的IPoIB子接口的MAC地址,并且,當ARP應答報文的目的IP地址為本網(wǎng)段對應的Ethernet網(wǎng)關IP地址時,IB主機需要在發(fā)送的ARP應答報文前導頭的Reserved字段中插入IPoIB子接口創(chuàng)建事件。
步驟606如果IB-Eth網(wǎng)關的IPoIB子接口接收到IB主機返回的ARP應答報文,則表明IB主機IPoIB接口中網(wǎng)關的二層鏈路層地址已綁定為IB-Eth網(wǎng)關中對應的IPoIB子接口的MAC地址,此時,IB-Eth網(wǎng)關只需將收到的ARP應答報文轉(zhuǎn)換成Ethernet下的ARP報文格式轉(zhuǎn)發(fā)給Ethernet網(wǎng)關即可。
當IPoIB子接口已創(chuàng)建時,由IB主機或Ethernet網(wǎng)關發(fā)起ARP請求而產(chǎn)生的ARP報文的處理流程分別如圖7、圖8所示。
其中,圖7為IB主機發(fā)起ARP請求時的ARP報文處理流程,主要包括以下步驟步驟701IB主機向本網(wǎng)段對應的Ethernet網(wǎng)關發(fā)送ARP請求報文,并在該報文前導頭的Reserved字段中插入IPoIB子接口創(chuàng)建事件。
步驟702IB-Eth網(wǎng)關的IPoIB主接口接收到該ARP請求報文后,提取該ARP請求報文中攜帶的IPoIB子接口創(chuàng)建事件,并根據(jù)報文中的目的網(wǎng)關IP地址查找是否已經(jīng)存在該IP地址對應的IPoIB子接口,如果存在,則直接將收到的ARP請求報文轉(zhuǎn)換成Ethernet下的ARP報文格式,并發(fā)送給目的Ethernet網(wǎng)關。
步驟703Ethernet網(wǎng)關收到ARP請求報文后,通過IB-Eth網(wǎng)關向IB主機返回ARP應答報文。
步驟704IB-Eth網(wǎng)關收到Ethernet側(cè)的ARP應答報文后,提取報文中的源IP地址,并查找是否存在與該IP地址對應的IPoIB子接口,如果存在,則提取該報文中的發(fā)送端硬件地址即以太網(wǎng)MAC地址和該報文的入接口等信息,保存到該IPoIB子接口綁定的Ethernet地址句柄中,完成IPoIB子接口Ethernet地址句柄的綁定過程。然后,IB-Eth網(wǎng)關再將該ARP應答報文的發(fā)送端硬件地址字段修改為源IP地址對應的IPoIB子接口的鏈路層MAC地址,并將修改后的ARP應答報文轉(zhuǎn)發(fā)給IB主機。
圖8為Ethernet網(wǎng)關發(fā)起ARP請求時的ARP報文處理流程,主要包括以下步驟步驟801Ethernet網(wǎng)關通過IB-Eth網(wǎng)關向IB主機發(fā)送ARP請求報文。
步驟802IB-Eth網(wǎng)關收到Ethernet側(cè)的ARP請求報文后,提取報文中的源IP地址,并查找是否存在與該IP地址對應的IPoIB子接口,如果存在,則將該ARP請求報文的發(fā)送端硬件地址字段修改為對應IPoIB子接口的鏈路層MAC地址,并將修改后的ARP請求報文轉(zhuǎn)發(fā)給IB主機。
步驟803IB主機收到ARP請求報文后,向Ethernet網(wǎng)關返回ARP應答報文,該ARP應答報文的鏈路層目的地址為Ethernet網(wǎng)關對應的IPoIB子接口MAC地址,并且,IB主機在發(fā)送的ARP應答報文前導頭的Reserved字段中插入IPoIB子接口創(chuàng)建事件。
步驟804IB-Eth網(wǎng)關的IPoIB子接口接收到IB主機返回的ARP應答報文后,直接將收到的ARP應答報文轉(zhuǎn)換成Ethernet下的ARP報文格式,并轉(zhuǎn)發(fā)給Ethernet網(wǎng)關。
在IB主機與Ethernet網(wǎng)關間不再進行數(shù)據(jù)傳輸或者發(fā)生網(wǎng)段變化等情況下,如果不再需要原有的IPoIB子接口,則需要將其刪除。
對于靜態(tài)創(chuàng)建的IPoIB子接口,可以通過靜態(tài)刪除的方法來刪除。而對于動態(tài)創(chuàng)建的IPoIB子接口,可通過以下方式來管理IB-Eth網(wǎng)關定時為每個動態(tài)創(chuàng)建的IPoIB子接口分別構(gòu)造一個免費(gratuitous)ARP報文,在構(gòu)造的ARP報文前導頭的Reserved字段中插入IPoIB子接口查詢,且發(fā)送端和目的IP地址字段均填寫IPoIB子接口綁定的Ethernet網(wǎng)關IP地址,發(fā)送端和目的硬件地址字段填寫IPoIB子接口的鏈路層MAC地址,并以廣播方式發(fā)送該報文;IB主機通過發(fā)送一個攜帶IPoIB子接口報告的ARP請求報文來響應一個IPoIB子接口查詢,ARP請求報文前導頭的Reserved字段中插入IPoIB子接口報告,目的IP地址字段中填寫所屬網(wǎng)關的IP地址,并以廣播方式發(fā)送該報文;
IB-Eth網(wǎng)關接收到IB主機發(fā)送的ARP請求報文后,可以響應該ARP請求報文,也可以只提取該ARP請求報文中攜帶的報告而并不響應該ARP請求,IB-Eth網(wǎng)關根據(jù)收到的ARP請求報文中的目的IP地址可以得知其中攜帶的報告具體是關于哪個IPoIB子接口的;當IB-Eth網(wǎng)關發(fā)出一個IPoIB子接口查詢報文后,如果在規(guī)定定時時間內(nèi)沒有接收到任何有關該子接口的報告,則表示該子接口綁定的網(wǎng)段中已不存在任何IB主機,經(jīng)過一段時間的老化后,IB-Eth網(wǎng)關將刪除該IPoIB子接口。
IB主機IPoIB接口在收到一個從IB-Eth網(wǎng)關發(fā)出的IPoIB子接口查詢后,可以不立即響應,而是經(jīng)過一定的時間間隔后才發(fā)出響應。由于同一網(wǎng)段內(nèi)的所有IB主機IPoIB接口在收到IPoIB子接口查詢后,均能以廣播形式發(fā)送一個IPoIB子接口報告,因此位于同一網(wǎng)段內(nèi)的所有IB主機都將收到同網(wǎng)段內(nèi)其它IB主機發(fā)送的所有報告。鑒于該特點,為改善協(xié)議效率,可以將IB主機發(fā)送IPoIB子接口報告的發(fā)送間隔設置為隨機延時,也就是說,如果一個IB主機IPoIB接口在等待發(fā)送IPoIB子接口報告的過程中,收到了發(fā)自其他主機的相同報告,則該IB主機IPoIB接口就可以不必再發(fā)送報告。因為IB-Eth網(wǎng)關只關心IPoIB子接口綁定的網(wǎng)段中是否至少還擁有一個IB主機,而并不關心該網(wǎng)段中有多少IB主機存在。只要IPoIB子接口綁定的網(wǎng)段中至少還有一個IB主機存在,就不能刪除該IPoIB子接口;只有在IPoIB子接口綁定的網(wǎng)段中已經(jīng)不存在任何一個IB主機時,才將該IPoIB子接口刪除。
另外需要說明的是,當IB-Eth網(wǎng)關定時發(fā)送插入IPoIB子接口查詢的免費ARP報文時,其可以從從屬于一個IPoIB主接口的所有IPoIB子接口只選擇其中一個IPoIB子接口地址信息來構(gòu)造免費ARP報文,而無須為每個IPoIB子接口都構(gòu)造一個免費ARP報文。因為IB主機只關心該IPoIB子接口查詢事件,而對報文本身的內(nèi)容并不關注。IB-Eth網(wǎng)關發(fā)出攜帶IPoIB子接口查詢的免費ARP報文后,如果在規(guī)定的時間內(nèi)未收到某一網(wǎng)段內(nèi)任何一個IB主機響應的ARP請求報文,則刪除該網(wǎng)段對應的以太網(wǎng)網(wǎng)關綁定的IPoIB子接口。
在上述IPoIB子接口的動態(tài)創(chuàng)建與管理過程中,IPoIB子接口管理信息通過ARP報文前導頭的Reserved字段攜帶,無需重新定義新的IPoIB子接口報文類型。這樣可以實現(xiàn)與標準IPoIB驅(qū)動軟件的無縫兼容,具有IPoIB子接口動態(tài)創(chuàng)建與管理機制的IB主機能夠與不具有該機制的IB主機之間進行任何IPoIB報文交互。
需要說明的是,在上述IPoIB子接口的動態(tài)創(chuàng)建與管理過程中,IPoIB子接口管理信息是通過IPoIB幀前導頭中Reserved字段的2個比特位來定義的,但是在實際應用中,也可以利用IPoIB幀前導頭Reserved字段上的更少或者更多位來定義IPoIB子接口管理信息。IPoIB子接口管理信息的具體定義也并不限于表1所示。
另外還需要說明的是,靜態(tài)創(chuàng)建的IPoIB子接口和動態(tài)創(chuàng)建的IPoIB子接口可以同時在IB-Eth網(wǎng)關中存在,也就是說,不同的IPoIB子接口可以采取不同的創(chuàng)建方式。
IPoIB子接口創(chuàng)建完畢后,就可以利用創(chuàng)建的IPoIB子接口來進行IP報文的轉(zhuǎn)發(fā)。引入IPoIB子接口后,IP報文的轉(zhuǎn)發(fā)規(guī)則如下一個IPoIB子接口只綁定一個Ethernet接口IP地址,IPoIB子接口只轉(zhuǎn)發(fā)IB主機發(fā)往該子接口綁定的Ethernet接口的單播IP報文,其他從IB網(wǎng)到Ethernet方向上的IP報文都通過IPoIB主接口轉(zhuǎn)發(fā);IPoIB子接口可以不轉(zhuǎn)發(fā)從Ethernet側(cè)接收到的任何IP報文,而全部由IPoIB主接口轉(zhuǎn)發(fā)到IB網(wǎng)側(cè);或者,IPoIB子接口和IPoIB主接口之間也可以采用負載均衡的方式轉(zhuǎn)發(fā)從Ethernet側(cè)接收到的IP報文。也就是說,從Ethernet側(cè)收到的IP報文的轉(zhuǎn)發(fā)方式需根據(jù)具體設計實現(xiàn)而定。
為便于更好地理解,下面通過兩個具體的例子對引入IPoIB子接口后IP報文的轉(zhuǎn)發(fā)過程進行詳細說明。其中,圖9表示IB網(wǎng)到Ethernet方向上的IP報文轉(zhuǎn)發(fā)過程;圖10表示Ethernet到IB網(wǎng)方向上的IP報文轉(zhuǎn)發(fā)過程。
在圖9中,IPoIB子接口1與Ethernet主機Server2的IP地址192.168.0.3綁定,IPoIB子接口M與Ethernet網(wǎng)關Route1的Eth0接口IP地址192.168.0.1綁定,Ethernet主機Server3的IP地址192.168.0.4沒有綁定IPoIB子接口。其中,IP報文1需由Ethernet網(wǎng)關轉(zhuǎn)發(fā)給外網(wǎng);IP報文2的目的地址為192.168.0.3;IP報文3的目的地址為192.168.0.4。
IP報文1的轉(zhuǎn)發(fā)過程如下IB主機Server1在發(fā)送IP報文1時,查找Ethernet網(wǎng)關IP地址對應的IPoIB子接口M地址句柄,使IP報文的鏈路層目的地址與該IPoIB子接口的MAC地址關聯(lián),然后將IP報文1直接發(fā)送到IPoIB子接口M上;IB-Eth網(wǎng)關的IPoIB子接口M收到IP報文1后,直接獲取該子接口M所綁定的目的Ethernet地址句柄,獲取Ethernet出接口和Ethernet目的MAC地址等信息,然后利用這些信息對IP報文1的IP數(shù)據(jù)段添加以太網(wǎng)2層幀頭,轉(zhuǎn)換成Ethernet幀格式,并通過綁定的Ethernet出接口將經(jīng)幀格式轉(zhuǎn)換后的IP報文1發(fā)送到目的Ethernet網(wǎng)關接口。在此轉(zhuǎn)發(fā)過程中,IB-Eth網(wǎng)關不需要進行目的IP地址到目的以太網(wǎng)地址句柄的查找,直接將發(fā)送給IPoIB子接口的IP報文轉(zhuǎn)發(fā)給與之綁定的Ethernet接口即可,從而節(jié)省了IB-Eth網(wǎng)關的轉(zhuǎn)發(fā)時間,提高了轉(zhuǎn)發(fā)效率。
IP報文2的轉(zhuǎn)發(fā)過程如下由于IPoIB子接口1綁定了Server2的IP地址,因此,IB主機Server1直接將目的地為Server2的IP報文2發(fā)送到IPoIB子接口1上,IPoIB子接口1收到IP報文1后,對IP報文1進行幀格式轉(zhuǎn)換,并將經(jīng)幀格式轉(zhuǎn)換后的IP報文1發(fā)送給自身綁定的IP地址所對應的Ethernet主機Server2。
IP報文3的轉(zhuǎn)發(fā)過程如下由于Server3沒有綁定IPoIB子接口,因此,IB-Eth網(wǎng)關的IPoIB主接口將會收到IB主機Server1發(fā)送過來的IP報文3,IPoIB主接口收到IP報文3后的具體轉(zhuǎn)發(fā)過程與現(xiàn)有技術(shù)一致,即根據(jù)目的IP地址查找與之綁定的目的Ethernet地址句柄,然后利用查找到的信息將IP報文3封裝成Ethernet幀格式,并轉(zhuǎn)發(fā)到指定的Ethernet出接口。
對于來自Ethernet側(cè)的IP報文,可以都通過IB-Eth網(wǎng)關的IPoIB主接口轉(zhuǎn)發(fā),也可以由IPoIB主接口和IPoIB子接口按照負載均衡的方式共同轉(zhuǎn)發(fā)。在圖10中,所有來自Ethernet側(cè)的發(fā)往Server1的任何IP報文都由IPoIB主接口負責轉(zhuǎn)發(fā),其具體轉(zhuǎn)發(fā)過程與現(xiàn)有技術(shù)一致,這里不再一一贅述。
最后需要說明的是,以上主要針對引入IPoIB子接口后,IB-Eth網(wǎng)關對IP/ARP報文所做的修改進行了詳細闡述,而關于Ethernet定義的報文格式與IPoIB標準定義的報文格式之間的相互轉(zhuǎn)換,均與現(xiàn)有技術(shù)一致,這里不作展開描述。
相應地,本發(fā)明還提供了一種報文轉(zhuǎn)發(fā)系統(tǒng),其具體結(jié)構(gòu)參見圖11所示,主要包括IB主機和IB-Eth網(wǎng)關。其中,IB-Eth網(wǎng)關除了包括基本的IPoIB主接口和Eth口外,還包括IPoIB子接口管理模塊,用于在IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;所述IPoIB子接口,用于接收來自IB側(cè)的IP報文,并將收到的IP報文通過Eth口轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口;所述IB主機,用于將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上。
其中,IPoIB子接口還可進一步用于轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
IPoIB子接口管理模塊也可進一步用于,在IPoIB子接口綁定的以太網(wǎng)接口對應的網(wǎng)段內(nèi)不存在任一IB主機時,刪除該IPoIB子接口。
另外,本發(fā)明還提供了一種報文轉(zhuǎn)發(fā)設備,其結(jié)構(gòu)與圖11中的IB-Eth網(wǎng)關一致,這里不再一一贅述。
以上所述對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步的詳細說明,所應理解的是,以上所述并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種報文轉(zhuǎn)發(fā)方法,其特征在于,包括在IB-Eth網(wǎng)關的IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;IB側(cè)將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上;IPoIB子接口收到來自IB側(cè)的IP報文后,將收到的IP報文轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建IPoIB子接口的過程包括通過命令行方式在IPoIB主接口下靜態(tài)創(chuàng)建IPoIB子接口,同時指定該IPoIB子接口綁定的以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建IPoIB子接口的過程包括通過命令行方式在IPoIB主接口下靜態(tài)創(chuàng)建IPoIB子接口,同時指定該IPoIB子接口綁定的以太網(wǎng)接口IP地址,該IP地址對應的以太網(wǎng)地址句柄通過動態(tài)獲取方式進行綁定,動態(tài)獲取的具體過程包括IB-Eth網(wǎng)關接收到來自以太網(wǎng)側(cè)的發(fā)送端IP地址與IPoIB子接口綁定的IP地址相同的ARP報文后,提取該報文中的發(fā)送端MAC地址及該報文的入接口信息,保存到以太網(wǎng)地址句柄中,與創(chuàng)建的IPoIB子接口進行綁定。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述以太網(wǎng)接口IP地址為以太網(wǎng)主機IP地址,或者為以太網(wǎng)網(wǎng)關IP地址。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述以太網(wǎng)接口IP地址為以太網(wǎng)網(wǎng)關IP地址,所述創(chuàng)建IPoIB子接口的過程包括IB主機向自身所屬網(wǎng)段對應的以太網(wǎng)網(wǎng)關發(fā)送ARP報文,并在該報文中攜帶IPoIB子接口創(chuàng)建請求;IB-Eth網(wǎng)關收到攜帶IPoIB子接口創(chuàng)建請求的ARP報文后,創(chuàng)建與該報文中的目的網(wǎng)關IP地址綁定的IPoIB子接口,并將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述ARP報文為ARP請求報文,所述IB-Eth網(wǎng)關將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定的具體過程包括IB-Eth網(wǎng)關將收到的ARP請求報文轉(zhuǎn)發(fā)給目的以太網(wǎng)網(wǎng)關,目的以太網(wǎng)網(wǎng)關收到后返回ARP應答報文;IB-Eth網(wǎng)關收到以太網(wǎng)側(cè)的ARP應答報文后,提取該報文中的發(fā)送端MAC地址及該報文的入接口信息,保存到以太網(wǎng)地址句柄中,與創(chuàng)建的IPoIB子接口進行綁定。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述ARP報文為ARP應答報文,所述IB主機發(fā)送ARP應答報文之前包括所述以太網(wǎng)網(wǎng)關向IB主機發(fā)送ARP請求報文;所述IB-Eth網(wǎng)關將目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定的具體過程包括IB-Eth網(wǎng)關查找目的網(wǎng)關IP地址對應的以太網(wǎng)地址句柄,并將查找到的以太網(wǎng)地址句柄與創(chuàng)建的IPoIB子接口進行綁定。
8.根據(jù)權(quán)利要求5至7任一項所述的方法,其特征在于,所述IPoIB子接口創(chuàng)建請求攜帶在ARP報文前導頭的Reserved字段中。
9.根據(jù)權(quán)利要求5至7任一項所述的方法,其特征在于,所述創(chuàng)建IPoIB子接口之后進一步包括IB-Eth網(wǎng)關定時為創(chuàng)建的IPoIB子接口構(gòu)造免費ARP報文,在該報文中插入IPoIB子接口查詢,并進行廣播發(fā)送,IB主機收到攜帶IPoIB子接口查詢的ARP報文后,廣播發(fā)送攜帶IPoIB子接口報告的ARP請求報文進行響應;IB-Eth網(wǎng)關發(fā)出所述免費ARP報文后,如果在規(guī)定時間內(nèi)未收到某一網(wǎng)段內(nèi)任一IB主機響應的ARP請求報文,則刪除該網(wǎng)段對應的以太網(wǎng)網(wǎng)關綁定的IPoIB子接口。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述IB-Eth網(wǎng)關定時為創(chuàng)建的IPoIB子接口構(gòu)造免費ARP報文包括IB-Eth網(wǎng)關定時為每個創(chuàng)建的IPoIB子接口分別構(gòu)造一個免費ARP報文;或者,IB-Eth網(wǎng)關從從屬于一個IPoIB主接口的所有IPoIB子接口選擇一個IPoIB子接口構(gòu)造免費ARP報文。
11.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述IPoIB子接口查詢和IPoIB子接口報告攜帶在ARP報文前導頭的Reserved字段中。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述IPoIB子接口將收到的IP報文轉(zhuǎn)發(fā)給以太網(wǎng)接口之前包括IPoIB子接口利用自身綁定的以太網(wǎng)地址句柄信息將收到的IP報文轉(zhuǎn)換成以太網(wǎng)幀格式。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進一步包括當以太網(wǎng)側(cè)通過創(chuàng)建有IPoIB子接口的IB-Eth網(wǎng)關向IB側(cè)發(fā)送IP報文時,IB-Eth網(wǎng)關的IPoIB主接口轉(zhuǎn)發(fā)所有來自以太網(wǎng)側(cè)的IP報文;或者,IPoIB主接口和IPoIB子接口采用負載均衡的方式共同轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
14.一種報文轉(zhuǎn)發(fā)設備,包括IPoIB主接口和Eth口,其特征在于,該設備進一步包括IPoIB子接口管理模塊,用于在IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;所述IPoIB子接口,用于接收來自IB側(cè)的IP報文,并將收到的IP報文通過Eth口轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口。
15.根據(jù)權(quán)利要求14所述的設備,其特征在于,所述IPoIB子接口進一步用于轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
16.根據(jù)權(quán)利要求14所述的設備,其特征在于,所述IPoIB子接口管理模塊進一步用于,在IPoIB子接口綁定的以太網(wǎng)接口對應的網(wǎng)段內(nèi)不存在任一IB主機時,刪除該IPoIB子接口。
17.一種報文轉(zhuǎn)發(fā)系統(tǒng),其特征在于,包括IB主機以及包括IPoIB主接口和Eth口的IB-Eth網(wǎng)關,其中,IB-Eth網(wǎng)關進一步包括IPoIB子接口管理模塊,用于在IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;所述IPoIB子接口,用于接收來自IB側(cè)的IP報文,并將收到的IP報文通過Eth口轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口;所述IB主機,用于將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述IPoIB子接口進一步用于轉(zhuǎn)發(fā)來自以太網(wǎng)側(cè)的IP報文。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述IPoIB子接口管理模塊進一步用于,在IPoIB子接口綁定的以太網(wǎng)接口對應的網(wǎng)段內(nèi)不存在任一IB主機時,刪除該IPoIB子接口。
全文摘要
本發(fā)明提供了一種報文轉(zhuǎn)發(fā)方法,包括在IB-Eth網(wǎng)關的IPoIB主接口下創(chuàng)建IPoIB子接口,且一個IPoIB子接口綁定一個以太網(wǎng)接口IP地址以及與該IP地址對應的以太網(wǎng)地址句柄;IB側(cè)將發(fā)往所述以太網(wǎng)接口或者需經(jīng)所述以太網(wǎng)接口發(fā)往其它設備的IP報文,發(fā)送到所述以太網(wǎng)接口IP地址綁定的IPoIB子接口上;IPoIB子接口收到來自IB側(cè)的IP報文后,將收到的IP報文轉(zhuǎn)發(fā)給自身綁定的以太網(wǎng)接口IP地址對應的以太網(wǎng)接口。另外,本發(fā)明還提供了一種報文轉(zhuǎn)發(fā)系統(tǒng)以及一種報文轉(zhuǎn)發(fā)設備。應用本發(fā)明,能夠節(jié)省IB-Eth網(wǎng)關上報文轉(zhuǎn)發(fā)的處理時間,加快報文轉(zhuǎn)發(fā)速度,從而提高IB-Eth網(wǎng)關的報文轉(zhuǎn)發(fā)效率。
文檔編號H04L12/28GK101035087SQ20071009816
公開日2007年9月12日 申請日期2007年4月20日 優(yōu)先權(quán)日2007年4月20日
發(fā)明者趙漢表, 鄭煒 申請人:杭州華三通信技術(shù)有限公司