饒新宇,戴錦友,汪懷坤
(1. 光纖通信技術(shù)和網(wǎng)絡(luò)國(guó)家重點(diǎn)實(shí)驗(yàn)室 湖北 武漢430074;2.武漢郵電科學(xué)研究院 湖北 武漢430074;3.武漢烽火網(wǎng)絡(luò)有限責(zé)任公司 湖北 武漢 430074)
當(dāng)前, 數(shù)據(jù)中心網(wǎng)絡(luò)中存儲(chǔ)網(wǎng)和數(shù)據(jù)網(wǎng)是相對(duì)分離的,各自擁有獨(dú)立的通道。 隨著服務(wù)器數(shù)量的增加,和數(shù)據(jù)中心內(nèi)部虛擬化的發(fā)展,數(shù)據(jù)中心布線數(shù)量、能耗不斷上升,控制物理鏈路成了刻不容緩的任務(wù)。 FCoE 將LAN 與SAN 流量集中到一套網(wǎng)絡(luò)上傳輸將數(shù)據(jù)中心內(nèi)部的網(wǎng)絡(luò)縮減為一套單一的網(wǎng)絡(luò),為網(wǎng)絡(luò)的進(jìn)一步融合掃清了障礙。 FCoE 在維持原有服務(wù)的基礎(chǔ)上,可以大幅減少服務(wù)器上的網(wǎng)絡(luò)接口數(shù)量,從而解決上述數(shù)據(jù)中心面臨的問(wèn)題。
FCoE(Fibre Channel over Ethernet,基于以太網(wǎng)的光纖通道)[1]協(xié)議由美國(guó)INCITS T11 委員會(huì)提出,于2010 年標(biāo)準(zhǔn)化,公開標(biāo)準(zhǔn)是FC-BB-5 和FC-BB-6, 有獨(dú)立的以太網(wǎng)數(shù)據(jù)類型0x8906。 FCoE 將FC 協(xié)議棧的下兩層用無(wú)損以太網(wǎng)取代,將OSI 七層協(xié)議模型的物理層、 數(shù)據(jù)鏈路層映射到FC 協(xié)議棧的最下兩層, 并加入倒數(shù)第三層為FCoE 映射層, 構(gòu)成FCoE 協(xié)議棧,如圖1 所示。 FCoE 使用一塊CNA 網(wǎng)卡取代原有的HBA 卡和NIC 卡,實(shí)現(xiàn)了網(wǎng)絡(luò)的融合。
圖1 FCoE 協(xié)議棧映射原理Fig. 1 Mapping principle of FCoE stack
FCoE 網(wǎng) 絡(luò) 架 構(gòu) 中 有 兩 種 設(shè) 備 類 型[2]:ENode 和FCF。ENode(FCoE Node)是負(fù)責(zé)終結(jié)FCoE 流量的設(shè)備,一般指裝配在服務(wù)器主機(jī)上的CNA 網(wǎng)卡,相當(dāng)于FC SAN 中的HBA 卡。服務(wù)器上電后,ENode 一般率先發(fā)起FIP 請(qǐng)求,以尋找合適的FCoE VLAN。 FCF(FCoE Forwarder)是轉(zhuǎn)發(fā)FCoE 流量的交換機(jī),也就是ENode 的直接上聯(lián)設(shè)備。
目前的FCoE 技術(shù)只解決了服務(wù)器到接入交換機(jī)之間的傳輸問(wèn)題。但是從存儲(chǔ)設(shè)備到服務(wù)器HBA 卡之間是一個(gè)完整的FC 鏈路,需要端到端的解決方案,因此需要實(shí)現(xiàn)FCoE的多跳傳輸[3]。 目前影響力比較大的FCoE 多跳方案主要有4種: 純 以 太 網(wǎng) 模 式、FIP snooping 橋 接 模 式、NPV 模 式 和VE_Port 互聯(lián)模式。 FIP snooping 橋接模式實(shí)現(xiàn)相對(duì)簡(jiǎn)單,同時(shí)能夠很好的保護(hù)FC 協(xié)議棧, 所以我們優(yōu)先選擇該方案實(shí)現(xiàn)FCoE 多跳,延長(zhǎng)FCoE 鏈路的長(zhǎng)度。
FCoE 的控制平面是由FIP (FCoE Initialization Protocol,F(xiàn)CoE 初始化協(xié)議)[4]來(lái)實(shí)現(xiàn)的。FIP 將FC 控制平面的指令反映到以太網(wǎng)的環(huán)境中, 仿佛打通了FC 和以太兩個(gè)世界的通道。FIP 有獨(dú)立的以太網(wǎng)類型0x8914。FIP 協(xié)議建立和維護(hù)虛鏈路的過(guò)程主要包括四個(gè)步驟:VLAN 發(fā)現(xiàn)、FCF 發(fā)現(xiàn)、 虛鏈路建立和虛鏈路維護(hù)四個(gè)階段,如圖2 所示。
圖2 FIP 協(xié)議交互過(guò)程Fig. 2 The interactive process of FIP protocol
FIP snooping(FCoE Initialization Protocol Snooping,F(xiàn)CoE初始化探測(cè)協(xié)議) 在線路中偵聽并轉(zhuǎn)發(fā)FIP 報(bào)文。 運(yùn)行FIP snooping 的設(shè)備又叫transit 交換機(jī),橋接在ENode 和FCF 設(shè)備之間,通過(guò)偵聽FIP 報(bào)文,建立FCoE 報(bào)文的轉(zhuǎn)發(fā)規(guī)則。
首先,ENode 在默認(rèn)VLAN 內(nèi)向?qū)Χ说腇CF 設(shè)備發(fā)出一個(gè)廣播報(bào)文, 以獲取VLAN 信息.FIP snooping 收到后將報(bào)文在所有的FCF 模式端口轉(zhuǎn)發(fā)。 對(duì)端的FCF 設(shè)備收到FIP VLAN 發(fā)現(xiàn)報(bào)文后,向ENode 回應(yīng)VLAN 通告報(bào)文,內(nèi)含可用的VLAN id。 FIP snooping 對(duì)報(bào)文進(jìn)行解析,將FCF 和ENode方向的接口分別加入到報(bào)文中的VLAN 中, 并轉(zhuǎn)發(fā)此報(bào)文。ENode 在收到的報(bào)文中選取一個(gè)VLAN 來(lái)進(jìn)行后續(xù)的數(shù)據(jù)傳輸。 (這一過(guò)程是可選的, 因?yàn)镋Node 和FCF 交互所用的VLAN 可以是靜態(tài)配置)。
確定VLAN 后, 會(huì)馬上選取一個(gè)FCF 進(jìn)行注冊(cè)。 ENode節(jié)點(diǎn)發(fā)出發(fā)現(xiàn)請(qǐng)求報(bào)文,用于發(fā)現(xiàn)FCF 設(shè)備。 FIP snooping 收到報(bào)文后記錄報(bào)文中的源、目的MAC 地址、端口號(hào)等信息,并轉(zhuǎn)發(fā)至FCF。FCF 收到發(fā)現(xiàn)請(qǐng)求報(bào)文后,向回應(yīng)請(qǐng)求發(fā)現(xiàn)通告報(bào)文, 其中description priority 字段包含了該FCF 的優(yōu)先級(jí),F(xiàn)IP snooping 用數(shù)據(jù)包里面的MAC 地址查找ENode 表中對(duì)應(yīng)的表項(xiàng),如果找到,則從指定ENode 端口轉(zhuǎn)發(fā),如果沒(méi)找到,則丟棄。 ENode 選取優(yōu)先級(jí)最高的FCF 作為建立虛鏈路的交換機(jī)設(shè)備。
確定了FCF 后,ENode 便向該FCF 設(shè)備發(fā)出FLOGI 注冊(cè)報(bào)文。FIP snooping 收到FLOGI 后根據(jù)其中目的MAC 查找記錄的FCF 信息,并根據(jù)FCF 表項(xiàng)里的port 轉(zhuǎn)發(fā),如果不在表項(xiàng)中則丟棄。 FCF 收到FLOGI 請(qǐng)求后,將分配一個(gè)地址標(biāo)識(shí)FCID 給ENode 設(shè)備,FIP snooping 記錄后轉(zhuǎn)發(fā)給ENode。同時(shí)虛鏈路的建立完成。
虛鏈路成功建立后,F(xiàn)CF 交換機(jī)周期性向ENode 發(fā)送非請(qǐng)求發(fā)現(xiàn)通告報(bào)文來(lái)維護(hù)建立的虛鏈路。FIP snooping 偵聽并轉(zhuǎn)發(fā)此報(bào)文。 如果ENode 在一定的時(shí)間周期(老化時(shí)間)內(nèi)沒(méi)有接收到非請(qǐng)求發(fā)現(xiàn)通告報(bào)文,則刪除該虛鏈路。
FIP snooping 通過(guò)對(duì)報(bào)文MAC 地址的檢查來(lái)限定ENode發(fā)送的報(bào)文僅能轉(zhuǎn)發(fā)給FCF 交換機(jī), 不能轉(zhuǎn)發(fā)給ENode,且只有成功注冊(cè)的ENode 發(fā)送的FCoE 報(bào)文才能被Transit 交換機(jī)轉(zhuǎn)發(fā)給FCF 交換機(jī), 以及限定FCF 交換機(jī)發(fā)送的FCoE報(bào)文僅能被Transit 交換機(jī)轉(zhuǎn)發(fā)給已經(jīng)注冊(cè)的ENode[4]。 FIP snooping 通過(guò)綁定socket 函數(shù)截獲FIP 報(bào)文收發(fā)包, 通過(guò)ACL 設(shè)置VLAN 轉(zhuǎn)發(fā)規(guī)則和生成FIP snooping 轉(zhuǎn)發(fā)規(guī)則。 生成的FIP snooping 規(guī)則為:
1)FCF 模式接口生成FCF FIP snooping 規(guī)則:
入方向允許源MAC 地址為FCF 交換機(jī)的FCoE MAC 地址、 目的MAC 地址高三個(gè)字節(jié)為FC-MAP 的FCoE 報(bào)文通過(guò),出方向允許源MAC 地址高三個(gè)字節(jié)為FC-MAP 的FCoE報(bào)文、目的MAC 地址為FCF 的FCoE MAC 的報(bào)文通過(guò)。
2)ENode 模式接口生成ENode FIP snooping 規(guī)則:
入方向允許源MAC 地址為FC 地址對(duì)應(yīng)的MAC 地址(即高三個(gè)字節(jié)為FC-MAP , 低三個(gè)字節(jié)為FC 地址)、 目的MAC 地址為FCF 交換機(jī)的FCoE MAC 地址的FCoE 報(bào)文通過(guò), 出方向允許源MAC 地址為FCF 交換機(jī)的FCoE MAC 地址、目的地址為ENode 的FCoE MAC 地址通過(guò)。
當(dāng)一臺(tái)transit 交換機(jī)通電后, 使能FIP snooping 功能后即可在鏈路中收發(fā)偵聽FIP 協(xié)議報(bào)文包。FIP snooping 按收到報(bào)文的端口和報(bào)文種類不同,調(diào)用不同的處理函數(shù)進(jìn)行處理。設(shè)計(jì)收發(fā)包流程如圖3 所示。
搭建的測(cè)試環(huán)境拓?fù)浣Y(jié)構(gòu)如圖6 所示,transit 設(shè)備為烽火的某款交換機(jī),手動(dòng)配置VLANid 為2。 當(dāng)transit 交換機(jī)通電后,使能fip snooping 功能,然后偵聽FIP 報(bào)文。 圖4、圖5、圖6、 圖7 分別為transit 交換機(jī)偵聽到的鏈路中ENode、FCF信息,會(huì)話信息和建立的FIP snooping 規(guī)則。
圖3 FIP snooping 協(xié)議處理流程Fig. 3 The processing flow of FIP snooping protocol
圖4 顯示ENode 信息Fig. 4 Show ENode information
圖5 顯示FCF 信息Fig. 5 Show FCF information
圖4 、 圖5 分別顯示出了連接transit 交換機(jī)的ENode 和FCF 的WWN 和MAC 地址。ENode 和FCF 在VLAN2 中通信。
圖6 顯示會(huì)話信息Fig. 6 Show interview information
會(huì)話信息里的FCF 和ENode 的MAC 與先前顯示的ENode 和其中一個(gè)FCF 的MAC 相同, 說(shuō)明ENode 選取了接口號(hào)為1/0/2 的FCF 進(jìn)行會(huì)話。
圖7 顯示了會(huì)話過(guò)程中建立的FIP snooping 規(guī)則,F(xiàn)CF模式和ENode 模式接口分別限定了報(bào)文的源地址為連接自身的FCF、ENode 的MAC, 目的地址為對(duì)端的ENode 或者FCF 的MAC.
圖7 建立的FIP snooping 規(guī)則Fig. 7 The built FIP snooping principle
FIP snooping 橋接模式作為FCoE 由一跳向多跳演化的一種過(guò)渡方式,雖然不具備完整的FC 協(xié)議棧,但是在純以太網(wǎng)模式的基礎(chǔ)上提高了網(wǎng)絡(luò)的可靠性,并且易于實(shí)現(xiàn),適用于數(shù)據(jù)中心LAN 和SAN 網(wǎng)絡(luò)由傳統(tǒng)的分離走向融合的過(guò)渡時(shí)期。 同時(shí)實(shí)現(xiàn)FIP snooping 為實(shí)現(xiàn)后續(xù)的NPV 模式多跳FCoE 也奠定了良好的基礎(chǔ)。
[1]American National Standards Institute.International Committee for Information Technology Standards FC—BB—6 Rev 2[S].American.2013.
[2]American National Standards Institute.International Committee for Information Technology Standards FC—BB—5 Rev 2[S].American.2009.
[3] 羅敏.FCoE協(xié)議FIP模塊的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2010.
[4] 徐立冰. 云計(jì)算和大數(shù)據(jù)時(shí)代網(wǎng)絡(luò)技術(shù)揭秘[M].北京:人民郵電出版社,2013.
[5] 鄭云峰. FCoE網(wǎng)絡(luò)中FLOGIN過(guò)程的研究與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2013.
[6] 艾克寶.FCoE項(xiàng)目接口模塊和配置管理模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2010.