FCoE 网络中FIP snooping 多跳模式的实现
2015-08-26饶新宇戴锦友汪怀坤
饶新宇,戴锦友,汪怀坤
(1. 光纤通信技术和网络国家重点实验室 湖北 武汉430074;2.武汉邮电科学研究院 湖北 武汉430074;3.武汉烽火网络有限责任公司 湖北 武汉 430074)
当前, 数据中心网络中存储网和数据网是相对分离的,各自拥有独立的通道。 随着服务器数量的增加,和数据中心内部虚拟化的发展,数据中心布线数量、能耗不断上升,控制物理链路成了刻不容缓的任务。 FCoE 将LAN 与SAN 流量集中到一套网络上传输将数据中心内部的网络缩减为一套单一的网络,为网络的进一步融合扫清了障碍。 FCoE 在维持原有服务的基础上,可以大幅减少服务器上的网络接口数量,从而解决上述数据中心面临的问题。
1 FCoE 协议原理和标准进展简介
FCoE(Fibre Channel over Ethernet,基于以太网的光纤通道)[1]协议由美国INCITS T11 委员会提出,于2010 年标准化,公开标准是FC-BB-5 和FC-BB-6, 有独立的以太网数据类型0x8906。 FCoE 将FC 协议栈的下两层用无损以太网取代,将OSI 七层协议模型的物理层、 数据链路层映射到FC 协议栈的最下两层, 并加入倒数第三层为FCoE 映射层, 构成FCoE 协议栈,如图1 所示。 FCoE 使用一块CNA 网卡取代原有的HBA 卡和NIC 卡,实现了网络的融合。
图1 FCoE 协议栈映射原理Fig. 1 Mapping principle of FCoE stack
FCoE 网 络 架 构 中 有 两 种 设 备 类 型[2]:ENode 和FCF。ENode(FCoE Node)是负责终结FCoE 流量的设备,一般指装配在服务器主机上的CNA 网卡,相当于FC SAN 中的HBA 卡。服务器上电后,ENode 一般率先发起FIP 请求,以寻找合适的FCoE VLAN。 FCF(FCoE Forwarder)是转发FCoE 流量的交换机,也就是ENode 的直接上联设备。
目前的FCoE 技术只解决了服务器到接入交换机之间的传输问题。但是从存储设备到服务器HBA 卡之间是一个完整的FC 链路,需要端到端的解决方案,因此需要实现FCoE的多跳传输[3]。 目前影响力比较大的FCoE 多跳方案主要有4种: 纯 以 太 网 模 式、FIP snooping 桥 接 模 式、NPV 模 式 和VE_Port 互联模式。 FIP snooping 桥接模式实现相对简单,同时能够很好的保护FC 协议栈, 所以我们优先选择该方案实现FCoE 多跳,延长FCoE 链路的长度。
2 FIP 协议和FIP snooping 工作原理
FCoE 的控制平面是由FIP (FCoE Initialization Protocol,FCoE 初始化协议)[4]来实现的。FIP 将FC 控制平面的指令反映到以太网的环境中, 仿佛打通了FC 和以太两个世界的通道。FIP 有独立的以太网类型0x8914。FIP 协议建立和维护虚链路的过程主要包括四个步骤:VLAN 发现、FCF 发现、 虚链路建立和虚链路维护四个阶段,如图2 所示。
图2 FIP 协议交互过程Fig. 2 The interactive process of FIP protocol
FIP snooping(FCoE Initialization Protocol Snooping,FCoE初始化探测协议) 在线路中侦听并转发FIP 报文。 运行FIP snooping 的设备又叫transit 交换机,桥接在ENode 和FCF 设备之间,通过侦听FIP 报文,建立FCoE 报文的转发规则。
首先,ENode 在默认VLAN 内向对端的FCF 设备发出一个广播报文, 以获取VLAN 信息.FIP snooping 收到后将报文在所有的FCF 模式端口转发。 对端的FCF 设备收到FIP VLAN 发现报文后,向ENode 回应VLAN 通告报文,内含可用的VLAN id。 FIP snooping 对报文进行解析,将FCF 和ENode方向的接口分别加入到报文中的VLAN 中, 并转发此报文。ENode 在收到的报文中选取一个VLAN 来进行后续的数据传输。 (这一过程是可选的, 因为ENode 和FCF 交互所用的VLAN 可以是静态配置)。
确定VLAN 后, 会马上选取一个FCF 进行注册。 ENode节点发出发现请求报文,用于发现FCF 设备。 FIP snooping 收到报文后记录报文中的源、目的MAC 地址、端口号等信息,并转发至FCF。FCF 收到发现请求报文后,向回应请求发现通告报文, 其中description priority 字段包含了该FCF 的优先级,FIP snooping 用数据包里面的MAC 地址查找ENode 表中对应的表项,如果找到,则从指定ENode 端口转发,如果没找到,则丢弃。 ENode 选取优先级最高的FCF 作为建立虚链路的交换机设备。
确定了FCF 后,ENode 便向该FCF 设备发出FLOGI 注册报文。FIP snooping 收到FLOGI 后根据其中目的MAC 查找记录的FCF 信息,并根据FCF 表项里的port 转发,如果不在表项中则丢弃。 FCF 收到FLOGI 请求后,将分配一个地址标识FCID 给ENode 设备,FIP snooping 记录后转发给ENode。同时虚链路的建立完成。
虚链路成功建立后,FCF 交换机周期性向ENode 发送非请求发现通告报文来维护建立的虚链路。FIP snooping 侦听并转发此报文。 如果ENode 在一定的时间周期(老化时间)内没有接收到非请求发现通告报文,则删除该虚链路。
3 FIP snooping 模式的设计
FIP snooping 通过对报文MAC 地址的检查来限定ENode发送的报文仅能转发给FCF 交换机, 不能转发给ENode,且只有成功注册的ENode 发送的FCoE 报文才能被Transit 交换机转发给FCF 交换机, 以及限定FCF 交换机发送的FCoE报文仅能被Transit 交换机转发给已经注册的ENode[4]。 FIP snooping 通过绑定socket 函数截获FIP 报文收发包, 通过ACL 设置VLAN 转发规则和生成FIP snooping 转发规则。 生成的FIP snooping 规则为:
1)FCF 模式接口生成FCF FIP snooping 规则:
入方向允许源MAC 地址为FCF 交换机的FCoE MAC 地址、 目的MAC 地址高三个字节为FC-MAP 的FCoE 报文通过,出方向允许源MAC 地址高三个字节为FC-MAP 的FCoE报文、目的MAC 地址为FCF 的FCoE MAC 的报文通过。
2)ENode 模式接口生成ENode FIP snooping 规则:
入方向允许源MAC 地址为FC 地址对应的MAC 地址(即高三个字节为FC-MAP , 低三个字节为FC 地址)、 目的MAC 地址为FCF 交换机的FCoE MAC 地址的FCoE 报文通过, 出方向允许源MAC 地址为FCF 交换机的FCoE MAC 地址、目的地址为ENode 的FCoE MAC 地址通过。
当一台transit 交换机通电后, 使能FIP snooping 功能后即可在链路中收发侦听FIP 协议报文包。FIP snooping 按收到报文的端口和报文种类不同,调用不同的处理函数进行处理。设计收发包流程如图3 所示。
4 FIP snooping 模式在交换机上的实验
搭建的测试环境拓扑结构如图6 所示,transit 设备为烽火的某款交换机,手动配置VLANid 为2。 当transit 交换机通电后,使能fip snooping 功能,然后侦听FIP 报文。 图4、图5、图6、 图7 分别为transit 交换机侦听到的链路中ENode、FCF信息,会话信息和建立的FIP snooping 规则。
图3 FIP snooping 协议处理流程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 交换机的ENode 和FCF 的WWN 和MAC 地址。ENode 和FCF 在VLAN2 中通信。
图6 显示会话信息Fig. 6 Show interview information
会话信息里的FCF 和ENode 的MAC 与先前显示的ENode 和其中一个FCF 的MAC 相同, 说明ENode 选取了接口号为1/0/2 的FCF 进行会话。
图7 显示了会话过程中建立的FIP snooping 规则,FCF模式和ENode 模式接口分别限定了报文的源地址为连接自身的FCF、ENode 的MAC, 目的地址为对端的ENode 或者FCF 的MAC.
5 结束语
图7 建立的FIP snooping 规则Fig. 7 The built FIP snooping principle
FIP snooping 桥接模式作为FCoE 由一跳向多跳演化的一种过渡方式,虽然不具备完整的FC 协议栈,但是在纯以太网模式的基础上提高了网络的可靠性,并且易于实现,适用于数据中心LAN 和SAN 网络由传统的分离走向融合的过渡时期。 同时实现FIP snooping 为实现后续的NPV 模式多跳FCoE 也奠定了良好的基础。
[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协议FIP模块的设计与实现[D]. 北京:北京邮电大学,2010.
[4] 徐立冰. 云计算和大数据时代网络技术揭秘[M].北京:人民邮电出版社,2013.
[5] 郑云峰. FCoE网络中FLOGIN过程的研究与实现[D]. 北京:北京邮电大学,2013.
[6] 艾克宝.FCoE项目接口模块和配置管理模块的设计与实现[D].北京:北京邮电大学,2010.