国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FCoE協(xié)議的NPV交換機(jī)流量轉(zhuǎn)發(fā)

2018-01-03 01:59:15曾穎霓陳慶春聞廣亮
計算機(jī)應(yīng)用與軟件 2017年12期
關(guān)鍵詞:表項交換機(jī)報文

曾穎霓 陳慶春 聞廣亮

1(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 四川 成都 611756) 2(杭州華三通信技術(shù)有限公司數(shù)據(jù)中心交換機(jī)產(chǎn)品管理一部 北京 100085)

基于FCoE協(xié)議的NPV交換機(jī)流量轉(zhuǎn)發(fā)

曾穎霓1陳慶春1聞廣亮2

1(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 四川 成都 611756)2(杭州華三通信技術(shù)有限公司數(shù)據(jù)中心交換機(jī)產(chǎn)品管理一部 北京 100085)

以太網(wǎng)光纖通道FCoE(Fiber Channel Over Ethernet)實現(xiàn)了數(shù)據(jù)中心前端計算網(wǎng)絡(luò)與后端存儲網(wǎng)絡(luò)的無縫融合,降低了數(shù)據(jù)中心基礎(chǔ)設(shè)施的單位建設(shè)成本、維護(hù)成本,支持?jǐn)?shù)據(jù)中心異構(gòu)網(wǎng)絡(luò)環(huán)境與不同的接口類型。存儲區(qū)域網(wǎng)絡(luò)SAN(Storage Area Network)中交換機(jī)數(shù)量受到8比特域ID唯一的限制最多可以有239臺。N端口虛擬化技術(shù)NPV(N Port Virtualization)極大地克服了SAN網(wǎng)絡(luò)在規(guī)模上受限的問題,能夠讓更多的服務(wù)器或存儲設(shè)備接入到網(wǎng)絡(luò)中,擴(kuò)大網(wǎng)絡(luò)容量。NPV交換機(jī)與傳統(tǒng)FCF(Fabric Channel Forward)交換機(jī)最大的差別是上下行流量轉(zhuǎn)發(fā)機(jī)制不同,它采用上行流量從映射端口轉(zhuǎn)發(fā),下行流量查表轉(zhuǎn)發(fā)。NPV交換機(jī)驅(qū)動層路由模塊的設(shè)計與實現(xiàn)采用敏捷開發(fā)模式進(jìn)行,主要包括端口設(shè)置、下發(fā)NPV Mapping表項、路由表項、Fips規(guī)則下發(fā)。實驗測試證明該設(shè)計實現(xiàn)了NPV交換機(jī)對FCoE流量的正常轉(zhuǎn)發(fā),確保了可行性。

以太網(wǎng)光纖通道 融合網(wǎng)絡(luò) N端口虛擬化技術(shù) 驅(qū)動層設(shè)計

0 引 言

伴隨著云計算的興起,數(shù)據(jù)趨于大集中,而且數(shù)據(jù)類型也更加豐富。新IT時代數(shù)據(jù)中心建設(shè)中,我們往往要根據(jù)數(shù)據(jù)類型選用不同的存儲。由于光纖通道存儲區(qū)域網(wǎng)絡(luò)FC SAN(Fabric Channel Storage Area Network)[1]能夠滿足對于大容量、高可靠數(shù)據(jù)的存儲、訪問與備份,它成為了數(shù)據(jù)中心應(yīng)用最為廣泛的存儲方式。使用FC SAN存儲網(wǎng)絡(luò)的數(shù)據(jù)中心通常運(yùn)行兩個獨立的網(wǎng)絡(luò):用于客戶機(jī)到服務(wù)器或者服務(wù)器到服務(wù)器間通信的以太網(wǎng)網(wǎng)絡(luò)(LAN)[2]和用于服務(wù)器到存儲設(shè)備之間通信的存儲區(qū)域網(wǎng)絡(luò)(SAN)[3]。數(shù)據(jù)中心的服務(wù)器需要為每種網(wǎng)絡(luò)配置單獨的網(wǎng)絡(luò)接口卡、單獨的布線、單獨的交換機(jī),多網(wǎng)絡(luò)并存滿足了數(shù)據(jù)中心的性能追求,但是也給數(shù)據(jù)中心的操作、管理與維護(hù)帶來了一系列問題,使得網(wǎng)絡(luò)的可擴(kuò)展性變差。

FCoE是將FC技術(shù)映射到以太網(wǎng)的技術(shù),實現(xiàn)了在無損以太網(wǎng)上傳輸FC數(shù)據(jù)幀[4]。FCoE技術(shù)將為用戶帶來以下好處:首先是更低的擁有成本,通過整合更有效地利用以前分散的資源,將服務(wù)器的I/O適配器和線纜數(shù)量減少多達(dá)50%,大幅度減少電力和冷卻成本,同時還可以降低管理和運(yùn)營開支。其次是強(qiáng)大的投資保護(hù),融合網(wǎng)絡(luò)可與現(xiàn)有基礎(chǔ)設(shè)施無縫互通,使得管理簡便、成本下降。最后是增強(qiáng)了業(yè)務(wù)靈活性,使所有的服務(wù)器均能夠訪問存儲設(shè)備,而且在虛擬機(jī)移動的情況下可以為資源提供一致的存儲連接,保證了系統(tǒng)的靈活性和可用性[5]。采用FCoE技術(shù)的數(shù)據(jù)中心有3種組網(wǎng)方式:接入融合組網(wǎng)、核心融合組網(wǎng)、NPV組網(wǎng)。

本文主要討論NPV組網(wǎng),通過NPV模式接入交換機(jī)與已有的SAN網(wǎng)絡(luò)互通,可以達(dá)到擴(kuò)容的目的。NPV交換機(jī)位于邊緣接入層,在節(jié)點設(shè)備與上行FCoE交換機(jī)FCF之間充當(dāng)代理的角色,將協(xié)議報文代理到核心交換機(jī)。NPV對上行流量的轉(zhuǎn)發(fā)是通過查Mapping表從映射端口轉(zhuǎn)發(fā),對下行流量的轉(zhuǎn)發(fā)是通過查轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。

1 相關(guān)技術(shù)

1.1 FCoE協(xié)議

FCoE協(xié)議棧與FC協(xié)議棧[6]結(jié)構(gòu)如圖1所示。FC協(xié)議棧分為5層:FC_0物理層,定義連接器及線纜規(guī)格;FC_1數(shù)據(jù)編碼層,定義了數(shù)據(jù)的編解碼;FC_2數(shù)據(jù)分發(fā)層,定義了如何組幀及流量控制;FC_3通用服務(wù)層,定義了各種服務(wù);FC_4高層協(xié)議層,定義SCSI、IP等高層協(xié)議到FC幀的映射。

FCoE協(xié)議只是用LAN取代了下層FC_0與FC_1,對于原有的FC幀上層是完全透明的。FCoE幀[7]結(jié)構(gòu)主要分為三部分:普通以太幀頭、FCoE幀頭、FC幀。FCoE數(shù)據(jù)幀和協(xié)議幀的以太類型分別是0X8906、0X8914。FCoE協(xié)議幀主要用于協(xié)議交互(包括初始協(xié)商、?;睢㈦x開等過程),數(shù)據(jù)幀主要用于標(biāo)識發(fā)送FCoE數(shù)據(jù)。

1.2 NPV交換機(jī)

N端口虛擬化(NPV)[8]交換機(jī)的出現(xiàn)是為了解決數(shù)據(jù)中心存儲區(qū)域網(wǎng)絡(luò)擴(kuò)容的問題。FC協(xié)議通過FC ID[9]訪問FC SAN中的各個通信實體,每臺交換機(jī)的FC ID由三部分總共24比特組成。其格式如表1所示。

表1 FC_ID格式

(1) Domain_ID(8 bits)可以唯一標(biāo)識一個SAN網(wǎng)路中每臺交換機(jī),除去一些用于特殊標(biāo)識外,它的取值范圍是1-239,即整個網(wǎng)絡(luò)最多可容納239臺交換機(jī);

(2) Port_ID(8 bits)代表一個N_port;

(3) Area_ID(8 bits)用來標(biāo)識一個劃分了多個N_port的Area。

報文在網(wǎng)絡(luò)中的路由和轉(zhuǎn)發(fā)都用Domain_ID,這一特性同樣適用于FCoE融合網(wǎng)絡(luò)[10]。在FCoE網(wǎng)絡(luò)中NPV交換機(jī)的下行端口連接節(jié)點設(shè)備,上行端口連接核心交換機(jī),它是通過設(shè)置上下行端口為不同模式實現(xiàn)擴(kuò)容的。從下行節(jié)點設(shè)備看,NPV交換機(jī)是一臺FCF交換機(jī),從上行的核心交換機(jī)看,NPV交換機(jī)相當(dāng)于一臺節(jié)點設(shè)備。這樣就可以在網(wǎng)絡(luò)中多接入交換機(jī)以滿足擴(kuò)容需求同時又不會占用唯一的Domain_ID。

NPV交換機(jī)具備標(biāo)準(zhǔn)的FCoE協(xié)議棧,從控制平面來看它的下行端口收到的下行服務(wù)器的注冊信息會被送到上行的FCF交換機(jī)進(jìn)行處理[11]。

1.3 NPV模式報文轉(zhuǎn)發(fā)

NPV交換機(jī)上下行流量具有不同的轉(zhuǎn)發(fā)流程:

上行流量:下行口→上行口,根據(jù)上下行口映射關(guān)系,直接從下行口映射的上行口轉(zhuǎn)發(fā)出去。

下行流量:上行口→下行口,查轉(zhuǎn)發(fā)表(由NPV數(shù)據(jù)庫生成),匹配報文的目的FC_ID進(jìn)行轉(zhuǎn)發(fā)。ENode上的名字服務(wù)信息注冊和查詢、PLOGI[12]等都通過轉(zhuǎn)發(fā)到達(dá)核心交換機(jī)。

FC協(xié)議[13]規(guī)定端口狀態(tài)分為F_port、E_port、NP_port及Auto_port四種類型。節(jié)點設(shè)備的端口狀態(tài)可以分為N_port和NL_port。NPV交換機(jī)的上行口是NP_port,下行口是F_port。

NPV組網(wǎng)中FCoE報文轉(zhuǎn)發(fā)如圖2所示。NPV交換機(jī)中下行口進(jìn)入的報文采用節(jié)點設(shè)備映射的FCoE mac地址(FC_MAP+FC_ID_1)作為源地址(SA)進(jìn)行尋址,目的地址(DA)是NPV交換機(jī)的FCoE mac地址。通過映射的上行口將報文轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)報文的SA不改變,DA變成了下一跳所在交換機(jī)的FCoE mac。相反上行口進(jìn)入報文SA為上行的FCF交換機(jī)的FCoE mac,DA為節(jié)點設(shè)備映射的地址,以DA為關(guān)鍵字查找轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā),出封裝報文DA不變,SA變?yōu)楸綨PV交換機(jī)的FCoE mac??偨Y(jié)一句話就是上行流量SA不變,DA變;下行流量DA不變,SA變。這一處理是需要驅(qū)動根據(jù)平臺的模式設(shè)置與下發(fā)的轉(zhuǎn)發(fā)表項對芯片進(jìn)行設(shè)置以后才能實現(xiàn)的。

圖2 NPV組網(wǎng)中FCoE報文轉(zhuǎn)發(fā)示意圖

2 設(shè)計與實現(xiàn)

整個交換機(jī)系統(tǒng)可以分為四大部分,分別是網(wǎng)絡(luò)操作系統(tǒng)、產(chǎn)品驅(qū)動、芯片接口(SDK)、硬件。平臺作為總體控制平面不管底層芯片的差異,進(jìn)行控制命令下發(fā)、協(xié)議計算。SDK是芯片廠商提供的對外API接口,API接口把要設(shè)置硬件的信息以軟件接口的模式呈現(xiàn)給驅(qū)動開發(fā)者,通過該接口能夠把驅(qū)動處理的信息寫進(jìn)硬件。產(chǎn)品驅(qū)動主要完成網(wǎng)絡(luò)操作與 API之間的對接,把平臺通用的功能轉(zhuǎn)換成為芯片相關(guān)的信息后傳遞給底層芯片。驅(qū)動部分主要是響應(yīng)平臺的命令并做出相應(yīng)處理(實現(xiàn)下發(fā)路由、下發(fā)下一跳、創(chuàng)建VSAN[14]、ZONE[15]和Fips規(guī)則),產(chǎn)品的規(guī)格定制,資源管理和各模塊的維護(hù),向平臺提供接口并完成注冊。驅(qū)動和平臺之間會進(jìn)行信息傳遞,把平臺的通用信息轉(zhuǎn)換成與芯片相關(guān)信息。本實驗主要進(jìn)行驅(qū)動平臺部分設(shè)計與實現(xiàn)。

根據(jù)1.3節(jié)的分析,NPV交換機(jī)要實現(xiàn)FCoE報文的轉(zhuǎn)發(fā)必須進(jìn)行以下幾點處理:設(shè)置端口以保證報文出方向封裝正確;下發(fā)路由的同時生成Fips規(guī)則對端口進(jìn)入報文進(jìn)行檢查;下行口生成NPV mapping表項保證上行流量轉(zhuǎn)發(fā);下發(fā)路由表項同時下發(fā)8位的本機(jī)路由保證能夠識別上行口的Dmac得以走FCoE查表轉(zhuǎn)發(fā)的流程。硬件通過匹配優(yōu)先級實現(xiàn)此邏輯,優(yōu)先查找NPV mapping表,如果找到匹配的表項則從匹配上行端口發(fā)出,否則就當(dāng)作下行流量處理查找路由表進(jìn)行轉(zhuǎn)發(fā)。硬件設(shè)計了上行端口的標(biāo)志位置1,該端口進(jìn)入的報文出封裝時改SA不會改DA,下行口標(biāo)志位置0,該端口進(jìn)入的報文出封裝時改DA不會改SA。

2.1 端口設(shè)置

VFC接口信息通過IfIndx傳入,驅(qū)動由軟件樹記錄VFC端口上與以太網(wǎng)端口相關(guān)的信息,同時驅(qū)動還會將該信息下發(fā)到芯片中(創(chuàng)建硬件三層接口表項)。驅(qū)動軟件樹記錄的表項分為三類:VFC F口表項、VFC E口表項、FC口表項。索引包含的信息有VLAN id、VFC index、FC id,其中FC id字段只在VFC F口計算得到的下一跳表項中有效,此類表項在下發(fā)F口的路由時創(chuàng)建軟硬件表項,在其他的表項中都為0。

上述創(chuàng)建VFC接口軟件表項時驅(qū)動通過樹來記錄,樹節(jié)點的結(jié)構(gòu)體設(shè)計如下:

typedef struct tagFCOE_FW_NH

{

/*查找關(guān)鍵字部分*/

unsigned int uiPrtTyp; /*區(qū)分是VFC口還是FC口*/

unsigned int uiVtgId; /*VFC口用VLAN id,F(xiàn)C口用VSAN id*/

unsigned int uiIfIndx; /*VFC/FC接口的IfIndx */

unsigned int uiFcId; /*VFC F口的具體下一跳中使用目的FC id的值,其他情況下為0*/

unsigned int uiMdcid;

/*節(jié)點內(nèi)容部分*/

unsigned int uiFlg;

unsigned int uiVlnid; /*VLAN id */

unsigned int uiNpIndx; /*對應(yīng)的下一跳信息*/

unsigned int uiL3IntIndex; /*對應(yīng)的三層接口信息*/

unsigned int uiRfCnt; /*引用計數(shù)*/

FCOE_PORT_INFO_S stEthPrtInf; /*下一跳出端口的信息*/

unsigned int uiEthIndx; /*以太口索引*/

char aucRemoteMac[MAC_LEN]; /*目的端mac地址,VFC F口為FC mapping,前三字節(jié)有效,其他情況下為目的端MAC地址*/

char auclocalMac[MAC_LEN]; /*本端FCoE mac地址,F(xiàn)口的fips規(guī)則要用到*/

char aucMacMapping[FCOE_MAC_MAPPING_LEN]; /*NP口需要記錄*/

unsigned int uiEncapid;/*全局同步*/

char aucPad; /*填充字段*/

FCOE_FW_NH_S;

F-VFC口UP時,平臺會從VFC的IOCTRL函數(shù)中下發(fā)命令字要求驅(qū)動創(chuàng)建下一跳,而驅(qū)動僅僅是創(chuàng)建軟件節(jié)點,并不會創(chuàng)建硬件表項。當(dāng)F-VFC上節(jié)點上線以后平臺會下發(fā)一條路由指向該F-VFC口,在下發(fā)這條路由的硬件表項時驅(qū)動會先去創(chuàng)建下一跳的硬件表項。

對于NPV模式還需要設(shè)置上下行口,NPV上下行端口設(shè)置就是在驅(qū)動創(chuàng)建VFC接口時進(jìn)行設(shè)置的。NPV模式的F端口是下行口,需要將它設(shè)置為1,對應(yīng)著SDK API中的類型是N port。從N port類型端口進(jìn)入的報文在入方向選擇Program的ID為15,進(jìn)入該P(yáng)rogram的報文出方向封裝時會修改報文的DA而不修改報文的SA;NPV模式的NP端口是上行口,需要將它設(shè)置為0,對應(yīng)SDK API中的類型是NP port,從NP port類型端口進(jìn)入的報文出方向封裝時SA會被修改而不會修改DA。

2.2 路由處理

平臺構(gòu)造轉(zhuǎn)發(fā)信息通知驅(qū)動更新轉(zhuǎn)發(fā)表。驅(qū)動部分路由處理主要包括了三部分:FC Mapping表項、Fips規(guī)則、轉(zhuǎn)發(fā)路由。上述三部分要確保同時下發(fā)成功或者失敗,即任何一部分表項下發(fā)失敗均要回退當(dāng)前流程中已經(jīng)下發(fā)的表項,等待后續(xù)重新下發(fā)。下發(fā)成功驅(qū)動會回傳轉(zhuǎn)發(fā)表信息給平臺。

路由處理的結(jié)果有五種:包括操作成功、失敗、創(chuàng)建表項已經(jīng)存在、驅(qū)動沒有準(zhǔn)備好、硬件資源不足。對于驅(qū)動沒有準(zhǔn)備好的情況需要重刷下發(fā)失敗的表項。某些產(chǎn)品需要在下發(fā)路由時自動創(chuàng)建出接口相關(guān)的鄰接表,多個出接口需要創(chuàng)建多個鄰接表。鄰接表資源不足時會出現(xiàn)部分鄰接表申請成功部分申請失敗,驅(qū)動負(fù)責(zé)釋放所有已經(jīng)分配成功的鄰接表項資源。然后向平臺返回資源不足,平臺會記錄由于資源不足下發(fā)失敗的表項,繼續(xù)下發(fā)后續(xù)表項。驅(qū)動會定時調(diào)用重刷接口通知平臺重新下發(fā)資源不足或者驅(qū)動沒準(zhǔn)備好而下發(fā)失敗的表項,直至成功。

驅(qū)動部分通過二叉樹記錄生成的軟件路由表項,樹節(jié)點的數(shù)據(jù)結(jié)構(gòu)設(shè)計如下:

typedef struct tagFCOE_FW_RB_S

{

/*關(guān)鍵字部分*/

unsigned int uiVsnid; /*轉(zhuǎn)發(fā)對應(yīng)的VSAN信息*/

unsigned int uiFCid; /*目的FC id*/

unsigned int uiFcidMsk; /*掩碼信息*/

unsigned int uiRbTyp;

unsigned int uiIfIndxSrv; /*F口對應(yīng)下行服務(wù)器端口索引*/

unsigned int uiMdcid;

unsigned int uiOutIfNum; /*出接口的數(shù)目*/

unsigned int uiVlnid; /*轉(zhuǎn)發(fā)對應(yīng)的VLAN信息*/

unsigned int uiNpIndx; /*轉(zhuǎn)發(fā)對應(yīng)的下一跳信息,如果是ECMP則為ECMP的索引*/

unsigned int uiRtStatus; /*路由的狀態(tài)標(biāo)記位*/

FCOE_PORT_INFO_S stSrcPrt; /*下行口匹配信息SrcTrunkID或是單端口的SrcPort+SrcMod*/

FCOE_OIF_INFO_S astOtIfLst[ECMPMEM_MAX_NUM]; /*出接口索引列表*/

unsigned int uiSrvrPrtTyp; /*服務(wù)器端的端口類型(VFC或者FC)*/

unsigned int uiFipsIfIndx; /*為fips提供的端口索引*/

} FCOE_FW_RB_S;

2.2.1 Fips規(guī)則

FCoE網(wǎng)絡(luò)中也需要一些機(jī)制來保證可靠性與安全性,F(xiàn)ips規(guī)則就屬于一種。Fips表項主要是用于檢查類型為FCoE_TYPE報文的源Mac是否正確,由交換機(jī)分配的正確FC id與FC_Map(0X0EFC00)拼接而成的報文則允許通過,否則報文將被丟棄。該規(guī)則只在端口所在單板下發(fā),所以使用的端口索引是index。Fips規(guī)則優(yōu)先級高于ZONE與路由規(guī)則的優(yōu)先級, 所以它不會默認(rèn)設(shè)置通過或是丟棄,而是設(shè)置了標(biāo)志位,到了ZONE中再根據(jù)標(biāo)志位匹配判斷。Fips規(guī)則是通過ACL來下發(fā)的,因此需要在每一個FCoE模式下都占用ACL的資源。盡管存在資源浪費(fèi),為防止切換到FCoE模式時其他模塊搶占ACL硬件資源造成失敗也不得不首先下發(fā)占位表項。驅(qū)動在被通知使能FCoE模式時下發(fā)Fips全局規(guī)則,這些規(guī)則優(yōu)先級最低,在被通知去使能FCoE模式的時候刪除這些規(guī)則。為了節(jié)省ACL個數(shù)以及該規(guī)則對于NPV模式?jīng)]有其他影響,所以刪除時將該規(guī)則提到全局ACL里,其值不再是下發(fā)時的0X0EFC00,而是高位為0X0EFC(0X0EFC00-0X0EFCFF)則deny。

首先,為了模式切換時ACL 資源不會被別的模塊所搶占,需要將所有的將會使用的部分進(jìn)行占位處理。占位規(guī)則的優(yōu)先級高于其他任何規(guī)則,必須保證第一條下發(fā),才能確保模式切換時硬件資源充足。匹配占位表項的報文不作任何處理。

驅(qū)動下發(fā)Fips規(guī)則所需要的信息是從平臺傳入路由表項中獲取,具體信息包括了FC id、Dmac、vsan id、以太網(wǎng)接口的IfIndx。Fips表項中有一條優(yōu)先級最低、默認(rèn)丟棄FCoE 數(shù)據(jù)報文的ACL表項,它用于在節(jié)點沒有注冊時丟棄所有FCoE 的數(shù)據(jù)報文,其他優(yōu)先級都高于它,因此該條表項放在了最后。驅(qū)動在Fips軟件樹上記錄Fips規(guī)則,軟件表項記錄成功后通過ACL下發(fā)硬件表項。Fips軟件樹在記錄表項前會查找該條表項是否已經(jīng)存,如果已經(jīng)存在則只需要將該條表項引用計數(shù)加1,同時不必再下發(fā)硬件。下發(fā)Fips規(guī)則的流程如圖3所示。

圖3 Fips表項下發(fā)

2.2.2 NPV mapping表項

前面已經(jīng)提到過上行流量轉(zhuǎn)發(fā)是通過端口映射進(jìn)行的,NPV mapping就是記錄端口映射規(guī)則的表項。NPV規(guī)則是在Fips規(guī)則下發(fā)成功之后處理。數(shù)據(jù)結(jié)構(gòu)FCOE_NPV_MAPPING_S用于記錄NPV映射規(guī)則的信息。該數(shù)據(jù)結(jié)構(gòu)包括了VSAN id、節(jié)點的FC id信息stSrcPrfx、交換機(jī)與節(jié)點相連的端口索引IfIndxSrvr、FCF互聯(lián)的NP口索引IfIndxExtrnl和包含全局同步資源索引的auiDrvCntxt。數(shù)據(jù)結(jié)構(gòu)中包括的這些信息的具體值取自平臺傳入的路由索引。驅(qū)動會先通過軟件記錄要添加的規(guī)則,然后將規(guī)則下發(fā)到硬件中去。值得注意的是映射規(guī)則是將某個登錄的節(jié)點映射到上行口,這要匹配節(jié)點的Sid與登錄節(jié)點的端口,以保證規(guī)則的唯一性。在芯片上有mod、port、index這些值來表示端口??蚴皆O(shè)備可以支持多塊單板,設(shè)備上的mod與port值特性如下:同一塊單板上port值唯一,不同單板port值可重復(fù);不同單板mod值不能重復(fù),同一塊單板上mod值可重復(fù)。index是通過mod與port得到的,每個端口的index值是唯一的。使用index有兩個原因:首先NPV規(guī)則只是下發(fā)到端口所在的單板,如果使用mod/port就會在所有單板都下發(fā);其次使用mod/port會出現(xiàn)問題,當(dāng)下行口在某個聚合中時,ACL識別不了mod/port,導(dǎo)致NPV規(guī)則匹配不到。

下發(fā)映射規(guī)則的時機(jī)由平臺控制,當(dāng)節(jié)點通過NPV交換機(jī)向FCF交換機(jī)進(jìn)行注冊時平臺會調(diào)用上述接口下發(fā)NPV mapping表項指向上行口。同時還會下發(fā)一條指向下行口的8位主機(jī)路由到SEM,下行流量就是通過先查SEM中這條表項再查LEM進(jìn)行轉(zhuǎn)發(fā)的。整個驅(qū)動部分處理流程如圖4所示。

圖4 NPV規(guī)則下發(fā)

2.2.3 路由表項

在NPV模式下有三種報文需要上送CPU處理。第一種是Sid或者是Did為0XFFFFFE的報文,此條路由在NPV模式初始化時下發(fā),通過添加匹配目的地址或是源地址為0XFFFFFE的ACL規(guī)則,然后在VLAN內(nèi)使能FCoE時設(shè)置VLAN的掩碼。第二種是Did為0XFFFFF0的報文。驅(qū)動通過兩種方式下發(fā)該條表項,在NPV模式初始化時添加匹配目的地址的ACL規(guī)則,并在VLAN內(nèi)使能FCoE時設(shè)置VLAN的掩碼,或者是響應(yīng)路由變化接口,添加知名地址的路由。為了節(jié)省ACL資源,如果產(chǎn)品已經(jīng)在NPV模式初始化時下發(fā)則在路由接口變化時不再下發(fā)直接返回成功。第三種是目的地址為本機(jī)N端口地址的報文。

路由下發(fā)的處理流程如圖5所示。平臺路由掩碼位數(shù)是8的時候驅(qū)動除了下發(fā)平臺路由還會創(chuàng)建特殊路由表項(0XFFFC+domain id)并下發(fā)硬件。路由表項的下發(fā)分為驅(qū)動創(chuàng)建下一跳軟件表項和下發(fā)硬件表項。硬件下發(fā)過程中會得到fec索引,該信息要回傳給驅(qū)動。表項已經(jīng)存在驅(qū)動記錄的下一跳軟件樹上時只需要將引用計數(shù)加1并回傳表中的encapid,不必要再下發(fā)硬件表項。

圖5 路由表項的添加

3 實驗驗證

本實驗環(huán)境基于某公司的高端交換機(jī)設(shè)備,所需的設(shè)備如下:框式交換機(jī)(1臺)、低端交換機(jī)(1臺)、串口服務(wù)器、網(wǎng)線、光模塊等。計算機(jī)、串口服務(wù)器、測試儀與S12508交換機(jī)通過S5800交換機(jī)組成了一個二層的網(wǎng)絡(luò)。這樣它們之間相互連通,計算機(jī)可以通過測試平臺軟件對交換機(jī)進(jìn)行配置、顯示信息以及測試。在PC上通過testcenter也可以控制測試儀,模擬出一個節(jié)點設(shè)備,節(jié)點設(shè)備開始運(yùn)行后就會與相連的交換機(jī)進(jìn)行協(xié)議報文的交互,端口都UP后就可以傳送FCoE報文。

首先通過testcenter上面的轉(zhuǎn)發(fā)報文速率顯示可以初步確定報文無丟包。第二步是通過抓包工具查看兩端的報文,主要關(guān)注DA、SA、VLAN tag、FC id這些關(guān)鍵字段,與預(yù)期相符合。最后也是最重要的驗證就是通過VTP查看配置信息和NPV交換機(jī)轉(zhuǎn)發(fā)報文時的Debug信息、流量統(tǒng)計信息、平臺的驅(qū)動生成的軟件轉(zhuǎn)發(fā)表項、硬件表項相關(guān)的信息。下面對一些關(guān)鍵測試信息進(jìn)行說明。

入方向FLP階段Program選擇結(jié)果如圖6、圖7所示,結(jié)合2.2.3節(jié)描述的8比特本機(jī)路由就是控制N口進(jìn)入的報文在芯片入方向處理過程選擇正確的Program。N端口進(jìn)入報文選擇的是Program 15,控制在查表時用Sid查;NP端口進(jìn)入報文選擇Program 10,控制在查表時用Did查。

圖6 N端口FLP階段報文入方向的Program選擇

圖7 NP端口報文入方向的Program選擇

圖8為N端口報文在入方向TT階段選擇的Program 1,證實了NPV交換機(jī)在路由處理過程中驅(qū)動成功下發(fā)了8位掩碼的本機(jī)路由,從而確保N端口進(jìn)入報文在芯片入方向處理時Smac能夠被識別走FCoE查表轉(zhuǎn)發(fā)的流程。

圖8 N端口TT階段入方向Program選擇

圖9是驅(qū)動記錄的Fips軟件表項,相應(yīng)的MAC id、VLAN id、Smac、Dmac、Action、Index、Mod、Port、Flag等字段的值都與預(yù)期的相符合。

圖9 Fips軟件表項

圖10為出方向選擇了正確的Program,證明端口設(shè)置正確。出方向Program正確才能夠保證正確的出封裝:NP端口報文改Smac不改Dmac;N端口報文改Dmac不改Smac。

圖10 出方向Program選擇

4 結(jié) 語

隨著云計算與大數(shù)據(jù)的發(fā)展,數(shù)據(jù)中心的規(guī)模日益擴(kuò)大,企業(yè)對數(shù)據(jù)中心的要求日益劇增,F(xiàn)CoE為了解決網(wǎng)絡(luò)融合而提出,它的出現(xiàn)拉開了下一代數(shù)據(jù)中心網(wǎng)絡(luò)的帷幕。NPV交換機(jī)的實現(xiàn)增加了融合網(wǎng)絡(luò)中交換機(jī)的數(shù)量,提升了融合網(wǎng)絡(luò)的容量。基于FCoE技術(shù)、NPV技術(shù)進(jìn)行了分析,在理論基礎(chǔ)上進(jìn)行了NPV交換機(jī)驅(qū)動層路由表項的設(shè)計與實現(xiàn)。通過實驗證明了設(shè)計的可行性,當(dāng)然現(xiàn)在的技術(shù)只能支持邊緣接入層的融合,接下來將進(jìn)一步實現(xiàn)核心層的融合研究,相信基于FCoE的NPV交換機(jī)的實現(xiàn)與改進(jìn)也將會推動數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)的不斷發(fā)展與完善。

[1] Zhang H, Koay T, Venugopalan P, et al. Fibre channel storage area network design for an acoustic camera system with 1.6 Gbits/s bandwidth[C]//TENCON 2001: IEEE Region 10 International Conference on Electrical and Electronic Technology,Singapore:IEEE, 2001:143-148.

[2] David A ,James C. Local area networks[M]. Prentice Hall PTR Upper Saddle River, NJ, USA, 2000:100-120.

[3] DeSanti C, Gai S, Baldini A. Fibre channel over ethernet: U.S., 8238347[P]. 2012-8-7.

[4] American National Standard of Accredited Standards Committee. Fiber Channel Backbone-5 (FC-BB-5). REV2.00;(11p.);June. 4, 2009.

[5] Guo J, Zou S, Lu P, et al. I/O Virtualization Design of FCoE Adapter[C]//ICNISC 2015: 2015 International Conference on Network and Information Systems for Computers. Wuhan:IEEE, 2015:18-21.

[6] American National Standard of Accredited Standards Committee. Fibre Channel Framing Signaling-5 (FC-FS-5). REV0.02;(11p.);Feb. 5, 2015.

[7] DeSanti C, Gai S, Baldini A. Fibre channel over ethernet: U.S., 8238347[P]. 2012-8-7.

[8] American National Standard of Accredited Standards Committee. Fibre Channel Switch Fabric-3 (FC-SW-3) REV 6.0;(11 p.); Jan. 24, 2002, Only.

[9] Berman S. Fibre channel switching fabric: U.S., 6185203[P]. 2001-2-6.

[10] Cai Y, Yan Y, Zhang Z, et al. Survey on converged data center networks with DCB and FCoE: standards and protocols[J]. IEEE Network, 2013, 27(27):27-32.

[11] Bodnar P, Luiz Z. FCoE and iSCSI Performance Analysis in Tape Virtualization Systems[J]. IEEE Latin America Transactions, 2015, 13(7):2372-2378.

[12] 徐立冰, 騰云. 云計算和大數(shù)據(jù)時代網(wǎng)絡(luò)技術(shù)揭秘[M]. 北京:人民郵電出版社, 2013:102-132.

[13] Desanti C, Jiang J. FCoE in perspective[C]//ICAIT 2008: 2008 International Conference on Advanced Infocomm Technology. Shenzhen:ACM, 2008:1-8.

[14] Jiang J, Desanti C. The role of FCoE in I/O consolidation[C]//ICAIT 2008: 2008 International Conference on Advanced Infocomm Technology. Shenzhen:ACM, 2008:1-6.

[15] Antonio S. The Evolution of Data Center Networking Technologies[C]//CCP 2011: 2011 First International Conference on Data Compression. Palinuro: IEEE,2011:172-176.

TRAFFICFORWARDINGOFNPVSWITCHBASEDONFCOE

Zeng Yingni1Chen Qingchun1Wen Guangliang2

1(SchoolofInformationScienceandTechnology,SouthwestJiaotongUniversity,Chengdu611756,Sichuan,China)2(BeijingInstituteofH3CTechnologyCo.,Limited,Beijing100085,China)

Fiber Channel over Ethernet (FCoE) achieves the seamless integration of front-end computing network and back-end storage network. FCoE reduces unit construction costs and maintenance costs for data center infrastructures, supporting heterogeneous network environment and different interface types. The number of switches in a Storage Area Network (SAN) is limited by eight bits ID Domain, with a maximum of 239. N port virtualization (NPV) greatly overcomes the limitation on the scale of the SAN network, allowing more servers or storage devices access to the network, hence expanding network capacity. The primary difference between NPV switch and the traditional FCF switch lies in the traffic forwarding mechanism of the uplink and downlink; NPV uses the mapping port to forward the uplink traffic, and the route table to forward downlink traffic. NPV switch driver layer route design and implementation adopts the agile software development, such as the setting of the port, NPV Mapping entries, routing table entries, Fips rules. Experimental results show that this design realizes the normal forwarding of NPV switches to FCoE traffic, and ensures the feasibility.

Fiber channel over ethernet Converged network N port virtualization Driver layer design

2017-02-22。曾穎霓,碩士生,主研領(lǐng)域:無線資源管理,網(wǎng)絡(luò)與交換技術(shù)。陳慶春,教授。聞廣亮,高工。

TP393.05

A

10.3969/j.issn.1000-386x.2017.12.036

猜你喜歡
表項交換機(jī)報文
基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
一種改進(jìn)的TCAM路由表項管理算法及實現(xiàn)
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
基于ARMA模型預(yù)測的交換機(jī)流表更新算法
淺析反駁類報文要點
中國外匯(2019年11期)2019-08-27 02:06:30
修復(fù)損壞的交換機(jī)NOS
使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化
ATS與列車通信報文分析
PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計
连州市| 玉山县| 临漳县| 昌图县| 特克斯县| 通辽市| 宣威市| 平乡县| 海门市| 乐陵市| 囊谦县| 平遥县| 高阳县| 东宁县| 赣州市| 临朐县| 遂平县| 宣汉县| 福泉市| 潍坊市| 林口县| 广宗县| 白水县| 微山县| 鄂伦春自治旗| 东港市| 张掖市| 三原县| 鹰潭市| 彝良县| 翼城县| 湖北省| 白朗县| 宽甸| 如皋市| 西充县| 彭阳县| 三都| 大同县| 霍山县| 界首市|