01-FCoE配置
本章节下载: 01-FCoE配置 (1.2 MB)
目 录
· 设备只有工作在高级模式下,才支持FCoE功能。关于设备工作模式的详细介绍请参见“基础配置指导”中的“设备管理”。
· FCoE功能需要获得License授权后方能使用。关于license使用的详细介绍请参见“基础配置指导”中的“license管理”。
· 在部署了FCoE功能的环境中,建议将IRF链路down延迟上报时间配置为0,具体请参见“IRF命令参考/IRF命令”中irf link-delay命令。
· 交换机上与服务器/存储的CNA网卡连接的以太网接口必须加入DCBX配置,配置DCBX功能请参考“二层技术-以太网交换配置指导”中的“LLDP配置”。
随着Internet应用的不断增长,网络服务器需要存储的信息和数据越来越多,这就导致对服务器存储容量的需求不断增长。当服务器的内部存储容量无法满足信息增长的需求时,就需要将服务器的存储“外部化”。为此,提出了SAN(Storage Area Networks,存储区域网络)的概念,它为服务器提供了专用的外部存储环境,充分利用新的存储硬件技术和网络技术,满足对大容量、高可靠数据的存储、访问和备份等需求。
根据使用的协议不同,SAN可以分为FC SAN和IP SAN。FC SAN使用FC(Fibre Channel,光纤通道)协议族,IP SAN使用TCP/IP协议族。本文仅介绍FC SAN相关内容。
在FC SAN中,通信的双方,通常一端为网络服务器,另一端为磁盘设备。服务器与磁盘设备之间可以通过光纤或者铜缆直接连接在一起,也可以通过交换机间接连接在一起。
如图1-1所示。服务器和磁盘设备之间的直接连接方式主要是点到点方式,这种组网方式比较简单,但是只能支持两台设备的互联。真正能称之为FC SAN的连接方式是交换式架构,即通过FC交换机将大量的服务器和磁盘设备组织在一个FC SAN网络中。在交换式架构中,服务器和磁盘设备都被称之为节点设备(Node),是数据发送和接收的实体;FC交换机作为中间传输设备提供数据转发和网络控制功能。交换式架构提供了很好的扩展能力,能够支持上万台甚至更多的节点设备互联。
· 由FC交换机和节点设备组成的网络称为FC SAN。
· 由FC交换机组成的中间传输网络称为Fabric网络。
FC协议作为FC SAN中的数据传输协议,提供了高效的数据传输服务。在FC SAN中,服务器、FC交换机和磁盘设备都需要支持FC协议。
WWN(World Wide Name,全球名字)是一个64位的地址,用来标识Fabric网络和FC SAN中的实体(实体包括FC交换机、节点设备以及其上的接口)。FC的上层协议通过WWN进行通信。
FC SAN中每个实体的WWN在设备出厂前就已分配好了。
在Fabric网络中,FC协议通过FC地址访问FC SAN中各个通讯实体。FC地址通常也称为FC_ID。
FC地址的结构如图1-2所示。FC地址的长度为24比特,分为三个字段:Domain_ID、Area_ID、Port_ID,每个字段的长度均为8比特。
· Domain_ID:域ID,用来标识一台FC交换机,取值范围是1~239。一台FC交换机以及其连接的所有N_Port构成一个域。
· Area_ID:一台节点设备上的一个或多个N_Port可以被划分为一个Area,用Area_ID标识。
· Port_ID:一个Port_ID代表一个N_Port。
图1-2 FC地址的结构
一个FC地址可以唯一标识一台节点设备上的一个N_Port,同一台节点设备上不同N_Port的FC地址不同。
一个域ID可以唯一标识一台FC交换机,同一个Fabric网络中不同FC交换机的域ID不同。在报文传输时,FC交换机之间的路由和转发使用的都是域ID。
FC协议标准对FC地址的使用做了规范限定,请参见“12.1 附录A FC地址分配”。
在交换式架构中,节点设备和交换机之间通过不同模式的接口进行互联,如图1-3所示。
(1) 节点设备上的接口模式
节点设备上的接口都是N模式,称为N_Port。
N_Port又分为两种类型:
· N端口:N端口通过直连方式连接到Fabric。
· NL端口:NL端口通过仲裁环连接到Fabric。
(2) 交换机上的接口模式
交换机上的接口具有下面几种模式:
· E模式:处于本模式的接口称为E_Port。E_Port用来连接其它交换机的E_Port。
· F模式:处于本模式的接口称为F_Port。F_Port用来连接节点设备的N_Port或者其它交换机的NP_Port。
· NP模式:处于本模式的接口称为NP_Port。NP_Port用来连接其它交换机的F_Port。NP_Port的详细介绍请参见“9 NPV”。
多台交换机通过E_Port互联组成一个Fabric,通过F_Port将节点设备接入到Fabric中来。
FC交换机组成的Fabric网络的主要功能是提供数据传输服务。服务器通过FC交换机能够将命令和数据发送给磁盘设备,或者从磁盘设备读取数据。
图1-4 FC SAN通信过程
下面以服务器访问磁盘设备为例,简单介绍一下FC SAN中的通信过程:
(1) 服务器和磁盘设备通过FLOGI(Fabric Login)协议向FC交换机进行注册,注册报文中会携带Port WWN、Node WWN、期望得到的FC地址等信息,FC交换机为与之直连的每个节点设备分配FC地址。
(2) 服务器和磁盘设备向其直连的FC交换机发送名称服务注册请求,注册其名称服务信息。名称服务信息包括节点设备的FC4信息等(关于FC4信息的详细介绍请参见“5.13 配置和探测发现节点设备的FC4信息”)。最终,Fabric网络中的每台FC交换机上都保存着所有节点设备的名称服务信息。
(3) 当服务器要访问磁盘设备时,服务器要向其直连的FC交换机发送名称服务查询请求,获取Fabric网络中存在的磁盘设备列表,以及这些磁盘设备的WWN、FC地址等信息。
(4) 服务器获取到磁盘设备的FC地址后,就可以将FC报文发送给就近的FC交换机。FC报文的目的FC地址就是磁盘设备的FC地址。
(5) FC交换机收到服务器发送来的FC报文后,根据报文中的目的FC地址查找转发表(该转发表是FC交换机根据FC路由协议或配置的静态路由信息计算后生成的),选择数据转发路径,将报文转发到下一跳FC交换机。下一跳FC交换机同样对FC报文进行转发,直到最后一跳FC交换机将FC报文转发给目的磁盘设备。
在实际应用中,若是所有用户的数据都在同一个FC SAN网络中进行转发,则不利于数据安全。用户可以根据实际需要将物理上连通的FC SAN网络划分为多个VSAN(Virtual Storage Area Network,虚拟SAN),每个VSAN相互隔离,并独立提供服务,增强了网络的适应性、安全性,使其能够为用户提供更有效的服务。
VSAN的划分实现了将一个物理连通的SAN分割成多个逻辑上的虚拟SAN,但仅通过VSAN却不能对接入Fabric网络的服务器及磁盘设备(即N_Port)进行访问控制。相同VSAN内的N_Port,只要注册了名称服务就可以相互访问,即一台服务器可以访问VSAN内的任意磁盘,这样给数据安全带来隐患。
Zone特性可以有效解决上述问题,其原理是:在VSAN内进一步划分区域(Zone),在Zone内根据不同的目的添加不同的N_Port成员。使不同Zone内的N_Port成员之间相互隔离,以达到访问控制的目的。
采用FC SAN技术的数据中心一般包括独立的LAN(Local Area Network,局域网)网络和SAN网络。LAN网络应用于传统的以太网/IP业务,SAN网络应用于网络存储。
为了同时为LAN网络提供服务并通过SAN网络完成存储功能,服务器需要使用独立的以太网卡和FC网卡,且以太网交换机和FC交换机及其对应网络连接线也是独立的。这就使得网络需要使用较多的交换机和网卡及线缆,对应的设备投资及维护工作量都比较大,可扩展性比较差。
FCoE(Fibre Channel over Ethernet,基于以太网的光纤通道)协议可以很好的解决上述问题。FCoE是将FC协议承载在以太网上的一种协议。在FCoE解决方案中,服务器只要使用支持FCoE协议的以太网卡即可,而支持FCoE协议的FCF(FCoE Forwarder)交换机可以同时替换传统以太网交换机和FC交换机,实现I/O整合(I/O Consolidation),使网卡、交换机和连接线缆的数量大为减少,同时减轻网络运行的维护工作量,降低总体成本。
图1-5 FCoE实现I/O整合示意图
如图1-5所示,在传统组网中,服务器分别通过以太网接口和FC接口接入到LAN网络和SAN网络。而在FCoE组网中,服务器可以通过支持FCoE协议的以太网卡连接到支持FCoE协议的存储交换机FCF switch上(服务器和FCF switch之间的链路可以同时收发以太网报文和FC报文),然后FCF switch通过以太网接口接入到LAN网络,通过FC接口接入到SAN网络中。
FCoE的典型应用如图1-6所示。FCF交换机和ENode(ENode是支持在以太网上传输FC协议的节点设备,包括服务器、磁盘设备)之间的以太网链路可以同时收发以太网报文和FC报文。在以太网链路上收发FC报文就是通过FCoE协议实现的。
图1-6 FCoE典型组网图
在介绍FCoE的工作机制之前,先介绍几个基本概念。
VFC接口是FCF交换机上手工创建的虚拟逻辑口,它虚拟实现物理FC接口的功能。
必须将VFC接口和具体的物理以太网接口进行绑定,VFC接口才能正常工作。
VFC接口可以和ENode相连,也可以和FCF交换机相连。
VFC接口支持三种模式:E模式、F模式、NP模式。默认为F模式。
VN接口是ENode上的虚拟逻辑口,它虚拟实现物理FC接口的功能。
FIP(FCoE Initialization Protocol,FCoE初始化协议)是一个建立和维护虚链路的协议。
FCF交换机和ENode(或FCF交换机)之间通过FIP协议在VFC接口和VN接口(或VFC接口)之间建立一条虚链路,为FC报文在以太网上承载提供物理传输的基础。
FC报文需要封装在以太网报文中,才能在以太网链路上传输。封装以太网头的FC报文就是FCoE报文。
FCoE报文采用Ethernet II类型的以太网封装,以太网头中主要字段的内容如下:
· 以太网报文类型:0x8906。
· 目的MAC地址/源MAC地址:对于交换机,使用的是交换机的FCoE MAC地址(可以通过display fcoe命令查看)。对于节点设备,使用的是节点设备的FPMA(Fabric Provided MAC Address,Fabric提供的MAC地址)。FPMA由FC-MAP和VN接口的FC地址映射得到,映射方法为FC-MAP为高24位,FC地址为低24位,如图1-7所示。其中,FC-MAP采用直连交换机的FC-MAP值,该值默认为0x0EFC00,可以在交换机上通过fcoe fcmap命令修改。
图1-7 FPMA地址映射
下面将详细介绍FCoE协议的工作机制。
图1-8 ENode和FCF交换机的内部框图
本文仅介绍FCF交换机上和FCoE协议相关的内容,不介绍ENode上和FCoE协议相关的内容。
FC报文在以太网上的发送和接收过程如下:
· 在发送FC报文之前,FCF交换机和ENode(或FCF交换机)之间先通过FIP协议在VFC接口和VN接口(或VFC接口)之间建立一条虚链路。在虚链路建立起来之后,FCF交换机将FC报文封装成FCoE报文发送出去。
· FCF交换机在接收到FCoE报文之后,剥离FCoE报文的以太网头,将还原后的FC报文送给上层进行处理。
FIP协议用来建立和维护VFC接口和VN接口(或VFC接口)之间的虚链路。
FIP协议中用到两类报文:发现请求报文、发现通告报文。其中,发现通告报文又分为两种:
· 请求发现通告报文:用来回应发现请求报文。
· 非请求发现通告报文:周期性发送,用来通告自己的存在或维护建立的虚链路。
下面以FCF交换机和ENode之间建立虚链路的过程为例,介绍一下FIP协议的工作机制。
图1-9 FIP协议工作机制
如图1-9所示,虚链路的建立过程为:
(1) ENode向外发送发现请求报文,开始建立虚链路。发现请求报文中携带着自己的FCoE MAC地址。
(2) FCF交换机收到发现请求报文后,根据VFC接口是否绑定FCoE MAC地址做不同的处理:
· 如果VFC接口没有配置绑定FCoE MAC地址,则学习FCoE MAC,即保存该报文中携带的FCoE MAC地址,并回应请求发现通告报文。请求发现通告报文的fcf priority字段中携带了VFC接口的FCF优先级。
· 如果VFC接口配置了绑定FCoE MAC地址,则检查FCoE MAC,如果该报文中携带的FCoE MAC地址与配置的绑定FCoE MAC地址一致,则回应请求发现通告报文(请求发现通告报文的fcf priority字段中携带了VFC接口的FCF优先级);否则,丢弃该报文,不继续做其他处理。
(3) FCF交换机周期性向外发送非请求发现通告报文(发送周期可以通过fcoe fka-adv-period命令配置,缺省值为8秒)。非请求发现通告报文的fcf priority字段中携带了系统的FCF优先级。
(4) ENode收到发现通告报文后,根据发现通告报文中的fcf priority字段选择优先级最高的FCF,并向该FCF发送FLOGI报文,进行注册。
(5) FCF交换机接收到FLOGI报文后,根据绑定的或者学习到的FCoE MAC地址做检查。如果检查通过则回应FLOGI LS_ACC,此时虚链路完成建立;如果检查没有通过则丢弃该报文,不继续做其他处理。
(6) FCF交换机周期性发送非请求发现通告报文来维护建立的虚链路。如果ENode在2.5倍的fka-adv-period间隔内没有接收到非请求发现通告报文,则删除该虚链路。
交换机支持下面几种FCoE模式:
· FCF模式:工作在本模式的交换机称为FCF交换机,其VFC接口支持E模式和F模式,分别称为E_Port和F_Port。
· NPV模式:工作在本模式的交换机称为NPV交换机,其VFC接口支持F模式和NP模式,分别称为F_Port和NP_Port。
· Transit模式:工作在本模式的交换机称为Transit交换机,其以太网接口可工作在ENode模式或FCF模式。
具有FCoE功能的交换机可工作在以下模式:FCF模式、NPV模式、Transit模式、非FCoE模式。
· 当交换机工作在FCF模式时,可通过E_Port连接其它FCF交换机的E_Port,或使用F_Port连接节点设备的N_Port或NPV交换机的NP_Port。
· 当交换机工作在NPV模式时,可通过F_Port连接节点设备的N_Port,或使用NP_Port连接FCF交换机的F_Port。
· 当交换机工作在Transit模式时,可通过配置以太网接口为ENode模式或FCF模式,用于限制以太网接口只能接收来自ENode或FCF交换机的通信流量。
· 当交换机工作在非FCoE模式时,交换机为普通交换机,不具备任何FCoE相关的功能。
下面将详细介绍各FCoE模式的应用场景。
支持FCoE协议的FCF交换机利用以太帧封装FC报文的方式,实现了用FCoE虚链路替代物理的FC链路,从而可在无损以太网中提供标准Fibre Channel交换机的能力和特性。
FCF的应用组网如图1-10所示,不同于单纯的FC网络,在FCoE环境下,ENode和FCF交换机是通过以太网接口在无损以太网上通信的。FCoE虚链路连接VN接口到VFC接口,或者连接VFC接口到VFC接口。
与FC交换机相同,每台FCF交换机都会被分配一个域ID,而每个FC SAN最多支持239个域ID,因此也就限制了一个FC SAN中最多只能有239台交换机。
在FC SAN中,对于直接连接节点设备的边缘交换机的需求量很大,为了使边缘交换机可以突破一个FC SAN中239台最大交换机数目的限制,开发了NPV(N_Port Virtualization,N端口虚拟化)模式的交换机,简称NPV交换机。
图1-11 NPV应用组网
NPV的应用组网如图1-11所示。NPV交换机位于Fabric网络边缘,在节点设备与核心交换机之间。核心交换机是工作在FCF模式的交换机。NPV交换机通过F_Port和节点设备的N_Port相连,通过NP_Port和核心交换机的F_Port相连。最终,节点设备通过NPV交换机接入到Fabric网络中,NPV交换机将所有节点设备的流量转发到核心交换机。
对于节点设备来说,NPV交换机相当于一台FCF模式的交换机,接口呈现为F模式;对于核心交换机来说,NPV交换机相当于一台节点设备,接口呈现为N模式。
FCoE协议支持在无损以太网中构建FC SAN,增加了FC SAN的组网灵活性,FCF交换机与节点设备之间可以增加Transit交换机。如图1-12所示,ENode通过Transit交换机接入FCF交换机。
图1-12 Transit应用组网
Transit交换机上的以太网接口有两种模式:FCF模式和ENode模式。与ENode相连的以太网接口需要配置为ENode模式;与FCF交换机相连的以太网接口需要配置为FCF模式。
Transit交换机级联时需保证以太网接口模式的正确性。如图1-13上的模式配置,ENode 2仅能通过FCF交换机2进行注册,不能通过FCF交换机1进行注册。如果ENode 2有向FCF交换机1进行注册的需求,则需要修改Transit交换机间的模式配置。
图1-13 Transit交换机级联组网
图1-14所示为NPV交换机和Transit交换机的正确组网,NPV交换机的位置在FCF交换机和Transit交换机之间,Transit交换机下游接入ENode。
图1-14 NPV、Transit交换机组网
相较于FCF以及NPV模式的交换机,工作于Transit模式的交换机对FCoE协议报文的处理更为简单,其主要功能是过滤和转发。但不同于普通以太网交换机的是,工作在Transit模式的交换机具有识别FCoE协议报文、控制网络中FCoE协议相关报文流量以及保障网络安全的能力。
与FC、FCoE相关的协议规范有:
· FC-FS-3:Fibre Channel - Framing and Signaling - 3
· FC-SW-5:Fibre Channel - Switch Fabric - 5
· FC-LS-2:Fibre Channel - Link Services - 2
· FC-GS-6:Fibre Channel - Generic Services - 6
· FC-BB-5:Fibre Channel - Back Bone – 5
· FCoE功能受License限制,请在使用FCoE功能前,安装有效的License。关于License的详细介绍请参见“基础配置指导”中的“License管理”。
· 设备只有工作在高级模式下,才支持FCoE功能。关于设备工作模式的详细介绍请参见“基础配置指导”中的“设备管理”。
交换机支持三种FCoE模式:FCF模式、NPV模式、Transit模式。在不同FCoE模式下,交换机所支持的FCoE功能不同,具体情况如表2-1所示。用户可以根据交换机的FCoE模式来选择配置不同的FCoE功能。
表2-1 交换机工作在不同FCoE模式下所支持的FCoE功能
FCoE模式 FCoE功能 |
FCF模式 |
NPV模式 |
Transit模式 |
支持 |
支持 |
不支持 |
|
不支持 |
不支持 |
支持 |
|
支持 |
仅支持功能: 其余功能均不支持 |
不支持 |
|
支持 |
支持 |
不支持 |
|
支持 |
支持如下功能: · 显示FC路由表信息 · 显示FC FIB表项信息 · 显示FC Exchange表项信息 其余功能均不支持 |
不支持 |
|
支持 |
不支持 |
不支持 |
|
不支持 |
支持 |
不支持 |
|
支持 |
不支持 |
不支持 |
|
支持 |
不支持 |
不支持 |
具有FCoE功能的交换机可工作在以下模式:FCF模式、NPV模式、Transit模式、非FCoE模式。交换机只能从非FCoE模式切换至三种FCoE模式,或从三种FCoE模式切换为非FCoE模式,三种FCoE模式之间不能直接切换。当需要修改FCoE模式时,必须首先切换至非FCoE模式。切换为非FCoE模式后,原有FCoE模式下的所有FCoE相关配置将会被清空。
表2-2 配置交换机的FCoE模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置交换机的FCoE模式 |
fcoe-mode { fcf | npv | transit } |
缺省情况下,交换机工作在非FCoE模式,即不具备任何FCoE相关的功能 |
显示交换机的FCoE模式 |
display fcoe-mode |
display命令可以在任意视图执行 |
表3-1 VFC接口和FIP协议配置任务简介
配置任务 |
说明 |
详细配置 |
配置VFC接口 |
必选 |
|
开启VLAN的FCoE功能,并指定映射VSAN |
必选 |
|
配置FC-MAP值 |
可选 |
|
配置fka-adv-period值 |
可选 |
|
配置FCF优先级 |
可选 |
表3-2 配置VFC接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VFC接口,并进入VFC接口视图 |
interface vfc interface-number |
- |
配置VFC接口的模式 |
fc mode { e | f | np } |
缺省情况下,VFC接口的模式为F模式 · 当交换机工作在FCF模式时,VFC接口支持E、F模式 · 当交换机工作在NPV模式时,VFC接口支持F、NP模式 |
将VFC接口绑定到以太网接口 |
bind interface interface-type interface-number [ mac mac-address ] |
缺省情况下,VFC接口没有与以太网接口绑定 VFC接口通过所绑定的以太网接口发送和接收报文 |
将VFC接口以Trunk方式加入VSAN,即允许指定的VSAN通过当前接口 |
port trunk vsan vsan-id |
缺省情况下,接口不以Trunk方式加入任何VSAN |
(可选)配置VFC接口的描述信息 |
description text |
缺省情况下,接口的描述信息为“该接口的接口名 Interface”,例如:Vfc1 Interface |
(可选)配置VFC接口的期望带宽 |
bandwidth bandwidth-value |
缺省情况下,VFC接口的期望带宽=接口的波特率÷1000(kbit/s) |
(可选)恢复VFC接口的缺省配置 |
default |
- |
开启VFC接口 |
undo shutdown |
缺省情况下,VFC接口处于打开状态 |
在通过VFC接口发送报文时,其绑定的以太网接口可能同时允许多个VLAN的报文通过,因此需要开启某个VLAN的FCoE功能,并将该VLAN与某VSAN进行映射,这样映射VSAN内的报文会被打上该VLAN的Tag,在该VLAN内进行发送。
配置本功能时需要注意:
· 不能在VLAN 1内开启FCoE功能。
· VLAN与VSAN是一一对应的,一个VLAN只能映射一个VSAN,一个VSAN也只能被一个VLAN映射。
· 通信两端的设备必须在相同VLAN内开启FCoE功能,并将该VLAN映射到同一个VSAN。
· 用户需保证VFC接口绑定的以太网接口允许开启FCoE功能的VLAN通过。
开启某VLAN的FCoE功能后,该VLAN会有如下变化:
· 该VLAN内仅转发FCoE流量,不转发其他业务流量,例如IP流量。
· 该VLAN内的成员端口之间被设置为二层隔离,不会形成广播环路,因此,FCoE VLAN内不需要运行STP协议或其他环路检测协议,否则可能会导致FCoE转发链路被阻塞。
· 该VLAN内可以运行二层协议,但由于成员端口之间被设置为二层隔离,二层协议运行状态会按照端口隔离拓扑运行。
表3-3 开启VLAN的FCoE功能,并指定映射VSAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
开启VLAN的FCoE功能,并指定映射VSAN的ID |
fcoe enable [ vsan vsan-id ] |
缺省情况下,VLAN的FCoE功能处于关闭状态 |
FC-MAP值用来标识一个FCoE网络,同一个FCoE网络中的所有的交换机必须具有相同的FC-MAP值。
配置FC-MAP值后,VFC接口会重新进行协商。两端都配置相同的FC-MAP值才能够协商成功。
表3-4 配置FC-MAP值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置FC-MAP值 |
fcoe fcmap fc-map |
缺省情况下,FC-MAP值为0x0EFC00 |
fka-adv-period值的作用如下:
· 虚链路建立以后,在E模式VFC接口上,交换机以fka-adv-period为间隔周期性向外发送非请求发现通告报文来维护建立的虚链路,非请求发现通告报文中携带fka-adv-period值。对端交换机收到非请求发现通告报文后,维持虚链路的状态,并记录fka-adv-period值。如果交换机在2.5倍的fka-adv-period间隔(收到的非请求发现通告报文中携带的值,非本机配置的值)内没有收到非请求发现通告报文,则删除该虚链路。
· 虚链路建立以后,在F模式VFC接口上,交换机以fka-adv-period为间隔周期性向外发送非请求发现通告报文来维护建立的虚链路,非请求发现通告报文中携带fka-adv-period值。对端ENode收到非请求发现通告报文后,维持虚链路的状态,并记录fka-adv-period值。如果ENode在2.5倍的fka-adv-period间隔内没有收到非请求发现通告报文,则删除该虚链路。同时ENode使用记录的fka-adv-period间隔周期性发送保活报文,交换机收到保活报文后,维持虚链路的状态。如果交换机在2.5倍的fka-adv-period间隔内没有收到保活报文,则删除该虚链路。
· NP模式的VFC接口与ENode的行为相同,不受本交换机配置的fka-adv-period值的影响,使用从对端交换机学习到的fka-adv-period值。
配置fka-adv-period值时,需要注意,FC-BB-5标准中规定,fka-adv-period取值上限为90秒,本系列交换机的fka-adv-period配置上限为600秒,超出了协议规定的取值范围。因此,当本系列交换机与服务器、存储设备或其他厂商交换机互通时,配置的fka-adv-period值不能超出90秒。
表3-5 配置fka-adv-period值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置fka-adv-period值 |
fcoe fka-adv-period fka-adv-period |
缺省情况下,fka-adv-period值为8秒 |
FCF优先级分为两种:系统的FCF优先级、VFC接口的FCF优先级。应用场合如下:
· 发送非请求发现通告报文时,报文中的fcf priority字段将填写系统的FCF优先级的值。
· 发送请求发现通告报文时,报文中的fcf priority字段将填写VFC接口的FCF优先级的值。
ENode在收到多个FCF发送的发现通告报文的情况下,将从这些发现通告报文中选择fcf priority优先级最高的FCF,并向其发送FLOGI报文,进行注册。
FCF优先级仅在VFC接口为F模式时生效,即仅在与ENode相连的VFC接口上才有效。
表3-6 配置系统的FCF优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置系统的FCF优先级 |
fcoe global fcf-priority priority |
缺省情况下,系统的FCF优先级为128 本配置对所有F模式的VFC接口生效 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置VFC接口的FCF优先级 |
fcoe fcf-priority priority |
缺省情况下,VFC接口的FCF优先级为128 本配置仅在VFC接口为F模式时生效,在E模式下可以配置,但不生效 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VFC接口和FIP协议的运行情况,通过查看显示信息验证配置的效果。
表3-8 VFC接口和FIP协议显示和维护
操作 |
命令 |
显示VFC接口的相关信息 |
display interface [ vfc ] [ brief [ down ] ] display interface [ vfc [ interface-number ] ] [ brief [ description ] ] |
显示FCoE全局配置相关信息 |
display fcoe |
清除VFC接口的统计信息 |
reset counters interface [ vfc [ number ] ] |
在构建一个包含LAN网络和SAN网络的数据中心时,为了节省设备、网卡和线缆的数量,采用FCoE解决方案。
图3-1 配置VFC接口和FIP协议组网图
下面给出FCF交换机上VFC接口和FIP协议相关的配置。
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式并创建VSAN 10。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 10
[SwitchA-vsan10] quit
# 全局开启LLDP功能。
[SwitchA] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/1上开启LLDP功能,并允许发布DCBX TLV。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/1] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchA] acl number 4000
[SwitchA-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchA-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchA-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchA] traffic classifier app_c operator or
[SwitchA-classifier-app_c] if-match acl 4000
[SwitchA-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchA] traffic behavior app_b
[SwitchA-behavior-app_b] remark dot1p 3
[SwitchA-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchA] qos policy plcy
[SwitchA-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchA-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/1的出方向上应用策略plcy。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchA] qos map-table dot1p-lp
[SwitchA-maptbl-out-dot1p-lp] import 3 export 3
[SwitchA-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/1上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr 3 group sp
# 在以太网接口Ten-GigabitEthernet1/0/1上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/1] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC1。
[SwitchA] interface vfc 1
# 配置虚接口VFC1工作在F模式。
[SwitchA-Vfc1] fc mode f
# 将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上。
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
# 将虚接口VFC1以Trunk方式加入VSAN 10,即允许VSAN 10的报文通过本接口。
[SwitchA-Vfc1] port trunk vsan 10
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 20的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 20
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2。
[SwitchA] interface vfc 2
# 配置虚接口VFC2工作在E模式。
[SwitchA-Vfc2] fc mode e
# 将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上。
[SwitchA-Vfc2] bind interface ten-gigabitethernet 1/0/2
# 将虚接口VFC2以Trunk方式加入VSAN 10,即允许VSAN 10的报文通过本接口。
[SwitchA-Vfc2] port trunk vsan 10
[SwitchA-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 20的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 20
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 20的FCoE功能、并将其与VSAN 10进行映射。
[SwitchA] vlan 20
[SwitchA-vlan20] fcoe enable vsan 10
[SwitchA-vlan20] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式并创建VSAN 10。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 10
[SwitchB-vsan10] quit
# 创建虚接口VFC2。
[SwitchB] interface vfc 2
# 配置虚接口VFC2工作在E模式。
[SwitchB-Vfc2] fc mode e
# 将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上。
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
# 将虚接口VFC2以Trunk方式加入VSAN 10,即允许VSAN 10的报文通过本接口。
[SwitchB-Vfc2] port trunk vsan 10
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 20的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 20
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 20的FCoE功能、并将其与VSAN 10进行映射。
[SwitchB] vlan 20
[SwitchB-vlan20] fcoe enable vsan 10
[SwitchB-vlan20] quit
在FC Fabric网络中,节点设备必须向Fabric注册后才能和FC SAN中设备进行通信。节点设备和FC交换机之间的物理连接是点对点的,只有节点设备成功注册后,FC交换机上连接这个节点设备的接口才能up,所以FC交换机可以控制只有成功注册的节点设备才可以和FC SAN中的设备进行通信。
FCoE增加了组网的灵活性,在ENode和FCF交换机之间可以存在Transit交换机,这就使得FCF交换机和ENode之间的物理连接不再是点对点连接,这样则会出现即使没有注册的ENode设备也可能通过FCF交换机和FC SAN中的设备进行通信。比如,两个ENode通过一台Transit交换机接入到同一台FCF交换机,其中一个ENode在FCF交换机上成功注册后,FCF交换机上的接口变为up,此时,另外一个没有注册的ENode就可以通过该FCF交换机和FC SAN中的设备进行通信了。
FIP Snooping(FCoE Initialization Protocol Snooping,FCoE初始化探测协议)可以解决上述问题,它是应用在FCoE网络边缘设备上的一种安全特性,该特性只能运行在Transit交换机上。FIP Snooping通过对报文MAC地址的检查来限定ENode发送的报文仅能转发给FCF交换机,不能转发给ENode,且只有成功注册的ENode发送的FCoE报文才能被Transit交换机转发给FCF交换机,以及限定FCF交换机发送的FCoE报文仅能被Transit交换机转发给已经注册的ENode。
FIP Snooping典型组网如图4-1所示。ENode通过Transit交换机接入FCF交换机。
Transit交换机上的以太网接口有两种模式:FCF模式和ENode模式。与ENode相连的以太网接口需要配置为ENode模式;与FCF交换机相连的以太网接口需要配置为FCF模式。
在Transit交换机上开启FIP Snooping功能,并将以太网接口配置为正确的模式后,就可以控制ENode和FCF交换机之间报文的交互,以达到安全接入和通信的目的。
开启VLAN的FIP Snooping功能后,Transit交换机上的以太网接口开始根据FIP协议报文(以太网报文类型为0x8914)来建立FIP Snooping规则,然后根据FIP Snooping规则来控制FCoE报文(以太网报文类型为0x8906)的转发。
为方便描述,做如下定义:
· FCF模式以太网接口生成的FIP Snooping规则称为FCF FIP Snooping规则。
· ENode模式以太网接口生成的FIP Snooping规则称为ENode FIP Snooping规则。
FIP Snooping规则是在ENode和FCF交换机之间通过FIP协议建立虚链路的过程中建立的,其建立过程简单描述如下:
(1) Transit交换机FCF模式以太网接口收到FCF交换机的非请求发现通告报文后,据其生成FCF FIP Snooping规则并将该报文转发给ENode。生成的FCF FIP Snooping规则为:允许源MAC地址为该非请求发现通告报文中的源MAC地址(即FCF交换机的FCoE MAC地址)、目的MAC地址高三个字节为FC-MAP的FCoE报文通过。
(2) Transit交换机ENode模式以太网接口收到ENode向FCF交换机发送的发现请求报文后,转发该报文给FCF交换机。
(3) Transit交换机ENode模式以太网接口接收到FIP FLOGI请求报文后,将该报文转发给FCF交换机。
(4) Transit交换机ENode模式以太网接口在转发来自FCF交换机的FLOGI LS_ACC报文时,据其获取FCF交换机分配给ENode的FC地址以及FCF交换机的FCoE MAC地址,并生成ENode FIP Snooping规则。该规则允许源MAC地址为FC地址对应的MAC地址(即高三个字节为FC-MAP,低三个字节为FC地址)、目的MAC地址为FCF交换机的FCoE MAC地址的FCoE报文通过。
FIP Snooping规则建立后,如果虚链路存在,则规则会一直存在;如果虚链路被删除,则规则会被同步删除。
建立FIP Snooping规则后,Transit交换机就可以根据FIP Snooping规则来控制ENode和FCF交换机之间FCoE报文的转发:对于接收的FCoE报文,如果能够匹配学习到的FIP Snooping规则则转发,否则,丢弃该FCoE报文。从而,可以保证只有成功注册的ENode可以和FCF交换机进行FCoE报文的交互。
只有Transit交换机支持FIP Snooping功能。
表4-1 FIP Snooping配置任务简介
配置任务 |
说明 |
详细配置 |
开启FIP Snooping功能 |
必选 |
|
配置以太网接口的模式 |
必选 |
|
配置FC-MAP值 |
可选 |
开启VLAN的FIP Snooping功能后,Transit交换机开始根据FIP协议报文建立FIP Snooping规则,然后根据FIP Snooping规则来控制FCoE报文的转发。
表4-2 开启FIP Snooping功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
开启FIP Snooping功能 |
fip-snooping enable |
缺省情况下,FIP Snooping功能处于关闭状态 |
Transit交换机上的以太网接口有两种模式:FCF模式和ENode模式。与ENode相连的以太网接口需要配置为ENode模式;与FCF交换机相连的以太网接口需要配置为FCF模式。
表4-3 配置以太网接口的模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图/二层聚合接口视图 |
interface interface-type interface-number |
- |
配置以太网接口的模式 |
fip-snooping port-mode { enode | fcf } |
缺省情况下,以太网接口为ENode模式 |
FC-MAP值用来标识一个FCoE网络,同一个FCoE网络中的所有交换机(包括FCF交换机和Transit交换机)必须具有相同的FC-MAP值。
Transit交换机上某VLAN中的以太网接口从FCF交换机接收到报文后,会检查接收报文的FC-MAP值(此FC-MAP值可以在FCF交换机上通过fcoe fcmap命令配置)和Transit交换机上该VLAN下配置的FC-MAP值是否一致:如果一致,则转发报文;如果不一致,则丢弃报文。
表4-4 配置FC-MAP值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置FC-MAP值 |
fip-snooping fc-map fc-map |
缺省情况下,FC-MAP值为0x0EFC00 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后FIP Snooping的运行情况,通过查看显示信息验证配置的效果。
表4-5 FIP Snooping显示和维护
操作 |
命令 |
显示Transit交换机获取到的ENode信息 |
display fip-snooping enode [ vlan vlan-id ] |
显示Transit交换机获取到的FCF交换机信息 |
display fip-snooping fcf [ vlan vlan-id ] |
显示已经下刷的FIP Snooping规则(独立运行模式) |
display fip-snooping rules [ enode | fcf ] [ vlan vlan-id ] [ slot slot-number ] |
显示已经下刷的FIP Snooping规则(IRF模式) |
display fip-snooping rules [ enode | fcf ] [ vlan vlan-id ] [ chassis chassis-number slot slot-number ] |
显示正在下刷的FIP Snooping规则 |
display fip-snooping flushing-rules [ enode | fcf ] [ vlan vlan-id ] |
显示FIP Snooping的会话信息,即ENode和FCF交换机的连接信息 |
display fip-snooping sessions [ vlan vlan-id ] |
网络由两台分别工作在Transit模式和FCF模式的交换机以及ENode节点组成。
要求配置FIP Snooping功能,使ENode和FCF交换机之间可以进行可靠的通信。
图4-2 配置FIP Snooping组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FcoE模式为Transit模式。
<SwitchA> system-view
[SwitchA] fcoe-mode transit
# 创建VLAN 10并开启VLAN 10的FIP Snooping功能。
[SwitchA] vlan 10
[SwitchA-vlan10] fip-snooping enable
[SwitchA-vlan10] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过,并将该接口配置为ENode模式。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-mode bridge
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] fip-snooping port-mode enode
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过,并将该接口配置为FCF模式。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-mode bridge
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/2] fip-snooping port-mode fcf
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 配置VLAN 10的FC-MAP值为0x0EFC01。
[SwitchA] vlan 10
[SwitchA-vlan10] fip-snooping fc-map 0efc01
[SwitchA-vlan10] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FcoE模式为FCF模式。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
# 配置FC-MAP值为0x0EFC01。
[SwitchB] fcoe fcmap 0efc01
# 创建VSAN 10。
[SwitchB] vsan 10
[SwitchB-vsan10] quit
# 创建虚接口VFC2,并配置虚接口VFC2工作在F模式。
[SwitchB] interface vfc 2
[SwitchB-Vfc2] fc mode f
# 将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上。
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
# 将虚接口VFC2以Trunk方式加入VSAN 10,即允许VSAN 10的报文通过本接口。
[SwitchB-Vfc2] port trunk vsan 10
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-mode bridge
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 10进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 10
[SwitchB-vlan10] quit
# 显示Switch A获取到的ENode信息。
[SwitchA] display fip-snooping enode
Interface ENode WWN ENode MAC
XGE1/0/1 10:00:00:11:22:00:0d:01 0000-1234-0d01
# 显示Switch A获取到的FCF交换机信息。
[SwitchA] display fip-snooping fcf
Interface FCF MAC FCF WWN Fabric Name ENode
XGE1/0/2 0000-1234-0e01 10:00:00:11:22:00:0e:01 10:00:00:11:22:00:0e:01 1
# 显示FIP Snooping的会话信息。
[SwitchA] display fip-snooping sessions
FCF MAC ENode MAC VN_Port MAC VN_Port WWN
0000-1234-0e01 0000-1234-0d01 0efc-0001-0000 af:10:01:11:22:00:0d:01
# 显示已经下刷的FIP Snooping规则。
[SwitchA] display fip-snooping rules
Interface Source MAC/Mask Destination MAC/Mask Context
XGE1/0/2 0000-1234-0e01/48 0efc-0000-0000/24 ffffffff
Interface Source MAC/Mask Destination MAC/Mask Context
XGE1/0/1 0efc-0001-0000/48 0000-1234-0e01/48 ffffffff
Fabric网络为服务器和磁盘设备提供数据传输服务。通过Fabric网络传输数据之前,必须为Fabric网络中的每台FCF交换机分配域ID、为Fabric网络连接的每个节点设备分配FC地址。
如图5-1所示,Fabric网络可以通过以下两种方式建立:
· 动态方式:网络中的交换机先自动选举出主交换机,然后由主交换机为网络中的所有交换机分配域ID,最后由各交换机为与之相连的N_Port分配FC地址。此方式适用于规模较大的网络,可以对整个网络进行集中管理。
· 静态方式:不需要选举主交换机来分配域ID,而是由用户在保证域ID互不冲突的前提下,手工为网络中的每台交换机分别指定域ID,然后由各交换机为与之相连的N_Port分配FC地址。此方式适用于组网结构简单、规模较小的网络,可以有效避免不必要的网络震荡。
下面将详细描述Fabric网络建立的每个过程。
在Fabric网络的动态建立过程中,主交换机用来为网络中的所有交换机分配域ID。
在主交换机选举过程中,优先级最高的交换机将被选举为主交换机。如果多台交换机优先级相同,则选择交换机WWN最小的那台交换机作为主交换机。
主交换机的选举过程如下:
(1) 在开始主交换机选举时,所有交换机都认为自己是主交换机,记录本机信息为主交换机信息,同时启动超时时间为10秒的PSST(Principal Switch Selection Timer,主交换机选举定时器)定时器。
(2) 在PSST定时器超时前,交换机间通过交换携带有各自记录的主交换机信息的报文来选举主交换机。收到报文后,将本机记录的主交换机的优先级和WWN与报文中携带的主交换机的优先级和WWN进行比较,如果报文中携带的优先级更高,或者优先级相同但是WWN更小,则将本机的主交换机信息更新为报文中携带的主交换机信息,并通知其它交换机。最后,网络中所有交换机记录的主交换机信息将达成一致。
(3) 在PSST定时器超时后,如果记录的主交换机信息和本机信息一样,则该交换机成为主交换机。
主交换机选举出来后,主交换机的WWN作为Fabric网络的名称。
在主交换机选举过程中,交换机若收到导致更新本机记录的主交换机信息的报文,则记录收到该报文的E_Port,此E_Port对应的链路称为上游主链路。
前面已经说过,一台交换机以及其直连的N_Port形成一个域,每个域需要分配一个域ID。
FCF交换机可以自动分配域ID,也可通过配置静态指定域ID。
· 如果通过静态配置指定域ID,则需要为Fabric网络中的每台交换机都指定域ID,且每台交换机的域ID必须是唯一的。
· 如果动态分配域ID,则Fabric网络中的交换机会自动完成主交换机选举、域ID分配的过程。当主交换机被选举出来之后,由主交换机负责为网络中的每台交换机分配域ID。每一台交换机都会有一个唯一的域ID。
动态分配域ID的过程如下:
(1) 主交换机首先为自己分配域ID。如果主交换机上预先配置了自己想要获取的域ID,则主交换机将给自己分配该域ID;否则,主交换机将给自己分配最小可以分配的域ID。主交换机给自己分配域ID后通知其下游交换机开始向其申请域ID。
(2) 下游交换机收到通知后,开始向主交换机申请域ID。如果下游交换机上配置了自己想要获取的域ID,则下游交换机将向主交换机申请该域ID。
(3) 主交换机在收到下游交换机的域ID申请后,给下游交换机分配域ID,并通知下游交换机。在分配域ID时:
· 如果下游交换机申请指定的域ID而且该域ID没有被主交换机分配出去,则主交换机将为之分配该域ID。
· 如果下游交换机没有申请指定的域ID或者主交换机无法为之分配指定的域ID,则主交换机将为之分配最小可以分配的域ID。
· 如果所有可以分配的域ID都已经分配出去,则主交换机将通知下游交换机无法完成分配。
(4) 下游交换机在收到主交换机分配的域ID通知后:
· 如果下游交换机上配置了static模式的域ID(关于域ID模式的详细介绍请参见“5.7 配置域ID”),并且该域ID与主交换机为之分配的域ID不一样,或者主交换机通知无法完成分配,则下游交换机将隔离上游主链路(上游主链路对应的接口的状态变为down)。
· 否则,下游交换机接受主交换机分配的域ID,并通知其相邻的下游交换机开始向主交换机申请域ID。
(5) 重复步骤(2)~(4),直到所有的下游交换机都获得域ID。
在动态分配域ID过程中,交换机若收到申请域ID的请求报文,则记录收到该报文的E_Port,此E_Port对应的链路称为下游主链路。
当交换机获取到域ID之后,便可以为与其直连的N_Port分配FC地址。
FC地址中Domain_ID字段的值就是与N_Port相连的交换机的域ID,不需要分配;Area_ID和Port_ID字段的值由交换机统一分配,分配原则如下:
· 如果配置了N_Port的WWN和FC地址的绑定关系,则交换机为其分配绑定的FC地址。
· 如果N_Port有指定要分配的FC地址,则交换机应该尽量分配指定的FC地址;
· 如果N_Port没有指定要分配的FC地址或无法分配其指定要分配的地址,则交换机为其分配最小可以分配的Area_ID和Port_ID;
在规模较大的网络中,为了便于对网络进行集中管理,通常采用动态方式建立Fabric网络;而在组网结构简单、规模较小的网络中,为了有效避免不必要的网络震荡,通常采用静态方式建立Fabric网络。
表5-1 静态建立Fabric网络配置任务简介
配置任务 |
说明 |
详细配置 |
配置VFC接口 |
必选 |
|
关闭Fabric配置功能 |
必选 静态建立Fabric网络时,必须关闭Fabric配置功能 |
|
配置Fabric网络的名称 |
必选 静态建立Fabric网络时,必须手工配置Fabric网络的名称,并保证网络中所有交换机上配置的Fabric网络的名称相同 |
|
配置允许的域ID范围 |
可选 |
|
配置域ID |
必选 静态建立Fabric网络时,必须为每台交换机手工配置域ID |
|
配置N_Port的WWN和FC地址的绑定关系 |
可选 |
|
配置Fabric定时器 |
可选 |
|
配置RSCN聚合功能 |
可选 |
|
配置和探测发现节点设备的FC4信息 |
可选 |
表5-2 动态建立Fabric网络配置任务简介
配置任务 |
说明 |
详细配置 |
配置VFC接口 |
必选 |
|
开启Fabric配置功能 |
必选 动态建立Fabric网络时,必须开启Fabric配置功能 |
|
配置交换机的优先级 |
可选 优先级的值将影响主交换机选举 |
|
配置允许的域ID范围 |
可选 |
|
配置域ID |
可选 动态建立Fabric网络时,可以配置交换机想要获取的域ID |
|
配置N_Port的WWN和FC地址的绑定关系 |
可选 |
|
配置Fabric定时器 |
可选 |
|
配置Fabric重配置 |
可选 |
|
配置接口拒绝收到的RCF请求报文 |
可选 |
|
配置RSCN聚合功能 |
可选 |
|
配置和探测发现节点设备的FC4信息 |
可选 |
开启了Fabric配置功能后,网络中的交换机会自动选举出主交换机,然后由主交换机为网络中的所有交换机分配域ID;而关闭了Fabric配置功能后,网络中的交换机将不会进行主交换机的选举。
表5-3 开启/关闭Fabric配置功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
开启Fabric配置功能 |
domain configure enable |
在动态建立Fabric网络时,必须开启VSAN内所有交换机的Fabric配置功能;在静态建立Fabric网络时,必须关闭VSAN内所有交换机的Fabric配置功能 缺省情况下,Fabric配置功能处于开启状态 |
关闭Fabric配置功能 |
undo domain configure enable |
配置的Fabric网络的名称仅在静态建立Fabric网络时有效,并且同一VSAN中所有交换机配置的Fabric网络的名称必须一样。
表5-4 配置Fabric网络的名称
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置Fabric网络的名称 |
fabric-name name |
缺省情况下,Fabric网络的名称为空 如果用户未配置Fabric网络的名称,则协议默认使用本交换机的WWN作为Fabric网络的名称 |
FCF交换机的优先级取值范围为1~254,取值越小,优先级越高。优先级高的FCF交换机优先被选为主交换机。
优先级是按每个VSAN进行配置的,同一台FCF交换机在不同VSAN中的优先级可以不同。
交换机优先级的配置不能立即生效,需通过命令domain restart disruptive进行一次中断重配置后才能生效。
交换机的运行优先级和配置的优先级可能不同:如果Fabric网络已处于稳定状态,此时去配置交换机的优先级并不会立即生效,使用本命令查看时就有可能出现运行优先级和配置优先级不一致的情况。如果配置了优先级之后立即通过命令domain restart disruptive进行一次中断重配置,新配置的优先级就会生效。待Fabric网络稳定后:
· 对于主交换机,如果配置的优先级<=2,则运行和配置优先级一致;如果配置的优先级数值大于2,则会将运行优先级修改为2,运行和配置优先级不一致。
· 对于非主交换机,如果配置的优先级<=2,会将运行优先级修改为3,运行和配置优先级不一致;如果配置的优先级数值大于2,则运行和配置优先级一致。
表5-5 配置交换机的优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置交换机的优先级 |
priority value |
缺省情况下,交换机的优先级为128 |
配置允许的域ID范围对交换机的影响如下:
· 主交换机:只能从允许的域ID范围内分配域ID。如果配置的允许域ID范围不包含已分配的域ID和本地配置的域ID,配置均会失败。
· 非主交换机:手工配置的域ID必须在允许的域ID范围内,否则会配置失败。主交换机为本交换机分配的域ID必须在允许的域ID范围内,否则不接受所分配的域ID,并隔离连接主交换机的接口。如果交换机当前运行时域ID(动态分配或者手工指定域ID后,交换机实际使用的域ID)不在新配置的允许的域ID范围内时,也将导致配置失败。
建议一个VSAN内所有交换机配置相同的允许域ID范围。
表5-6 配置允许的域ID范围
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置交换机允许的域ID范围 |
allowed-domain-id domain-id-list |
缺省情况下,允许的域ID范围为1~239 |
在不同情况下,配置的域ID含义不同:
· 在静态建立Fabric网络的情况下,配置的域ID就是交换机的域ID。
· 在动态建立Fabric网络的情况下,配置的域ID表示交换机想要获取的域ID。
静态建立Fabric网络时,必须为每台交换机手工配置域ID。
动态建立Fabric网络时,可以配置交换机想要获取的域ID,但最后实际分配到的域ID可能和配置的域ID不同。
配置的域ID分为static和preferred两种模式:
· 在静态建立Fabric网络时,两种模式没有区别。
· 在动态建立Fabric网络时,如果非主交换机向主交换机请求分配自己想要获取的域ID失败,preferred模式下,非主交换机可以使用主交换机分配的其他域ID;static模式下,非主交换机将隔离上游主链路,不使用主交换机分配的其他域ID。
建议一个VSAN内所有交换机配置相同模式的域ID。
表5-7 配置域ID
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置交换机的域ID |
domain-id domain-id { preferred | static } |
缺省情况下,交换机的域ID为0,采用preferred模式 |
如果配置了N_Port的WWN和FC地址的绑定关系,则在该N_Port请求分配FC地址时,交换机将为之分配绑定的FC地址。
每个N_Port的WWN只能绑定一个FC地址,一个FC地址只能和一个WWN绑定。
此处的N_Port包括节点上的N_Port,以及NPV交换机上的NP_Port。
表5-8 配置N_Port的WWN和FC地址的绑定关系
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置N_Port的WWN和FC地址的绑定关系 |
wwn wwn-value area-port-id area-port-id-value |
缺省情况下,不存在绑定关系 如果要绑定的WWN对应的N_Port已经Login并分配了其他的FC地址或者要绑定的FC地址已经被分配给其他的N_Port,则不允许配置绑定关系 |
用户可以配置如下Fabric定时器的取值:分布式服务超时时间、错误检测超时时间、资源分配超时时间。关于这些Fabric定时器的详细介绍请参见FC相关的协议规范。
对Fabric定时器的配置有两种方式:
· 在系统视图下配置:对所有VSAN生效。
· 在VSAN视图下配置:对单个VSAN生效。
如果在系统视图和VSAN视图下均进行配置,则采用VSAN视图下的配置值。
表5-9 在系统视图下配置Fabric定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置全局分布式服务超时时间 |
fc timer distributed-services value |
缺省情况下,分布式服务超时时间为5000毫秒 |
配置全局错误检测超时时间 |
fc timer error-detect value |
缺省情况下,错误检测超时时间为2000毫秒 |
配置全局资源分配超时时间 |
fc timer resource-allocation value |
缺省情况下,资源分配超时时间为10000毫秒 |
表5-10 在VSAN视图下配置Fabric定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置指定VSAN内的分布式服务超时时间 |
timer distributed-services value |
缺省情况下,分布式服务超时时间为5000毫秒 |
配置指定VSAN内的错误检测超时时间 |
timer error-detect value |
缺省情况下,错误检测超时时间为2000毫秒 |
配置指定VSAN内的资源分配超时时间 |
timer resource-allocation value |
缺省情况下,资源分配超时时间为10000毫秒 |
只有开启Fabric配置功能,Fabric重配置功能才生效。
Fabric重配置一般在网络改造(比如两个Fabric网络合并等)或外部干预(比如管理员通过命令行发起重配置)时发生。Fabric重配置将触发整个网络重新开始主交换机选举、域ID分配和FC地址分配。
Fabric重配置分为两种:中断重配置、非中断重配置。
· 中断重配置:在整个Fabric中洪泛RCF(Reconfigure Fabric)报文,通知所有交换机进行中断重配置。重配置过程中,会清除所有运行数据重新进行协商,因此整个Fabric网络的数据传输都会中断。
· 非中断重配置:在整个Fabric中洪泛BF(Build Fabric)报文,通知所有交换机进行非中断重配置。重配置过程中,会尽量保留上一次的运行数据,以保证交换机的域ID尽量不发生变化,从而不影响Fabric网络的数据传输。
根据触发条件不同,可将Fabric重配置分为两种:自动重配置、手工发起重配置。触发场景如下:
· 自动中断重配置:两个Fabric网络合并时,如果域ID列表重叠,交换机会自动进行中断重配置。
· 自动非中断重配置:两个Fabric网络合并时,如果两个Fabric网络的主交换机信息不同,而且域ID列表非空且不重叠,系统会自动进行非中断重配置。主交换机宕机时,系统会自动进行非中断重配置。
· 手工中断重配置:当两个Fabric网络合并时接口被隔离或者修改了交换机的优先级等情况下,管理员可以手工发起中断重配置,触发整个Fabric网络重新进行配置。
表5-11 配置自动Fabric重配置功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
开启自动Fabric重配置功能 |
domain auto-reconfigure enable |
缺省情况下,自动Fabric重配置功能处于关闭状态 |
表5-12 手工发起Fabric重配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
发起Fabric重配置 |
domain restart [ disruptive ] |
- |
在一个稳定的网络中,可以配置接口拒绝收到的特定VSAN内的RCF请求报文,以防止设备进行不必要的中断重配置。配置该功能后,如果接口收到该VSAN内的RCF请求报文,设备会回应拒绝报文,并将该接口隔离。
表5-13 配置接口拒绝收到的RCF请求报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置当前接口拒绝收到的RCF请求报文 |
fc domain rcf-reject vsan vsan-id |
缺省情况下,接口不拒绝收到的RCF请求报文 |
Fabric网络中,交换机上保存了整个Fabric网络的名称服务数据信息,既包括本地注册的节点设备信息,也包括远端交换机上的节点设备信息。当节点设备发生注册、注销或改变注册数据等变化事件时,交换机使用RSCN(Registered State Change Notification,注册状态变化通知)报文,向交换机或节点设备来进行变化通知。交换机或节点设备收到RSCN报文后,会主动发送名称服务查询报文,进行表项更新。
RSCN报文分为交换机之间通知变化的SW_RSCN报文,以及交换机通知本机直连节点设备的ELS_RSCN报文。RSCN报文仅携带当前发生变化的节点设备的FC地址,进行变化通告,而并不实际同步数据。
当变化事件发生时,交换机感应该变化,使用ELS_RSCN报文通知其它本地直连且关心该变化的节点设备,触发节点设备向交换机查询数据进行更新;同时,交换机发送SW_RSCN报文通知其它路由可达的交换机,其它交换机在收到SW_RSCN报文后,响应变化,主动查询、更新数据,并使用ELS_RSCN报文通知各自本地直连且关心该变化的节点设备,最终完成变化数据的全网通知和数据更新。
交换机是否支持SW_RSCN通知取决于路由计算完成后,交换机之间进行的ESS(Exchange Switch Support,交换机能力协商)协商;而节点设备是否响应ELS_RSCN报文,取决于在节点设备注册成功后,是否发送SCR(State Change Registration,状态变化注册)报文向交换机注册关心响应。
随着节点设备的规模增大,网络中存在大量节点设备的情况下,当远端或本机有多个节点设备同时发生注册、注销或改变注册数据等变化事件时,对于每一个发生变化的节点设备,都需要通知一次其它关心该变化的节点设备,对应发送携带一个变化FC地址(发生变化的节点设备的FC地址)的RSCN报文。因此有可能短时间内向关心该变化的节点设备发送大量RSCN报文,导致网络拥塞,设备的传输和处理性能急剧降低。
对于交换机发送给节点设备的ELS_RSCN报文,可以开启RSCN聚合功能来优化网络性能:如果在RSCN聚合等待时间内,有多个节点设备产生变化事件,则使用携带了多个变化FC地址的一个ELS_RSCN报文,来代替以前只携带一个变化FC地址的多个ELS_RSCN报文,以此减少向关心该变化的节点设备发送ELS_RSCN报文的数量,减少变化通知次数。
开启RSCN聚合功能后,用户可以根据设备性能调整RSCN聚合的等待时间,以此控制设备响应RSCN变化的频率。
需要注意的是,只有开启RSCN聚合功能后,RSCN聚合等待时间才会生效。建议一个VSAN内的所有交换机同时开启RSCN聚合功能,并配置相同的RSCN聚合等待时间,以避免可能产生的设备互通问题。
表5-14 配置RSCN聚合功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
开启RSCN聚合功能 |
rscn aggregation enable |
缺省情况下,RSCN聚合功能处于关闭状态 |
配置RSCN聚合等待时间 |
rscn aggregation timer time |
缺省情况下,RSCN聚合等待时间为2000毫秒 |
大部分节点设备连入Fabric网络时,会先携带一些基础信息(例如Port WWN、Node WWN、期望得到的FC地址等)登录到交换机,待交换机为之分配FC地址后,节点设备会继续发送名称服务的节点属性注册报文,注册节点设备的其他一系列扩展信息,其中就包括FC4信息。
FC4信息描述了节点设备支持的上层协议类型,以及协议对应的属性。FC4信息包括如下内容:
· FC4-Type:FC4层协议类型,描述了节点设备支持的上层协议,包括SCSI-FCP、IP、SNMP、NPV等。
· Feature:FC4层协议的属性。每种FC4-Type拥有四种属性,每种属性的具体含义由各FC4-Type分别定义。
关于各种FC4-Type及其Feature的详细介绍请查看相关的协议文档。用户可以在交换机上通过display fc name-service database命令查看名称服务数据库中记录的节点设备的FC4信息。
节点设备在Fabric网络中进行互通时,会首先向交换机获取所有支持SCSI-FCP协议的节点信息,然后根据这些节点支持SCSI-FCP协议的Feature值,来决定具体的互通行为。
一般情况下,服务器连入Fabric网络时,会注册支持SCSI-FCP协议,同时注册Feature为Initiator,而磁盘设备连入Fabric网络时也会注册支持SCSI-FCP协议,同时注册Feature为Target,这样服务器就能向交换机获取支持SCSI-FCP协议的节点信息,并根据SCSI-FCP的Feature值决定哪些节点属于磁盘设备,能够发送访问请求,进行设备互通。
5.13.1 配置Fabric自动发现SCSI-FCP信息功能
某些节点设备有时不会主动注册支持SCSI-FCP协议(比如节点设备离线又重新上线后,不再主动注册FC4-Type或Feature),也因此没有SCSI-FCP协议对应的Feature值,对节点设备间的互通可能产生影响。
Fabric自动发现SCSI-FCP信息功能可以主动获取节点设备的SCSI-FCP协议及其对应的Feature值,开启该功能后,FCF交换机在节点设备登录后,会主动向节点设备发送PRLI报文,询问节点设备是否支持SCSI-FCP协议,同时获取节点设备支持SCSI-FCP协议对应的Feature信息,并将此信息保存在名称服务数据库中。
需要注意的是,开启Fabric自动发现SCSI-FCP信息功能后,某些较老型号的网卡可能不会再向交换机自动注册节点设备信息。请用户根据实际情况选择是否开启本功能。
表5-15 配置Fabric自动发现SCSI-FCP信息功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
开启Fabric自动发现SCSI-FCP信息功能 |
fc name-service auto-discovery |
缺省情况下,Fabric自动发现SCSI-FCP信息功能处于开启状态 |
5.13.2 配置节点设备的默认FC4信息
为了不影响节点设备之间的互通,用户可以手工配置节点设备的默认FC4信息(FC4-Type和Feature)。当节点设备不注册FC4信息并且交换机主动探测SCSI-FCP信息也不成功时,名称服务数据库中记录的将是该默认FC4信息。此后,如果节点设备又主动注册了FC4信息或交换机又探测到了SCSI-FCP信息,则名称服务数据库中将保存节点设备注册或交换机探测到的FC4信息。
配置本命令时,每条配置命令只能表示某个N_Port支持的一种FC4-Type及其Feature,如果该N_Port还支持其它FC4-Type及其Feature,则需要再配置一条命令。
表5-16 配置节点设备的默认FC4信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置节点设备的默认FC4信息 |
fc wwn wwn-value default-fc4-type { type-value feature feature-map | scsi-fcp feature { feature-map | both | initiator | target } } |
缺省情况下,没有配置节点设备的默认FC4信息 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后Fabric网络的运行情况,通过查看显示信息验证配置的效果。
表5-17 Fabric网络显示和维护
操作 |
命令 |
显示VSAN内的域信息 |
display fc domain [ vsan vsan-id ] |
显示VSAN内动态分配的域列表 |
display fc domain-list [ vsan vsan-id ] |
显示Fabric定时器信息 |
display fc timer [ distributed-services | error-detect | resource-allocation ] [ vsan vsan-id ] |
显示节点注册的相关信息 |
display fc login [ vsan vsan-id ] [ count ] |
显示N端口注册的SCR列表 |
display fc scr-table [ vsan vsan-id ] [ count ] |
显示名称服务数据库信息 |
display fc name-service database [ vsan vsan-id [ fcid fcid ] ] [ verbose ] display fc name-service database [ vsan vsan-id ] count |
显示ESS协商结果 |
display fc ess [ vsan vsan-id ] |
网络由两台交换机Switch A、Switch B,和磁盘设备Disk、服务器Server组成。
网络结构比较简单,采用静态方式建立Fabric网络。
图5-2 静态建立Fabric网络组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并关闭Fabric配置功能。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
[SwitchA-vsan1] undo domain configure enable
# 配置Fabric网络的名称。
[SwitchA-vsan1] fabric-name 11:11:11:11:11:11:11:11
# 配置域ID为1。
[SwitchA-vsan1] domain-id 1 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchA-vsan1] quit
# 全局开启LLDP功能。
[SwitchA] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/1上开启LLDP功能,并允许发布DCBX TLV。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/1] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchA] acl number 4000
[SwitchA-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchA-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchA-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchA] traffic classifier app_c operator or
[SwitchA-classifier-app_c] if-match acl 4000
[SwitchA-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchA] traffic behavior app_b
[SwitchA-behavior-app_b] remark dot1p 3
[SwitchA-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchA] qos policy plcy
[SwitchA-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchA-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/1的出方向上应用策略plcy。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchA] qos map-table dot1p-lp
[SwitchA-maptbl-out-dot1p-lp] import 3 export 3
[SwitchA-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/1上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr 3 group sp
# 在以太网接口Ten-GigabitEthernet1/0/1上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/1] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在F模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode f
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchA] interface vfc 2
[SwitchA-Vfc2] fc mode e
[SwitchA-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchA-Vfc2] port trunk vsan 1
[SwitchA-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能,并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并关闭Fabric配置功能。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 1
[SwitchB-vsan1] undo domain configure enable
# 配置Fabric网络的名称。
[SwitchB-vsan1] fabric-name 11:11:11:11:11:11:11:11
# 配置域ID为2。
[SwitchB-vsan1] domain-id 2 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchB-vsan1] quit
# 全局开启LLDP功能。
[SwitchB] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/1上开启LLDP功能,并允许发布DCBX TLV。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] lldp enable
[SwitchB-Ten-GigabitEthernet1/0/1] lldp tlv-enable dot1-tlv dcbx
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchB] acl number 4000
[SwitchB-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchB-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchB-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchB] traffic classifier app_c operator or
[SwitchB-classifier-app_c] if-match acl 4000
[SwitchB-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchB] traffic behavior app_b
[SwitchB-behavior-app_b] remark dot1p 3
[SwitchB-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchB] qos policy plcy
[SwitchB-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchB-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/1的出方向上应用策略plcy。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] qos apply policy plcy outbound
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchB] qos map-table dot1p-lp
[SwitchB-maptbl-out-dot1p-lp] import 3 export 3
[SwitchB-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/1上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] qos wrr byte-count
[SwitchB-Ten-GigabitEthernet1/0/1] qos wrr 3 group sp
# 在以太网接口Ten-GigabitEthernet1/0/1上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchB-Ten-GigabitEthernet1/0/1] priority-flow-control auto
[SwitchB-Ten-GigabitEthernet1/0/1] priority-flow-control no-drop dot1p 3
[SwitchB-Ten-GigabitEthernet1/0/1] qos trust dot1p
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在F模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode f
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 1
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchB] interface vfc 2
[SwitchB-Vfc2] fc mode e
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchB-Vfc2] port trunk vsan 1
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能,并将其与VSAN 1进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 1
[SwitchB-vlan10] quit
(1) 验证Switch A
[SwitchA] display fc domain vsan 1
Domain Information of VSAN 1:
Running time information:
State: Stable
Switch WWN: 48:33:43:2d:46:43:1A:1A
Fabric name: 11:11:11:11:11:11:11:11
Priority: 128
Domain ID: 1
Configuration information:
Domain configure: Disabled
Domain auto-reconfigure: Disabled
Fabric name: 11:11:11:11:11:11:11:11
Priority: 128
Domain ID: 1 (static)
Principal switch running time information:
Priority: 128
No interfaces available.
上述信息表明,域配置已经结束,Switch A的运行域ID是1。
(2) 验证Switch B
[SwitchB] display fc domain vsan 1
Domain Information of VSAN 1:
Running time information:
State: Stable
Switch WWN: 48:33:43:2d:46:43:1B:1B
Fabric name: 11:11:11:11:11:11:11:11
Priority: 128
Domain ID: 2
Configuration information:
Domain configure: Disabled
Domain auto-reconfigure: Disabled
Fabric name: 11:11:11:11:11:11:11:11
Priority: 128
Domain ID: 2 (static)
Principal switch running time information:
Priority: 128
No interfaces available.
上述信息表明,域配置已经结束,Switch B的运行域ID是2。
网络由交换机Switch A、Switch B、Switch C、Switch D,和磁盘设备Disk、服务器Server组成。
网络结构比较复杂,采用动态方式建立Fabric网络。
图5-3 动态建立Fabric网络组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图,开启Fabric配置功能(本步骤可选,Fabric配置功能缺省开启)。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
[SwitchA-vsan1] domain configure enable
# 配置域ID为11。
[SwitchA-vsan1] domain-id 11 preferred
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchA-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode e
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchA] interface vfc 2
[SwitchA-Vfc2] fc mode e
[SwitchA-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchA-Vfc2] port trunk vsan 1
[SwitchA-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图,开启Fabric配置功能(本步骤可选,Fabric配置功能缺省开启)。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 1
[SwitchB-vsan1] domain configure enable
# 配置交换机的优先级为1,使Switch B成为主交换机。
[SwitchB-vsan1] priority 1
[SwitchB-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode e
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 1
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchB] interface vfc 2
[SwitchB-Vfc2] fc mode e
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchB-Vfc2] port trunk vsan 1
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC3,配置虚接口VFC3工作在E模式,将虚接口VFC3绑定到以太网接口Ten-GigabitEthernet1/0/3上,并将虚接口VFC3以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC3。
[SwitchB] interface vfc 3
[SwitchB-Vfc3] fc mode e
[SwitchB-Vfc3] bind interface ten-gigabitethernet 1/0/3
[SwitchB-Vfc3] port trunk vsan 1
[SwitchB-Vfc3] quit
# 配置以太网接口Ten-GigabitEthernet1/0/3允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/3
[SwitchB-Ten-GigabitEthernet1/0/3] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/3] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/3] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 1
[SwitchB-vlan10] quit
(3) 配置Switch C
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchC> system-view
[SwitchC] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图,开启Fabric配置功能(本步骤可选,Fabric配置功能缺省开启)。
<SwitchC> system-view
[SwitchC] fcoe-mode fcf
[SwitchC] vsan 1
[SwitchC-vsan1] domain configure enable
# 配置域ID为13。
[SwitchC-vsan1] domain-id 13 preferred
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchC-vsan1] quit
# 全局开启LLDP功能。
[SwitchC] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/3上开启LLDP功能,并允许发布DCBX TLV。
[SwitchC] interface ten-gigabitethernet 1/0/3
[SwitchC-Ten-GigabitEthernet1/0/3] lldp enable
[SwitchC-Ten-GigabitEthernet1/0/3] lldp tlv-enable dot1-tlv dcbx
[SwitchC-Ten-GigabitEthernet1/0/3] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchC] acl number 4000
[SwitchC-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchC-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchC-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchC] traffic classifier app_c operator or
[SwitchC-classifier-app_c] if-match acl 4000
[SwitchC-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchC] traffic behavior app_b
[SwitchC-behavior-app_b] remark dot1p 3
[SwitchC-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchC] qos policy plcy
[SwitchC-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchC-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/3的出方向上应用策略plcy。
[SwitchC] interface ten-gigabitethernet 1/0/3
[SwitchC-Ten-GigabitEthernet1/0/3] qos apply policy plcy outbound
[SwitchC-Ten-GigabitEthernet1/0/3] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchC] qos map-table dot1p-lp
[SwitchC-maptbl-out-dot1p-lp] import 3 export 3
[SwitchC-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/3上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchC] interface ten-gigabitethernet 1/0/3
[SwitchC-Ten-GigabitEthernet1/0/3] qos wrr byte-count
[SwitchC-Ten-GigabitEthernet1/0/3] qos wrr 3 group sp
# 在以太网接口Ten-GigabitEthernet1/0/3上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchC-Ten-GigabitEthernet1/0/3] priority-flow-control auto
[SwitchC-Ten-GigabitEthernet1/0/3] priority-flow-control no-drop dot1p 3
[SwitchC-Ten-GigabitEthernet1/0/3] qos trust dot1p
[SwitchC-Ten-GigabitEthernet1/0/3] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchC] interface vfc 1
[SwitchC-Vfc1] fc mode e
[SwitchC-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchC-Vfc1] port trunk vsan 1
[SwitchC-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchC] interface ten-gigabitethernet 1/0/1
[SwitchC-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchC-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchC] interface vfc 2
[SwitchC-Vfc2] fc mode e
[SwitchC-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchC-Vfc2] port trunk vsan 1
[SwitchC-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchC] interface ten-gigabitethernet 1/0/2
[SwitchC-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchC-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchC-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC3,配置虚接口VFC3工作在F模式,将虚接口VFC3绑定到以太网接口Ten-GigabitEthernet1/0/3上,并将虚接口VFC3以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC3。
[SwitchC] interface vfc 3
[SwitchC-Vfc3] fc mode f
[SwitchC-Vfc3] bind interface ten-gigabitethernet 1/0/3
[SwitchC-Vfc3] port trunk vsan 1
[SwitchC-Vfc3] quit
# 配置以太网接口Ten-GigabitEthernet1/0/3允许VLAN 10的报文通过。
[SwitchC] interface ten-gigabitethernet 1/0/3
[SwitchC-Ten-GigabitEthernet1/0/3] port link-type trunk
[SwitchC-Ten-GigabitEthernet1/0/3] port trunk permit vlan 10
[SwitchC-Ten-GigabitEthernet1/0/3] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchC] vlan 10
[SwitchC-vlan10] fcoe enable vsan 1
[SwitchC-vlan10] quit
(4) 配置Switch D
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchD> system-view
[SwitchD] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图,开启Fabric配置功能(本步骤可选,Fabric配置功能缺省开启)。
<SwitchD> system-view
[SwitchD] fcoe-mode fcf
[SwitchD] vsan 1
[SwitchD-vsan1] domain configure enable
# 配置域ID为14。
[SwitchD-vsan1] domain-id 14 preferred
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchD-vsan1] quit
# 全局开启LLDP功能。
[SwitchA] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/2上开启LLDP功能,并允许发布DCBX TLV。
[SwitchD] interface ten-gigabitethernet 1/0/2
[SwitchD-Ten-GigabitEthernet1/0/2] lldp enable
[SwitchD-Ten-GigabitEthernet1/0/2] lldp tlv-enable dot1-tlv dcbx
[SwitchD-Ten-GigabitEthernet1/0/2] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchD] acl number 4000
[SwitchD-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchD-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchD-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchD] traffic classifier app_c operator or
[SwitchD-classifier-app_c] if-match acl 4000
[SwitchD-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchD] traffic behavior app_b
[SwitchD-behavior-app_b] remark dot1p 3
[SwitchD-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchD] qos policy plcy
[SwitchD-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchD-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/2的出方向上应用策略plcy。
[SwitchD] interface ten-gigabitethernet 1/0/2
[SwitchD-Ten-GigabitEthernet1/0/2] qos apply policy plcy outbound
[SwitchD-Ten-GigabitEthernet1/0/2] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchD] qos map-table dot1p-lp
[SwitchD-maptbl-out-dot1p-lp] import 3 export 3
[SwitchD-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/2上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchD] interface ten-gigabitethernet 1/0/2
[SwitchD-Ten-GigabitEthernet1/0/2] qos wrr byte-count
[SwitchD-Ten-GigabitEthernet1/0/2] qos wrr 3 group sp
# 在以太网接口Ten-GigabitEthernet1/0/2上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchD-Ten-GigabitEthernet1/0/2] priority-flow-control auto
[SwitchD-Ten-GigabitEthernet1/0/2] priority-flow-control no-drop dot1p 3
[SwitchD-Ten-GigabitEthernet1/0/2] qos trust dot1p
[SwitchD-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchD] interface vfc 1
[SwitchD-Vfc1] fc mode e
[SwitchD-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchD-Vfc1] port trunk vsan 1
[SwitchD-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchD] interface ten-gigabitethernet 1/0/1
[SwitchD-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchD-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchD-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在F模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchD] interface vfc 2
[SwitchD-Vfc2] fc mode f
[SwitchD-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchD-Vfc2] port trunk vsan 1
[SwitchD-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchD] interface ten-gigabitethernet 1/0/2
[SwitchD-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchD-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchD-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchD] vlan 10
[SwitchD-vlan10] fcoe enable vsan 1
[SwitchD-vlan10] quit
在Switch A上进行验证。
# 显示VSAN 1内的域信息。
[SwitchA] display fc domain vsan 1
Domain Information of VSAN 1:
Running time information:
State: Stable
Switch WWN: 48:33:43:2d:46:43:1A:1A
Fabric name: 48:33:43:2d:46:43:1B:1B
Priority: 128
Domain ID: 11
Configuration information:
Domain configure: Enabled
Domain auto-reconfigure: Disabled
Fabric name: 48:33:43:2d:46:43:1A:1A
Priority: 128
Domain ID: 11 (preferred)
Principal switch running time information:
Priority: 1
Path Interface
Upstream Vfc1
Downstream Vfc2
从上述信息可以看出,Switch A的配置已经结束,主交换机为Switch A分配的域ID为11。
# 显示VSAN 1内的域列表。
[SwitchA] display fc domain-list vsan 1
Domain list of VSAN 1:
Number of domains: 4
Domain ID WWN
0x01(1) 48:33:43:2d:46:43:1B:1B [Principal]
0x0b(11) 48:33:43:2d:46:43:1A:1A [Local]
0x0d(13) 48:33:43:2d:46:43:1C:1C
0x0e(14) 48:33:43:2d:46:43:1D:1D
从上述信息可以看出,Switch B成为主交换机,主交换机给自己分配了最小的域ID 1。
VSAN的目的是将一个物理上连通的SAN网络分割成多个逻辑上的虚拟SAN网络。每个VSAN相互隔离,并独立提供服务,增强了网络的适应性、安全性,使其能够为用户提供更有效的服务。
对每一个VSAN来说,其本身就相当于一个SAN网络,VSAN内的设备无法获得该VSAN以外的其它VSAN和设备的信息。每一个VSAN内都独立运行主交换机选举,基于每个VSAN配置域ID,独立运行路由协议,独立维护路由转发表,独立提供所需的服务等。
VSAN的优点如下:
· 提高网络安全性:每个VSAN可以做到相互隔离。
· 提高网络适应性:每个VSAN可以独立运行,独立提供各种服务,不同VSAN可以使用重复的地址空间,增强了组网能力。
· 组网灵活:通过配置可以方便地将接口加入到不同的VSAN,而不需要改变SAN网络的物理连接。
VFC接口只支持Trunk方式。
Trunk方式:接口可以同时属于多个VSAN。
Trunk方式可以真正实现不同VSAN之间的逻辑隔离。其实现原理是:在FC报文中增加Virtual Fabric Tagging Header报文头(VFT_Header,一种FC报文的扩展报文头,也称为VSAN Tag),VFT_Header中包括的VF_ID(也称VSAN ID)字段,表明了报文所属的VSAN。带有不同VF_ID的报文限制在各自的VSAN内,不同VSAN不能互通。这样就达到了网络在物理上连通,但逻辑上隔离的目的。
报文在传输过程中会发生添加和去除VFT_Header的过程。同一台交换机上要支持多个VSAN,可以使用相同的物理接口,减少了网络的物理连接。真正做到了在物理连通的SAN网络之上的逻辑隔离。
FCoE网络是在以太网上承载FC协议,需要将FC协议中的VSAN资源映射到以太网中的VLAN资源,根据用户配置的VSAN到VLAN的映射关系,将VSAN内的转发表项存储到映射的VLAN内。FCoE报文中使用VLAN_Header替代FC报文中的VFT_Header,报文转发时根据FCoE报文中的VLAN_Header内的VLAN ID在相应的VLAN内查找转发表实现转发。
VFC接口仅支持Trunk方式,VFC接口绑定的以太网接口也要求工作在Trunk模式下,且以太网接口Trunk的VLAN列表要与VFC接口Trunk的VSAN列表相匹配,即存在VSAN到VLAN的映射关系。这样,从VFC接口传输的FCoE报文就可以使用VLAN_Header中的VLAN ID标识报文所属的VLAN。
初始情况下,只存在默认VSAN(VSAN 1)。用户不能创建或删除默认VSAN。用户可以创建的VSAN范围是2~3839。
表6-1 创建VSAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VSAN,并进入VSAN视图 |
vsan vsan-id |
缺省情况下,只存在默认VSAN 1 |
VFC接口可以以Trunk方式加入多个VSAN。
多次配置接口Trunk VSAN,最终形成的接口Trunk VSAN List为配置的Trunk VSAN的集合。
表6-2 将接口以Trunk方式加入VSAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置接口以Trunk方式加入VSAN,即允许指定的VSAN通过当前接口 |
port trunk vsan vsan-id-list |
缺省情况下,接口不以Trunk方式加入任何VSAN 将接口以Trunk方式加入指定VSAN时,此VSAN无需已经存在 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VSAN的运行情况,通过查看显示信息验证配置的效果。
表6-3 VSAN显示和维护
操作 |
命令 |
显示VSAN配置的接口成员 |
display vsan [ vsan-id ] port-member |
SAN网络如图6-1所示,要求:
· 服务器Server A能读写磁盘设备Disk A和Disk B中的数据;
· 服务器Server B只能读写磁盘设备Disk C中的数据。
图6-1 配置VSAN组网图
· 为了实现上述需求,可将SAN网络划分为2个VSAN,分别为VSAN 10、VSAN 20,每个VSAN包含一组可以进行数据交互的服务器和磁盘设备。
· FCF交换机Switch A上与服务器连接的2个接口需要配置为F模式,并将Trunk VSAN分别配置为VSAN 10、VSAN 20。
· FCF交换机Switch B上与磁盘设备连接的3个接口需要配置为F模式,并将Trunk VSAN配置为VSAN 10或VSAN 20。
· 两台FCF交换机之间的链路需要同时收发2个VSAN的报文,因此,需将链路两端的接口配置为E模式,Trunk VSAN list中包括VSAN 10、VSAN 20。
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,创建VSAN 10、20。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 10
[SwitchA-vsan10] quit
[SwitchA] vsan 20
[SwitchA-vsan20] quit
# 全局开启LLDP功能。
[SwitchA] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上开启LLDP功能,并允许发布DCBX TLV。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/1] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/2] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchA] acl number 4000
[SwitchA-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchA-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchA-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchA] traffic classifier app_c operator or
[SwitchA-classifier-app_c] if-match acl 4000
[SwitchA-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchA] traffic behavior app_b
[SwitchA-behavior-app_b] remark dot1p 3
[SwitchA-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchA] qos policy plcy
[SwitchA-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchA-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2的出方向上应用策略plcy。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchA] qos map-table dot1p-lp
[SwitchA-maptbl-out-dot1p-lp] import 3 export 3
[SwitchA-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr 3 group sp
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/2] qos wrr 3 group sp
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/1] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/2] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/2] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在F模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 10,即允许VSAN 10的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode f
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 10
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在F模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 20,即允许VSAN 20的报文通过虚接口VFC2。
[SwitchA] interface vfc 2
[SwitchA-Vfc2] fc mode f
[SwitchA-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchA-Vfc2] port trunk vsan 20
[SwitchA-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC4,配置虚接口VFC4工作在E模式,将虚接口VFC4绑定到以太网接口Ten-GigabitEthernet1/0/4上,并将虚接口VFC4以Trunk方式加入VSAN 10、VSAN 20,即允许VSAN 10、VSAN 20的报文通过虚接口VFC4。
[SwitchA] interface vfc 4
[SwitchA-Vfc4] fc mode e
[SwitchA-Vfc4] bind interface ten-gigabitethernet 1/0/4
[SwitchA-Vfc4] port trunk vsan 10 20
[SwitchA-Vfc4] quit
# 配置以太网接口Ten-GigabitEthernet1/0/4允许VLAN 10、VLAN 20的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/4
[SwitchA-Ten-GigabitEthernet1/0/4] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/4] port trunk permit vlan 10 20
[SwitchA-Ten-GigabitEthernet1/0/4] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 10进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 10
[SwitchA-vlan10] quit
# 开启VLAN 20的FCoE功能、并将其与VSAN 20进行映射。
[SwitchA] vlan 20
[SwitchA-vlan20] fcoe enable vsan 20
[SwitchA-vlan20] quit
(2) 配置Switch B
Switch B上的配置与Switch A类似,配置步骤略。
(1) 在Switch A上进行验证
# 显示所有VSAN配置的接口成员。
[SwitchA] display vsan port-member
VSAN 1:
Access Ports:
Trunk Ports:
VSAN 10:
Access Ports:
Trunk Ports:
Vfc1
Vfc4
VSAN 20:
Access Ports:
Trunk Ports:
Vfc2
Vfc4
(2) 在Switch B上进行验证
验证结果与Switch A类似,显示内容略。
在FC SAN中进行路由选择和报文转发要使用FCF交换机,FCF交换机根据所收到的报文的目的地址选择一条合适的路径,并将报文转发到下一台FCF交换机。路径中最后的FCF交换机负责将报文转发给目的节点。
路由就是报文在转发过程中的路径信息,用来指导报文转发。
FCF交换机通过路由表选择路由,把优选路由下发到FIB(Forwarding Information Base,转发信息库)表中,通过FIB表指导报文转发。
每台FCF交换机的每个VSAN都对应着一张路由表和一张FIB表。
路由表中保存了各种路由协议发现的路由,根据来源不同,分为以下几类:
· 直连路由:链路层协议发现的路由。
· 静态路由:网络管理员手工配置的路由。
· FSPF路由:FSPF(Fabric Shortest Path First,光纤最短路径优先)协议发现的路由。
通过命令display fc routing-table可以显示路由表的摘要信息,例如:
<Sysname> display fc routing-table vsan 1
Routing Table: VSAN 1
Destinations : 6 Routes : 6
Destination/mask Protocol Preference Cost Interface
0x020000/8 FSPF 20 265 Vfc1
0x120000/8 STATIC 10 0 Vfc2
0xfffc01/24 DIRECT 0 0 InLoop0
0xfffffa/24 DIRECT 0 0 InLoop0
0xfffffc/24 DIRECT 0 0 InLoop0
0xfffffd/24 DIRECT 0 0 InLoop0
......(省略部分显示信息)
路由表中包含了下列关键项:
· Destination:目的地址。用来标识FC报文的目的FC地址。
· mask:网络掩码。与目的地址一起来标识目的节点或FCF交换机所在域的地址。将目的地址和网络掩码“逻辑与”后可得到目的节点或FCF交换机所在域的地址。例如:目的地址为0x010001、掩码为0xFF0000的节点或FCF交换机所在域的地址为0x010000。掩码由若干个连续“1”构成,既可以用十六进制表示,也可以用掩码中连续“1”的个数来表示。
· Protocol:协议类型。可以为DIRECT(直连路由)、STATIC(静态路由)、FSPF(FSPF路由)。
· Preference:路由优先级。对于相同的目的地,直连路由、静态路由、FSPF可能会发现不同的路由,但这些路由并不都是最优的。为了判断最优路由,直连路由、静态路由、FSPF都被赋予了一个优先级,具有最高优先级的路由协议发现的路由将成为当前路由。直连路由的优先级为0,静态路由的优先级为10,FSPF的优先级为20。数值越小表明优先级越高。
· Cost:路由的度量值。当到达同一目的地的多条路由具有相同的优先级时,路由的度量值越小的路由将成为当前的最优路由。直连路由的度量值为0;静态路由、FSPF路由的度量值可以配置。
· Interface:出接口。指明FC报文将从该FCF交换机哪个接口转发。
FIB表中每条转发项都指明了要到达某FCF交换机或某节点的报文应通过FCF交换机的哪个接口发送,就可到达该路径的下一台FCF交换机,或者目的节点。
通过命令display fc fib可以查看FIB表的信息,例如:
<Sysname> display fc fib vsan 1
FC FIB information in VSAN 1:
Destination count: 6
FIB entry count: 6
Destination/Mask Interface
0x020000/8 Vfc1
0x120100/8 Vfc2
0xfffc01/24 InLoop0
0xfffffa/24 InLoop0
0xfffffc/24 InLoop0
0xfffffd/24 InLoop0
FIB表中包含的Destination、Mask、Interface关键项的含义与路由表中对应关键项的含义相同。
直连路由的来源包括:知名地址、本机给直连的N_Port分配的FC地址。
· 对FCF交换机的访问通常使用知名地址,常见知名地址的用途介绍请参见“12.2 附录B Fabric知名地址”。所有知名地址均作为直连路由加入路由表中,路由的目的地址为知名地址,掩码为0xFFFFFF,出接口为InLoop0。
· 在FCF交换机给直连的N_Port分配FC地址时添加该FC地址的直连路由到路由表中,路由的目的地址为分配的FC地址,掩码为0xFFFFFF,出接口为连接N_Port的VFC接口。
静态路由是由管理员手工配置的。配置静态路由后,去往指定目的地的FC报文将按照管理员指定的路径进行转发。
在组网结构比较简单的网络中,只需配置静态路由就可以实现网络互通。恰当地设置和使用静态路由可以改善网络的性能,并可为重要的网络应用保证带宽。
静态路由的缺点在于:不能自动适应网络拓扑结构的变化,当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,导致网络中断,此时必须由网络管理员手工修改静态路由的配置。
静态路由支持等价路由,如果先后配置多条目的地址相同、出接口不同的静态路由且度量值相同,则生成等价路由。
FSPF是一个基于链路状态的动态路由选择协议,它可以自动计算Fabric网络中任意两台交换机之间的最短路径。
FSPF具有如下特点:
· 可用于任何组网。
· 支持等价路由。
· 基于每个VSAN进行拓扑计算。
· 只在E模式端口运行,提供无环路的拓扑。
· 在每个交换机上都有一个拓扑数据库,跟踪每条链路的状态。
· 使用Dijkstra算法计算路由。
· 网络拓扑改变时可以快速收敛。
在介绍FSPF的工作机制之前,先介绍几个基本概念。
(1) LSDB
LSDB(Link State Database,链路状态数据库)是交换机保存全网拓扑信息的数据库。在LSDB中,以LSR(Link State Record,链路状态记录)的形式来存储各交换机的链路状态信息。
(2) LSR
LSR完整地描述了一个交换机与其他直连交换机的所有链路状态信息。
交换机每次生成的LSR,都统称为交换机生成的LSR实例,所有交换机产生的LSR构成LSDB。
LSR中可以包含一个或多个链路的描述信息。LSR中的信息主要包括:
· LSR的生存时间。
· 通告此LSR的交换机域ID。
· LSR实例号:每刷新一次LSR,实例号加一。
· 链路ID:用来标识链路。链路ID中包含链路对端的邻居交换机的域ID。
· 链路的源接口和目的接口。
· 链路的类型。例如点对点连接。
· 链路上传输报文的开销。每一条链路会有不同的开销,接口开销越小说明链路越好。在路由优选算法中将使用这些值来确定最有效的路由。接口的开销值可以配置。
FSPF中用到如下协议报文:
· Hello报文:周期性发送,用来发现和维持FSPF邻居关系。
· LSU(Link State Update,链路状态更新)报文:用于向邻居交换机通告本机的链路状态信息,即每次报文交互时通过它来携带LSR的详细信息。
· LSA(Link State Acknowledgment,链路状态确认)报文:对接收到的LSR做确认回应。接收到LSU后,需要对其中的LSR以LSA报文进行确认,否则邻居将重传该LSR。
FSPF工作机制可简单描述如下:
· 交换机周期性向外发送Hello报文,与其他交换机建立邻居关系。
· 建立邻居关系之后,交换机之间开始进行LSDB的初始化同步,即交换彼此LSDB中的所有LSR。通过LSU报文来携带LSR,LSA报文来确认LSR的接收。
· LSDB初始化同步完成之后,每台交换机存储的LSDB中都包含了整个Fabric网络中各交换机的所有链路信息(即LSR)。
· 交换机依据存储在本地的LSDB,使用Dijkstra算法计算出到其他交换机的最短路径。据此,可以确定从源交换机到目的交换机的输出接口,生成FSPF路由表。
· 当网络拓扑改变、链路状态发生变化时,交换机会向整个Fabric网络泛洪新的LSR,进行LSDB更新同步。邻居交换机收到泛洪的LSR时,一方面加到自己的LSDB中,一方面将它泛洪给它的邻居,这样Fabric网络中所有的交换机都会同步更新此LSR。
· 本地的LSDB更新将产生路由计算,当计算完成,会将计算得到的最短路径树列表结果更新进FSPF路由表。
配置FC静态路由时,需要注意:
· FC静态路由允许配置的目的地址范围是010000~EFFFFF(十六进制),不允许配置目的地址为知名服务地址的路由。
· FC静态路由的出接口只允许配置为VFC接口。
· 如果先后配置两条目的地址、掩码和出接口均相同而cost值不同的静态路由,最后保留在静态路由表内的静态路由的cost值将是后者。
· 每个VSAN中允许配置的静态路由条数最大为256条。
表7-1 配置FC静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置FC静态路由 |
fc route-static fcid { mask | mask-length } interface-type interface-number [ cost cost-value ] |
缺省情况下,不存在FC静态路由 |
FSPF功能缺省开启,用户一般不需要进行特别的配置。
在实际使用过程中,用户可以根据网络的实际情况,调整某个VSAN或者某个接口的FSPF运行参数,以便达到更好的运行效果。
配置任务 |
说明 |
详细配置 |
|
调整某个VSAN的运行参数 (这些参数在VSAN视图下进行配置) |
开启FSPF功能 |
必选 |
|
配置最短SPF计算间隔 |
可选 |
||
配置LSR最小接收间隔 |
可选 |
||
配置LSR最小刷新间隔 |
可选 |
||
调整某个接口的运行参数 (这些参数必须在E模式接口下进行配置) |
配置接口的FSPF开销 |
可选 |
|
配置接口的Hello间隔值 |
可选 |
||
配置接口的Dead间隔值 |
可选 |
||
配置接口的LSR重传间隔 |
可选 |
||
关闭接口的FSPF功能 |
可选 |
||
配置FSPF GR (本功能在系统视图下进行配置) |
配置GR Restarter |
可选 |
|
配置GR Helper |
可选 |
开启了指定VSAN的FSPF功能后,该VSAN才可以运行FSPF相关的功能。
表7-3 开启FSPF功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
开启FSPF功能 |
fspf enable |
缺省情况下,VSAN创建后,FSPF功能处于开启状态 |
当LSDB发生改变时,需要进行SPF计算。SPF计算需要耗费一定的CPU,如果网络频繁变化,且每次变化都立即进行SPF计算,将会占用大量的CPU。为了避免交换机过于频繁的进行路由计算而浪费CPU,用户可以配置最短的SPF计算间隔。
最短SPF计算间隔决定了指定VSAN内两次连续的SPF计算之间的最小时间间隔。最短SPF计算间隔配置的小,意味着FSPF对于Fabric的变化可以快速反应,重新计算VSAN内的路由。一个更小的SPF计算间隔会耗费更多的CPU。
表7-4 配置最短SPF计算间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置最短SPF计算间隔 |
fspf spf-hold-time value |
缺省情况下,最短SPF计算间隔为0秒 |
LSR最小接收间隔决定了指定VSAN内接收LSR的间隔。为了避免过于频繁的从邻居接收到同一个LSR的新实例、更新本地LSDB而频繁触发路由计算。在LSR最小接收间隔时间内,如果又一次接收到了这个LSR的新实例,则直接丢弃,不做处理。
表7-5 配置LSR最小接收间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置LSR最小接收间隔 |
fspf min-ls-arrival value |
缺省情况下,LSR最小接收间隔为1秒 |
LSR最小刷新间隔决定了指定VSAN内LSR刷新间隔。为了避免本机LSR被频繁的刷新,从而降低路由计算的频率和减少Fabric中LSR的泛洪,在LSR最小刷新间隔内,交换机不能再次刷新本机LSR。
表7-6 配置LSR最小刷新间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置LSR最小刷新间隔 |
fspf min-ls-interval value |
缺省情况下,LSR最小刷新间隔为5秒 |
网络中,每一条链路会有不同的开销,在路由优选算法中将使用开销值来确定最有效的路由,接口的FSPF开销越小说明链路的开销越小。
表7-7 配置接口的FSPF开销
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置指定VSAN内接口的FSPF开销 |
fspf cost value vsan vsan-id |
缺省情况下, VFC接口的FSPF开销为100 |
交换机通过周期性向外发送Hello报文,来发现和维护邻居关系。Hello间隔值决定了接口在指定VSAN内发送Hello报文的时间间隔。
配置的Hello间隔值必须小于Dead间隔值,且邻居双方配置的Hello间隔值必须一致。
表7-8 配置接口的Hello间隔值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置指定VSAN内接口的Hello间隔值 |
fspf hello-interval value vsan vsan-id |
缺省情况下,接口的Hello间隔值为20秒 |
两台交换机之间建立起邻居关系后,需要以Hello间隔值为周期向对方发送Hello报文来维护邻居关系。若在Dead间隔内仍未收到对方的Hello报文,则认为邻居不存在,需要删除该邻居。
配置的Dead间隔值必须大于Hello间隔值,且邻居双方配置的Dead间隔值必须一致。
表7-9 配置接口的Dead间隔值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置指定VSAN内接口的Dead间隔值 |
fspf dead-interval value vsan vsan-id |
缺省情况下,接口的Dead间隔值为80秒 |
LSDB的同步需要交互LSR。在发送LSR后,等待邻居回应报文确认,如果过了LSR重传间隔还没有接收到邻居的确认,那么需要再次发送该LSR。
表7-10 配置接口的LSR重传间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
配置指定VSAN内接口的LSR重传间隔 |
fspf retransmit-interval value vsan vsan-id |
缺省情况下,接口的LSR重传间隔为5秒 |
开启接口的FSPF功能后,接口才可以参与FSPF路由运算,如果某接口不参与FSPF路由运算,则需关闭该接口的FSPF功能。
表7-11 关闭接口的FSPF功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
- |
关闭指定VSAN内接口的FSPF功能 |
fspf silent vsan vsan-id |
缺省情况下,所有接口的FSPF功能均处于开启状态 |
GR(Graceful Restart,平滑重启)是一种通过备份FSPF配置信息,在协议重启(比如通过process命令重启FSPF进程等情况)或主备倒换时FSPF进行平滑重启,从邻居那里获得邻居关系,并对LSDB进行同步,从而保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
在作为GR Restarter的设备上进行如下配置:
表7-12 配置GR Restarter
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启FSPF的GR能力 |
fspf graceful-restart |
缺省情况下,FSPF的GR能力处于关闭状态 |
配置FSPF的GR最大间隔时间 |
fspf graceful-restart interval interval-value |
缺省情况下,FSPF的GR最大间隔时间为120秒 |
在作为GR Helper的设备上进行如下配置:
表7-13 配置GR Helper
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启FSPF的GR Helper能力 |
fspf graceful-restart helper |
缺省情况下,FSPF的GR Helper能力处于开启状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后FC路由与转发的运行情况,通过查看显示信息验证配置的效果。
表7-14 FC路由与转发显示和维护
操作 |
命令 |
显示FC路由表信息 |
display fc routing-table [ vsan vsan-id ] [ statistics | verbose ] display fc routing-table vsan vsan-id fc-id [ mask | mask-length ] [ verbose ] |
显示FC FIB表项信息 |
display fc fib [ fcid [ mask-length ] ] vsan vsan-id |
显示FC Exchange表项信息(独立运行模式) |
display fc exchange { link | protocol } [ slot slot-number ] display fc exchange link verbose [ slot slot-number [ exid exid ] ] |
显示FC Exchange表项信息(IRF模式) |
display fc exchange { link | protocol } [ chassis chassis-number slot slot-number ] display fc exchange link verbose [ chassis chassis-number slot slot-number [ exid exid ] ] |
显示FSPF邻居信息 |
display fspf neighbor [ vsan vsan-id ] |
显示FSPF链路状态数据库信息 |
display fspf lsdb [ vsan vsan-id ] |
显示FSPF GR状态信息 |
display fspf graceful-restart [ vsan vsan-id ] |
显示FSPF统计信息 |
display fspf statistics [ vsan vsan-id ] |
清除FSPF统计信息 |
reset fspf counters [ vsan vsan-id ] |
网络由三台FCF交换机Switch A、Switch B和Switch C组成。
要求:配置静态路由,使任意两台FCF交换机之间都能互通。
图7-1 配置FC静态路由组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
[SwitchA-vsan1] domain configure enable
# 配置Switch A的域ID为1。
[SwitchA-vsan1] domain-id 1 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchA-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode e
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
# 在Switch A上配置两条静态路由。
[SwitchA] vsan 1
[SwitchA-vsan1] fc route-static 020000 8 vfc 1
[SwitchA-vsan1] fc route-static 030000 8 vfc 1
[SwitchA-vsan1] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 1
[SwitchB-vsan1] domain configure enable
# 配置Switch B的域ID为2。
[SwitchB-vsan1] domain-id 2 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchB-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode e
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 1
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchB] interface vfc 2
[SwitchB-Vfc2] fc mode e
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchB-Vfc2] port trunk vsan 1
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能,并将其与VSAN 1进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 1
[SwitchB-vlan10] quit
# 在Switch B上配置两条静态路由。
[SwitchB] vsan 1
[SwitchB-vsan1] fc route-static 010000 8 vfc 1
[SwitchB-vsan1] fc route-static 030000 8 vfc 2
[SwitchB-vsan1] quit
(3) 配置Switch C
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchC> system-view
[SwitchC] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchC> system-view
[SwitchC] fcoe-mode fcf
[SwitchC] vsan 1
[SwitchC-vsan1] domain configure enable
# 配置Switch C的域ID为3。
[SwitchC-vsan1] domain-id 3 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchC-vsan1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchC] interface vfc 2
[SwitchC-Vfc2] fc mode e
[SwitchC-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchC-Vfc2] port trunk vsan 1
[SwitchC-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchC] interface ten-gigabitethernet 1/0/2
[SwitchC-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchC-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchC-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchC] vlan 10
[SwitchC-vlan10] fcoe enable vsan 1
[SwitchC-vlan10] quit
# 在Switch C上配置两条静态路由。
[SwitchC] vsan 1
[SwitchC-vsan1] fc route-static 010000 8 vfc 2
[SwitchC-vsan1] fc route-static 020000 8 vfc 2
[SwitchC-vsan1] quit
# 显示Switch A的VSAN 1的FC路由表。
[SwitchA] display fc routing-table vsan 1
Routing Table: VSAN 1
Destinations : 6 Routes : 6
Destination/mask Protocol Preference Cost Interface
0x020000/8 STATIC 10 0 Vfc1
0x030000/8 STATIC 10 0 Vfc1
0xfffc01/24 DIRECT 0 0 InLoop0
0xfffffa/24 DIRECT 0 0 InLoop0
0xfffffc/24 DIRECT 0 0 InLoop0
0xfffffd/24 DIRECT 0 0 InLoop0
# 显示Switch B的VSAN 1的FC路由表。
[SwitchB] display fc routing-table vsan 1
Routing Table: VSAN 1
Destinations : 6 Routes : 6
Destination/mask Protocol Preference Cost Interface
0x010000/8 STATIC 10 0 Vfc1
0x030000/8 STATIC 10 0 Vfc2
0xfffc02/24 DIRECT 0 0 InLoop0
0xfffffa/24 DIRECT 0 0 InLoop0
0xfffffc/24 DIRECT 0 0 InLoop0
0xfffffd/24 DIRECT 0 0 InLoop0
# 显示Switch C的VSAN 1的FC路由表。
[SwitchC] display fc routing-table vsan 1
Routing Table: VSAN 1
Destinations : 6 Routes : 6
Destination/mask Protocol Preference Cost Interface
0x010000/8 STATIC 10 0 Vfc2
0x020000/8 STATIC 10 0 Vfc2
0xfffc03/24 DIRECT 0 0 InLoop0
0xfffffa/24 DIRECT 0 0 InLoop0
0xfffffc/24 DIRECT 0 0 InLoop0
0xfffffd/24 DIRECT 0 0 InLoop0
# 在Switch A上使用fcping命令验证Switch C是否可达。
[SwitchA] fcping fcid fffc03 vsan 1
FCPING fcid 0xfffc03: 128 data bytes, press CTRL_C to break
Reply from 0xfffc03: bytes = 128 time = 23 ms
Reply from 0xfffc03: bytes = 128 time = 9 ms
Reply from 0xfffc03: bytes = 128 time = 19 ms
Reply from 0xfffc03: bytes = 128 time = 14 ms
Reply from 0xfffc03: bytes = 128 time = 25 ms
--- 0xfffc03 fcping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 9/18/25 ms
网络由两台FCF交换机组成,要求通过动态路由协议FSPF,使两台FCF交换机之间可以互通。
图7-2 配置FSPF组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,创建VSAN 2并开启Fabric配置功能。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 2
[SwitchA-vsan2] domain configure enable
# 配置域ID为1。
[SwitchA-vsan2] domain-id 1 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
# 全局开启FSPF功能。
[SwitchA-vsan2] fspf enable
[SwitchA-vsan2] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 2,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode e
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 2
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 2进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 2
[SwitchA-vlan10] quit
# 开启虚接口VFC1的FSPF功能。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] port trunk vsan 2
[SwitchA-Vfc1] undo fspf silent vsan 2
[SwitchA-Vfc1] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,创建VSAN 2并开启Fabric配置功能。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 2
[SwitchB-vsan2] domain configure enable
# 配置域ID为2。
[SwitchB-vsan2] domain-id 2 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
# 全局开启FSPF功能。
[SwitchB-vsan2] fspf enable
[SwitchB-vsan2] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 2,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode e
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 2
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 2进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 2
[SwitchB-vlan10] quit
# 开启虚接口VFC1的FSPF功能。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] port trunk vsan 2
[SwitchB-Vfc1] undo fspf silent vsan 2
[SwitchB-Vfc1] quit
# 显示Switch A的FSPF邻居信息。
[SwitchA] display fspf neighbor
FSPF neighbor information of VSAN 2(01):
Interface NbrDomain IfIndex NbrIfIndex Dead Time State
Vfc1 2 0x68 0x68 00:01:06 Full
# 显示Switch A路由表相关信息。
[SwitchA] display fc routing-table vsan 2
Routing Table: VSAN 2
Destinations : 5 Routes : 5
Destination/mask Protocol Preference Cost Interface
0x020000/8 FSPF 20 265 Vfc1
0xfffc01/24 DIRECT 0 0 InLoop0
0xfffffa/24 DIRECT 0 0 InLoop0
0xfffffc/24 DIRECT 0 0 InLoop0
0xfffffd/24 DIRECT 0 0 InLoop0
# 在Switch A上执行FC Ping,验证能否到达交换机Switch B。
[SwitchA] fcping fcid fffc02 vsan 2
FCPING fcid 0xfffc02: 128 data bytes, press CTRL_C to break.
Reply from 0xfffc02: bytes = 128 time = 1.102 ms
Reply from 0xfffc02: bytes = 128 time = 0.276 ms
Reply from 0xfffc02: bytes = 128 time = 0.253 ms
Reply from 0xfffc02: bytes = 128 time = 0.270 ms
Reply from 0xfffc02: bytes = 128 time = 0.247 ms
--- 0xfffc02 fcping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 0.247/0.430/1.102 ms
VSAN的划分实现了将一个物理连通的SAN分割成多个逻辑上的虚拟SAN。每个VSAN相互隔离,并独立提供服务,增强了网络的适应性、安全性,使其能够为用户提供更有效的服务。但仅通过VSAN却不能对接入Fabric的服务器及磁盘设备(即N_Port)进行访问控制,它们发送的报文不会带有VSAN信息,所以其所属的VSAN只能由与其连接的FCF交换机的端口(F_Port)所在的VSAN决定,如果F_Port所在VSAN相同,表明对应N_Port属于同一个VSAN。相同VSAN内的N_Port,只要注册了名称服务就可以相互访问,这样给数据安全带来隐患,尤其是在不同的操作系统环境下,很容易对磁盘数据造成破坏。
Zone特性则可以有效解决上述问题,其原理是:在VSAN内进一步划分区域(Zone),在Zone内根据不同的目的添加不同的N_Port成员。使不同Zone内的N_Port成员之间相互隔离,以达到访问控制的目的。
为了控制N_Port之间的访问权限,可以将N_Port按照应用的需要划分到不同的Zone中,这些Zone形成一个集合Zone set。同样的N_Port集合,如果划分Zone的策略不同,将会形成多个Zone set。这些按照不同策略划分出来的各个Zone以及Zone set组成了Zone数据库。
Zone数据库是按照Zone set、Zone、Zone member三级基本对象进行组织的,如图8-1所示。
图8-1 Zone数据库结构
· Zone set是Zone的集合;Zone是Zone member的集合;Zone member是Zone的成员,每个成员都是一个N_Port,称为N_Port成员。N_Port成员可以通过PWWN(即N_Port的WWN)、FC地址进行标识。
· 每个VSAN内可以配置多个Zone set,每个Zone set内可以包含多个Zone,每个Zone内可以包含多个Zone member。
· 为了配置方便,Zone成员配置还支持使用Zone别名,即Zone alias。Zone别名为N_Port的集合,可以将其作为一个整体使用。如果多个Zone内包含很多相同的公共Zone member,可以将这些公共Zone member先加入到同一个Zone别名中,再通过在不同的Zone中引用该Zone别名,达到简化配置的目的。
虽然每个VSAN内可以配置多个Zone set,但只有一个可以生效,称为Active Zone set。最终N_Port成员的访问控制都由Active Zone set决定。
为了让网络中的各设备对N_Port的访问控制有一致的行为,需要通过命令在本地设备上指定Active Zone set,并向整个Fabric进行同步,使其在全网范围内保持一致。
当一个Zone set被激活时,实际上是将激活时刻的Zone set生成一个独立的副本,该副本即是Active Zone set。当再对该Zone set进行修改时,不会对生成的副本造成影响。只有再次激活时,才会将修改的内容更新到副本中。图8-2描述了对Zone set zs2进行激活配置,并修改其配置后重新激活的数据库变化流程。
图8-2 Active Zone set与Zone数据库关系图
Active Zone set中通过包含Zone,将Zone中的N_Port纳入了Active Zone set的范围。对于不在Active Zone set范围内,且已经注册的N_Port则自动属于默认Zone。
如果配置了允许默认Zone内的成员互相访问,可以将默认Zone也当做Active Zone set内的一个Zone,参与N_Port成员之间的访问控制;否则,默认Zone不在Active Zone set内,不参加N_Port成员之间的访问控制。
扩散是由一台设备将自己的Active Zone set或Zone数据库向全网同步的过程。发起扩散的设备称作管理交换机,网络内的其它所有设备称作被管理交换机。
扩散类型分为两种:
· 完全扩散:会将Active Zone set以及数据库都进行扩散。
· 非完全扩散:仅将Active Zone set进行扩散。
有两种途径可以激发扩散过程:
· 一种是通过激活命令zoneset activate将一个Zone set激活成Active Zone set,此Active Zone set在本地生效的同时还将被同步到其他设备;
· 另一种是通过扩散命令zoneset distribute,直接将本设备上的Active Zone set以及Zone数据库向全网同步。
通过激活命令激发的扩散将根据扩散类型决定是否携带Zone数据库,通过扩散命令激发的扩散不受扩散类型的约束,为完全扩散。
被管理交换机使用收到的数据替换本地的Active Zone set或Zone数据库。替换的内容以接收到的数据为准,不受本设备上扩散类型的影响。例如,接收到的数据为Active Zone set和Zone数据库,则替换本地的Active Zone set和Zone数据库,不管本地配置的扩散类型是否为完全同步。
管理交换机和每台被管理交换机之间都经过下列四类报文的交互,来完成报文传输与数据同步:
· ACA(Acquire Change Authorization,获取修改授权)
· SFC(Stage Fabric Configuration Update,进行Fabric配置更新)
· UFC(Update Fabric Configuration,更新Fabric配置)
· RCA(Release Change Authorization,释放修改授权)
这四类报文的作用分别相当于加锁、数据同步、提交和解锁的过程,可以保证不同的用户在不同设备上同时输入命令触发数据扩散时,只有一台设备作为管理交换机进行数据扩散。数据扩散过程如图8-3所示。
(1) 首先,管理交换机要通过ACA请求报文,获取各被管理交换机的状态,该报文带有管理交换机所知道的全网的Domain ID列表,即Fabric中所有交换机的地址。管理交换机向各被管理交换机发送ACA请求报文后进入锁定状态。各被管理交换机收到ACA请求报文后,将报文中的Domain ID列表与本地所知道的Domain ID列表进行比较。如果列表一致,表示Fabric处于稳定状态[1]。这时可以进行同步并回应ACC(确认)报文,同时进入修改授权状态,即进行锁定。否则,如果设备已经处于修改授权状态,或由于其它原因导致不能处理该报文,则回应RJT(拒绝)报文。
(2) 管理交换机只有等到所有被管理交换机都回应ACC报文后,才开始通过发送SFC请求报文进行数据同步。否则发送RCA请求报文,使各交换机解除修改授权状态[2]。
(3) 管理交换机向所有被管理交换机发送SFC请求报文,报文携带了要同步的数据,包括Active Zone set、Zone数据库内容。各个被管理交换机收到SFC请求报文后,如果发现携带有Zone数据库内容,则计算本地Zone数据库被替换后整机Zone set、Zone、Zone别名的总数是否超过规格限制,如果没有超过规格限制则回应ACC报文,否则回应RJT报文。
(4) 管理交换机只有等到所有被管理交换机都回应ACC报文后,才向所有被管理交换机发送UFC请求报文,通知其根据收到的数据更新各自的本地数据。否则发送RCA请求报文,使各交换机解除修改授权状态。
(5) 各个被管理交换机收到UFC请求报文后,开始更新本地的Zone set数据库,如果更新成功回应ACC报文,否则回应RJT报文。
(6) 管理交换机在收到所有交换机的响应后,发送RCA请求报文,使各交换机解除修改授权状态。
(7) 各个被管理交换机收到RCA请求报文后,解除本机的修改授权状态,并回应ACC报文。
(8) 管理交换机收到所有被管理交换机的ACC报文后解除本机的锁定状态。
· [1]:这实际上要求全网的路由信息一定要正确且保持一致,并且不能有多余的不可达路由。尤其是使用静态路由配置时要特别注意这一点,否则,不能正确进行数据扩散。
· [2]:为防止由于被管理交换机状态异常而不回应ACC报文也不回应RJT报文,从而造成管理交换机锁定状态无法解除的情况,管理交换机上启用报文重传机制,在发送扩散请求报文时,最多发送3次。如果一直收不到回应,将解除本机的锁定状态。而管理交换机如果在发送ACA请求后出现异常,导致被管理交换机已经处于锁定状态但接收不到后续的报文,被管理交换机在等待一段时间后解除锁定状态。
当两个Fabric合并到一起时,可能每个Fabric内部都存在Active Zone set和Zone数据库。这时要将Zone相关配置数据进行合并。
合并类型分为两种:
· 完全合并:会将Active Zone set以及数据库都进行合并。
· 非完全合并:仅将Active Zone set进行合并。
由发起合并的设备,检查本地配置的数据合并类型,如果为非完全合并,发送的报文就只携带Active Zone set,如果为完全合并,则同时携带Active Zone set和整个Zone数据库。
· Zone合并发起方根据当前本地配置的数据合并类型决定合并的数据内容,合并接收方对接收到的所有数据进行合并处理而不受本地数据合并类型限制。
· Zone成员可以通过FC地址进行区分,但是当Fabric合并时,FC地址有可能发生变化,最终合并出的结果可能并不是用户期望的,所以应该尽量使用端口PWWN作为成员标识。
当交换机发现新增的邻居(由链路模块负责发现邻居并通知给Zone模块)时,就开始与该邻居进行合并过程,如果合并后的数据发生了变化,就将变化后的数据发送给所有邻居交换机进行再次Zone合并,直到全网所有交换机的数据都得到更新。
合并过程中,先使用MRRA(Merge Request Resource Allocation,合并请求资源分配)报文协商传输数据的规模,之后再使用MR(Merge Request,合并请求)报文携带需要合并的数据发送到邻居节点。
两台交换机Zone合并过程如图8-4所示。
图8-4 两台交换机Zone合并过程图
(1) A和B互为新邻居,且假设首先由A向B发起合并:
a. A向B发送MRRA请求报文,该报文中携带着本地需要合并的数据的规模;
b. B接收到A发送的MRRA请求报文后,根据报文中的数据规模并结合本地数据规模判断是否能够接受此次合并,如果能接受,则回应ACC报文,否则回应RJT报文;
c. A收到B回复的ACC报文后,向B发送MR请求报文,该报文中携带了A的Zone数据;
d. B收到A发送的MR请求报文后,获取报文中的Zone数据并与本地的Zone数据进行合并。合并成功向A回应ACC报文,否则回应RJT报文并携带合并失败的原因。
(2) A向B发起的合并过程完成之后,如果B发现本地数据与从A同步过来的数据完全一致,或者本地数据是从A同步过来的数据的子集,则结束A和B之间的合并过程,否则,B将继续发起向A的合并。由B向A发起的合并过程与由A向B发起的合并过程类似,如图中5、6、7、8所示。
(3) A向B发起的合并过程完成之后,如果B发现本地数据库因为合并发生了变化,将会试图将这种变化同步到整个网络,这种同步是通过B向自己的所有邻居发起合并过程完成的。
(4) A和B之间,至多经过两个单向的合并过程即可保证两台设备之间数据的一致性。
合并过程可以保证相互合并的设备间Active Zone set的一致性,但是数据库是否一致则决定于各台设备上配置的同步类型是否均为完全同步。当各台设备上均配置了完全同步,经过合并,可以让多台设备上的Zone数据库达到一致。
Zone数据合并具体规则如表8-1所示。
表8-1 Zone数据合并规则
本地数据库 |
邻居数据库 |
合并状态 |
合并结果 |
数据库包含同名的Zone set但其中的Zone名称不同 |
成功 |
本地数据库与邻居数据库的并集,同名Zone set进行合并 |
|
数据库包含不同名的Zone set |
成功 |
本地数据库与邻居数据库的并集,不同名Zone set均存在 |
|
数据库包含不同名的Zone或Zone别名 |
成功 |
本地数据库与邻居数据库的并集,不同名Zone或Zone别名均存在 |
|
数据库包含同名的Zone或Zone别名,但其中的端口成员不同 |
失败 |
邻居数据库和本地数据库无变化 |
|
空 |
非空 |
成功 |
邻居数据库覆盖本地数据库 |
非空 |
空 |
成功 |
本地数据库覆盖邻居数据库 |
· 若发生合并的两台设备上配置的Active Zone set名字不同,则通过字符串比较的方式得到Active Zone set名字较大的一个做为合并之后的Active Zone set名字。
· 按照表8-1中的规则合并后,如果Active Zone set合并失败,则会将发生合并的两台设备之间的链路隔离(端口在该VSAN内处于down状态),合并双方的数据库不发生改变;如果Zone数据库合并失败,则不会隔离发生合并的两台设备之间的链路,仅仅是合并双方的数据库不发生改变。
当用户所在服务器需要使用名称服务访问磁盘时,需要确认该服务器与要访问的磁盘是否同时属于Active Zone set内的某个Zone的N_Port成员。只有属于同一个Zone的成员才允许互相访问,否则不允许互相访问。
表8-2 FC Zone配置任务简介
配置任务 |
说明 |
详细配置 |
配置Zone别名 |
可选 |
|
配置Zone |
必选 |
|
配置Zone set |
必选 |
|
配置默认Zone策略 |
必选 |
|
配置Zone扩散和合并类型 |
必选 |
|
激活Zone set并发起向全网的扩散过程 |
必选 |
|
激发完全扩散过程 |
可选 |
|
重命名Zone别名、Zone、Zone set |
可选 |
|
复制Zone别名、Zone、Zone set |
可选 |
|
清除Zone数据库 |
可选 |
· 在设备进行扩散或合并的过程中,用户无法修改Zone的配置。
· 一个Fabric网络中同时只能有一个管理交换机正在发起扩散,只有当一次扩散完成后才能发起下一次扩散。
每台设备的所有VSAN内最多可以配置256个Zone别名。
Zone别名中的N_Port成员可以通过FC地址、PWWN方式进行配置,所配置的N_Port成员不要求必须是本机直连的N_Port,可以任意配置。
表8-3 配置Zone别名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
创建Zone别名并进入其视图 |
zone-alias name zone-alias-name |
如果指定的Zone别名已经创建,则直接进入该Zone别名的视图 |
在Zone别名内添加成员 |
member { fcid fcid | pwwn pwwn } |
缺省情况下,Zone别名内不存在任何N_Port成员 |
每台设备的所有VSAN内最多可以配置512个Zone。
Zone中的成员可以通过N_Port的FC地址、PWWN或Zone别名方式进行配置,所配置的N_Port成员不要求必须是本机直连的N_Port,可以任意配置。一个N_Port可以同时属于多个Zone。
表8-4 配置Zone
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
创建Zone并进入其视图 |
zone name zone-name |
如果指定的Zone已经创建,则直接进入该Zone的视图 |
在Zone内添加成员 |
member { fcid fcid | pwwn pwwn | zone-alias zone-alias-name } |
缺省情况下,Zone内不存在任何成员 |
每台设备的所有VSAN内最多可以配置128个Zone set。
表8-5 配置Zone set
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
创建Zone set并进入其视图 |
zoneset name zoneset-name |
如果指定的Zone set已经创建,则直接进入该Zone set的视图 |
在Zone set内添加Zone |
member zone-name |
缺省情况下,Zone set内不存在任何Zone |
表8-6 配置默认Zone策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置允许默认Zone内的成员互相访问 |
zone default-zone permit |
二者选其一 缺省情况下,默认Zone内的成员禁止互相访问 |
配置禁止默认Zone内的成员互相访问 |
undo zone default-zone permit |
完全扩散和完全合并会将Active Zone Set以及数据库都进行扩散和合并;非完全扩散和非完全合并仅将Active Zone Set进行扩散和合并。
需要注意的是:
· 扩散类型仅会对使用zoneset activate命令激发的扩散过程产生影响,对使用zoneset distrbute命令激发的扩散不会产生影响。
· 合并类型会对所有合并过程产生影响。
表8-7 配置Zone扩散和合并类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置扩散和合并类型为完全扩散和完全合并 |
zoneset distribute full |
缺省情况下,扩散和合并类型为非完全扩散和非完全合并 |
激活指定Zone set,使其成为Active Zone set,同时向全网进行扩散,并以此Zone set配置进行访问控制。用户执行的后续配置不会影响当前Active Zone set数据,直到去激活当前Active Zone set、重新配置激活命令、进行数据扩散或进行合并。
激活Zone set时,用户需保证所激活的Zone set必须已经存在,且被激活的Zone set中至少要包含一个N_Port成员。
同一VSAN内只能够存在一个Active Zone set。
在将Active Zone set进行全网扩散时,设备会根据zoneset distribute full命令配置的扩散类型来决定扩散时是否携带数据库信息。
表8-8 激活Zone set并发起向全网的扩散过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
激活指定Zone set生成Active Zone Set,并发起向全网的扩散过程 |
zoneset activate name zoneset-name |
- |
不支持在Active Zone set信息中以Zone别名显示成员。配置激活Zone set后,如果该Zone set中的Zone存在Zone别名类型成员,会直接将Zone别名中的非重复N_Port成员添加到Zone。用户能够通过显示命令display zoneset active观察这一变化。
配置该命令会触发Zone数据扩散流程,且为完全扩散,即将Active Zone set和数据库均携带在报文中进行扩散。
使用激活命令zoneset activate激活一个Zone set成为Active Zone set后,用户可以继续修改数据库的配置,本命令可以在不改变Active Zone set的同时将Active Zone set以及修改后的数据库向全网扩散。
表8-9 激发完全扩散过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
激发完全扩散过程 |
zoneset distribute |
- |
用户可以通过下面的配置修改Zone别名、Zone、Zone set的名称。
表8-10 重命名Zone别名、Zone、Zone set
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
修改Zone别名的名称 |
zone-alias rename old-name new-name |
待重命名的Zone别名必须已创建,新的Zone别名必须未被创建 |
修改Zone的名称 |
zone rename old-name new-name |
待重命名的Zone必须已创建,新的Zone必须未被创建 |
修改Zone set的名称 |
zoneset rename old-name new-name |
待重命名的Zone set必须已创建,新的Zone set必须未被创建 |
用户可以通过复制一个已经存在的Zone别名、Zone、Zone set,产生新的Zone别名、Zone、Zone set。二者名称不同,但包含的内容相同。
表8-11 复制Zone别名、Zone、Zone set
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
复制Zone别名 |
zone-alias clone src-name dest-name |
被复制的Zone别名必须已创建,复制后的目的Zone别名必须未被创建 |
复制Zone |
zone clone src-name dest-name |
被复制的Zone必须已创建,复制后的目的Zone必须未被创建 |
复制Zone set |
zoneset clone src-name dest-name |
被复制的Zone set必须已创建,复制后的目的Zone set必须未被创建 |
通过本命令可以删除指定VSAN内的Zone数据库信息,包括所有Zone set、Zone以及Zone别名,但是Active Zone set不会被删除。
表8-12 清除Zone数据库信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
清除Zone数据库信息 |
delete zone database all |
- |
在完成上述配置后,在任意视图下执行display命令可以显示配置后FC Zone的运行情况,通过查看显示信息验证配置的效果。
表8-13 FC Zone显示和维护
操作 |
命令 |
显示Zone别名的相关信息 |
display zone-alias [ [ name zone-alias-name ] vsan vsan-id ] |
显示Zone的相关信息 |
display zone [ [ name zone-name ] vsan vsan-id ] |
显示Zone set的相关信息 |
display zoneset [ [ name zoneset-name ] vsan vsan-id ] |
显示Active Zone set的相关信息 |
display zoneset active [ vsan vsan-id ] |
显示指定Zone成员所属的父亲信息(父亲信息包括:成员所属的Zone和Zone别名,以及Zone别名所属的Zone) |
display zone member { fcid fcid | pwwn pwwn | zone-alias zone-alias-name } [ vsan vsan-id ] |
显示FC Zone的配置信息以及运行状态 |
display zone status [ vsan vsan-id ] |
VSAN 1内3台服务器和3个磁盘设备共同接入一个Fabric中,节点设备分别以FC地址或PWWN进行标识,如图8-5所示。所有节点设备均已向交换机完成注册。
VSAN 1中需要对访问权限进行控制,具体需求如下:
· 服务器Server A不访问磁盘,但以后有可能添加访问磁盘需求。
· 服务器Server B能访问磁盘Disk A、Disk B、Disk C的数据。
· 服务器Server C能访问磁盘Disk B、Disk C的数据。
· 服务器之间不能相互访问。
为实现上述需求,考虑将VSAN 1划分为3个Zone,其中:
· Zone1包括Server A
· Zone2包括Server B、Disk A、Disk B、Disk C
· Zone3包括Server C、Disk B 、Disk C
同时创建Zone别名Alias1包含Disk B、Disk C,以简化配置。
创建Zone set Zoneset1包括Zone1、Zone2、Zone3并激活生效。
在Switch A上进行配置并激活,将当前完整数据库配置同步到Switch B。
· 只需在Switch A上进行如下配置,Switch B上不需要进行Zone相关配置。
· 举例中各交换机以太网接口与VFC接口绑定配置及VLAN内映射VSAN的配置略,具体配置可参考“3.1.2 配置VFC接口”与“3.1.3 开启VLAN的FCoE功能,并指定映射VSAN”。
· 举例中交换机上与服务器/存储的CNA网卡连接的以太网接口必须加入DCBX配置,配置过程略,配置DCBX功能请参考“二层技术-以太网交换配置指导”中的“LLDP配置”。
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
# 创建Zone别名Alias1,添加PWWN为22:33:44:55:66:77:88:99、FC地址为020004的两个成员,即Disk B和Disk C。
[SwitchA-vsan1] zone-alias name Alias1
[SwitchA-vsan1-zone-alias-Alias1] member pwwn 22:33:44:55:66:77:88:99
[SwitchA-vsan1-zone-alias-Alias1] member fcid 020004
[SwitchA-vsan1-zone-alias-Alias1] quit
# 创建Zone1,添加FC ID为010001的成员;创建Zone2,添加FC地址为010002、PWWN为11:22:33:44:55:66:77:88、Zone别名为Alias1的成员;创建Zone3,添加FC地址为010003、Zone别名为Alias1的成员。
[SwitchA-vsan1] zone name Zone1
[SwitchA-vsan1-zone-Zone1] member fcid 010001
[SwitchA-vsan1-zone-Zone1] quit
[SwitchA-vsan1] zone name Zone2
[SwitchA-vsan1-zone-Zone2] member fcid 010002
[SwitchA-vsan1-zone-Zone2] member pwwn 11:22:33:44:55:66:77:88
[SwitchA-vsan1-zone-Zone2] member zone-alias Alias1
[SwitchA-vsan1-zone-Zone2] quit
[SwitchA-vsan1] zone name Zone3
[SwitchA-vsan1-zone-Zone3] member fcid 010003
[SwitchA-vsan1-zone-Zone3] member zone-alias Alias1
[SwitchA-vsan1-zone-Zone3] quit
# 创建Zone set Zoneset1,添加Zone1、Zone2、Zone3为其成员。
[SwitchA-vsan1] zoneset name Zoneset1
[SwitchA-vsan1-zoneset-Zoneset1] member Zone1
[SwitchA-vsan1-zoneset-Zoneset1] member Zone2
[SwitchA-vsan1-zoneset-Zoneset1] member Zone3
[SwitchA-vsan1-zoneset-Zoneset1] quit
# 配置扩散和合并类型为完全扩散和完全合并,即携带完整数据库信息进行数据同步。
[SwitchA-vsan1] zoneset distribute full
# 激活Zone set并发起向全网的扩散过程。
[SwitchA-vsan1] zoneset activate name Zoneset1
在Switch A和Switch B上通过显示命令都能够观察到Zone配置结果和数据同步结果。下面以Switch B上的显示为例:
# 查看VSAN 1内的Zone set相关信息。
<SwitchB> display zoneset vsan 1
VSAN 1:
zoneset name Zoneset1
zone name Zone1
fcid 0x010001
zone name Zone2
fcid 0x010002
pwwn 11:22:33:44:55:66:77:88
zone-alias Alias1
fcid 0x020004
pwwn 22:33:44:55:66:77:88:99
zone name Zone3
fcid 0x010003
zone-alias Alias1
fcid 0x020004
pwwn 22:33:44:55:66:77:88:99
# 查看VSAN 1内Zone2的相关信息。
<SwitchB> display zone name Zone2 vsan 1
VSAN 1:
zone name Zone2
fcid 0x010002
pwwn 11:22:33:44:55:66:77:88
zone-alias Alias1
fcid 0x020004
pwwn 22:33:44:55:66:77:88:99
# 查看所有Zone别名的相关信息。
<SwitchB> display zone-alias
VSAN 1:
zone-alias name Alias1
fcid 0x020004
pwwn 22:33:44:55:66:77:88:99
# 查看FC地址类型成员020004所属于的Zone或Zone别名。
<SwitchB> display zone member fcid 020004
fcid 0x020004
VSAN 1:
zone-alias Alias1
zone Zone2
zone Zone3
# 查看VSAN 1内的Active Zone set相关信息。
<SwitchB> display zoneset active vsan 1
VSAN 1:
zoneset name Zoneset1
zone name Zone1
*fcid 0x010001
zone name Zone2
*fcid 0x010002
*fcid 0x020004
*fcid 0x020005 [pwwn 22:33:44:55:66:77:88:99]
*fcid 0x020006 [pwwn 11:22:33:44:55:66:77:88]
zone name Zone3
*fcid 0x010003
*fcid 0x020004
*fcid 0x020005 [pwwn 22:33:44:55:66:77:88:99]
NPV功能可以使FC SAN中的交换机突破239台最大数目的限制,扩充网络的规模。
NPV交换机位于Fabric网络边缘,处于节点设备与核心交换机之间,将节点设备的流量转发到核心交换机。NPV的典型组网如图9-1所示。
图9-1 NPV典型组网图
NPV交换机和核心交换机之间必须直连。
NPV交换机上,和节点设备相连的接口称为下行口,也称之为server interface。
下行口是VFC接口,且接口必须配置为F模式。
下行链路是NPV交换机和节点设备之间的链路。
每个下行口会唯一映射到一个生效(链路up)的上行口,所有和该下行口相连的节点设备的数据都会通过映射的上行口转发到核心交换机。
NPV交换机上,和核心交换机相连的接口称为上行口,也称之为external interface。
上行口是VFC接口,且接口必须配置为NP模式。
上行链路是NPV交换机和核心交换机之间的链路。
在上行链路生效后,NPV交换机向核心交换机发送FLOGI报文进行注册,核心交换机将为上行口(NP端口)分配一个FC地址。随后,NPV交换机将向核心交换机的名称服务进行注册。后续,当NPV交换机从下行口上收到节点设备发送的报文(包括注册报文在内的所有报文)时,NPV交换机负责将报文从该下行口映射的上行口发送给核心交换机,并将回应报文从下行口转发给节点设备。
NPV交换机会自动的进行上下行口的映射,在下行口生效前,NPV交换机会从当前所有生效的上行口中选择一个负载最小的上行口,将下行口映射到选中的上行口。这里的负载是指上行口上映射的下行口的数目。
在自动映射不能满足组网需求(比如需要下行口通过指定的上行口连接到Fabric网络)时,可以通过配置上下行口映射关系来将下行口映射到指定的上行口或上行口的集合。一旦配置了映射关系,则下行口就只能映射到用户配置的上行口,如果配置的上行口都没有生效,则下行口也无法生效。
在有配置的映射关系时,进行上下行口映射是从用户配置的上行口集合中选择负载最小的上行口,然后将下行口映射到选中的上行口。
上下行口建立映射关系后,从下行口过来的流量均通过映射的上行口进行转发。
当有新的上行口生效时,NPV交换机并不会自动对已有的上下行口映射进行重新映射,以达到负载均衡。因为重新映射时,NPV交换机将对下行口进行链路初始化,要求和下行口相连的节点设备重新进行注册,这样会导致流量中断。
当有新的上行口生效时,如果用户希望重新进行上下行口映射,以达到更好的负载均衡效果,可以通过命令行触发重新映射,此时会对所有下行口进行链路初始化。
表9-1 NPV配置任务简介
配置任务 |
说明 |
详细配置 |
配置交换机工作在NPV模式 |
必选 |
|
配置上下行口 |
必选 |
|
配置上下行口映射关系 |
可选 |
|
发起中断负载均衡 |
可选 |
交换机工作在NPV模式后,用户需要配置上行口和下行口。
上行口是VFC接口,且接口必须配置为NP模式。
表9-2 配置上行口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
该接口与核心交换机相连 |
配置接口为NP模式 |
fc mode np |
缺省情况下,NPV模式交换机的VFC接口为F模式 |
下行口是VFC接口,且接口必须配置为F模式。
表9-3 配置下行口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VFC接口视图 |
interface vfc interface-number |
该接口与节点设备相连 |
配置接口为F模式 |
fc mode f |
缺省情况下,NPV模式交换机的VFC接口为F模式 |
配置上下行口的映射关系后,如果下行口当前映射的上行口不在配置的映射关系中,则触发下行口链路初始化,流量中断。
NPV交换机会自动进行上下行口的映射,当上下行口自动映射不能满足组网需求(比如需要下行口通过指定的上行口连接到Fabric网络)时,可以通过配置上下行口映射关系来将下行口映射到指定的上行口或上行口的集合。
一旦配置了映射关系,则下行口就只能映射到用户配置的上行口,如果配置的上行口都没有生效,则下行口也无法生效。在有配置的映射关系时,进行上下行口映射是从用户配置的上行口集合中选择负载最小的上行口,然后将下行口映射到选中的上行口。
表9-4 配置上下行口映射关系
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
配置上下行口的映射关系 |
npv traffic-map server-interface interface-type interface-number external-interface interface-type interface-number |
缺省情况下,上下行口之间不存在映射关系 |
发起中断负载均衡过程后,系统会重新进行上下行口的负载均衡分配,以达到更好的负载均衡效果,但会破坏已经稳定的上下行口的映射关系,从而导致流量中断。
当在某VSAN内各个接口负载不均衡时,可以使用该命令发起VSAN内的中断负载均衡过程,强制在该VSAN内的所有下行节点重新登录。
表9-5 发起中断负载均衡
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSAN视图 |
vsan vsan-id |
- |
发起中断负载均衡过程 |
npv load-balance disruptive |
- |
在完成上述配置后,在任意视图下执行display命令可以显示配置后NPV的运行情况,通过查看显示信息验证配置的效果。
表9-6 NPV显示和维护
操作 |
命令 |
显示NPV交换机的下行口上相连的节点设备的注册信息和映射的上行口 |
display npv login [ vsan vsan-id ] [ interface interface-type interface-number ] display npv login [ vsan vsan-id ] count |
显示NPV交换机上的流量映射信息 |
display npv traffic-map [ vsan vsan-id ] [ interface interface-type interface-number ] |
显示NPV交换机的状态信息 |
display npv status [ vsan vsan-id ] |
如图9-2所示,网络由边缘交换机Switch A、核心交换机Switch B和两个服务器组成。
要求:将边缘交换机Switch A配置为NPV交换机,以便扩充网络规模。
图9-2 配置NPV组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为NPV模式,进入VSAN 1的视图。
<SwitchA> system-view
[SwitchA] fcoe-mode npv
[SwitchA] vsan 1
[SwitchA-vsan1] quit
# 全局开启LLDP功能。
[SwitchA] lldp global enable
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上开启LLDP功能,并允许发布DCBX TLV。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/1] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] lldp enable
[SwitchA-Ten-GigabitEthernet1/0/2] lldp tlv-enable dot1-tlv dcbx
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 创建编号为4000的二层ACL,并为其创建规则来匹配FCoE报文(协议号为0x8906)和FIP报文(协议号为0x8914)。
[SwitchA] acl number 4000
[SwitchA-acl-ethernetframe-4000] rule permit type 8906 ffff
[SwitchA-acl-ethernetframe-4000] rule permit type 8914 ffff
[SwitchA-acl-ethernetframe-4000] quit
# 定义名为app_c的类,其下各规则间的关系为逻辑或,并定义其匹配ACL 4000。
[SwitchA] traffic classifier app_c operator or
[SwitchA-classifier-app_c] if-match acl 4000
[SwitchA-classifier-app_c] quit
# 定义名为app_b的流行为,并配置标记报文的802.1p优先级为3。
[SwitchA] traffic behavior app_b
[SwitchA-behavior-app_b] remark dot1p 3
[SwitchA-behavior-app_b] quit
# 定义名为plcy的策略,为类app_c指定采用的流行为是app_b,并指定该策略为DCBX模式。
[SwitchA] qos policy plcy
[SwitchA-qospolicy-plcy] classifier app_c behavior app_b mode dcbx
[SwitchA-qospolicy-plcy] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2的出方向上应用策略plcy。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] qos apply policy plcy outbound
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 在报文出方向上配置802.1p优先级3到本地优先级3的映射(这是缺省的映射关系,用户可根据实际情况自行规划映射关系)。
[SwitchA] qos map-table dot1p-lp
[SwitchA-maptbl-out-dot1p-lp] import 3 export 3
[SwitchA-maptbl-out-dot1p-lp] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上开启WRR队列,并按照每次轮询可发送的字节数进行计算,同时配置端口队列3采用严格优先级调度算法。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/1] qos wrr 3 group sp
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] qos wrr byte-count
[SwitchA-Ten-GigabitEthernet1/0/2] qos wrr 3 group sp
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 在以太网接口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上配置PFC功能的开启模式为自动协商模式,对802.1p优先级3开启PFC功能,并配置信任报文自带的802.1p优先级。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/1] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/1] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/1] quit
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] priority-flow-control auto
[SwitchA-Ten-GigabitEthernet1/0/2] priority-flow-control no-drop dot1p 3
[SwitchA-Ten-GigabitEthernet1/0/2] qos trust dot1p
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC1,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchA] interface vfc 2
[SwitchA-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchA-Vfc2] port trunk vsan 1
[SwitchA-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/2] quit
# 创建虚接口VFC3,将虚接口VFC3绑定到以太网接口Ten-GigabitEthernet1/0/3上,并将虚接口VFC3以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC3。
[SwitchA] interface vfc 3
[SwitchA-Vfc3] bind interface ten-gigabitethernet 1/0/3
[SwitchA-Vfc3] port trunk vsan 1
[SwitchA-Vfc3] quit
# 配置以太网接口Ten-GigabitEthernet1/0/3允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/3
[SwitchA-Ten-GigabitEthernet1/0/3] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/3] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/3] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
# 配置上行口。
[SwitchA] interface vfc 3
[SwitchA-Vfc3] fc mode np
[SwitchA-Vfc3] quit
# 配置下行口。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode f
[SwitchA-Vfc1] quit
[SwitchA] interface vfc 2
[SwitchA-Vfc2] fc mode f
[SwitchA-Vfc2] quit
# 显示NPV交换机Switch A的下行口上连接的节点设备的Login信息和映射的上行口。
[SwitchA] display npv login
Server External
Interface VSAN FCID Port WWN Node WWN Interface
Vfc1 1 0x010001 21:00:00:00:c8:00:e4:30 20:00:00:00:c8:60:e4:9a Vfc3
Vfc2 1 0x010002 21:00:00:00:c9:00:e4:30 20:00:00:00:c9:60:e4:9a Vfc3
# 显示NPV交换机Switch A的状态信息。
[SwitchA] display npv status
External Interfaces:
Interface: Vfc3 VSAN tagging mode: Tagging
VSAN State FCID
1 Up 0x010000
Number of External Interfaces: 1
Server Interfaces:
Interface : Vfc1 VSAN tagging mode: Tagging
VSAN State
1 Up
Interface : Vfc2 VSAN tagging mode: Tagging
VSAN State
1 Up
Number of Server Interfaces: 2
# 显示NPV交换机Switch A上的流量映射信息。
[SwitchA] display npv traffic-map
NPV traffic map information of VSAN 1:
Server Interface External Interface
Vfc1 Vfc3
Vfc2 Vfc3
在FC SAN中,用户可以使用FC Ping检查目的地址是否可达,测试网络连接是否出现故障。
FC Ping的工作原理是:源端向目的端发送ECHO请求报文后,根据是否收到目的端的ECHO回应报文来判断目的端是否可达。对于可达的目的端,用户可以根据发送报文个数、接收到回应报文个数来判断链路的质量;根据FC Ping报文的往返时间来判断源端与目的端之间的“距离”。
目前,交换机可以实现下列FC Ping功能:
· FC Ping N_Port:在交换机上执行命令,FC Ping远端的N_Port。FC Ping的目的地址为N_Port的FC地址。
· FC Ping交换机:在交换机上执行命令,FC Ping远端交换机。FC Ping的目的地址为目的交换机的域控制器地址FFFCxx,其中,xx为目的交换机的域ID。
表10-1 配置FC Ping
命令 |
说明 |
|
检查指定目的地址是否可达 |
fcping [ -c count | -t timeout ] * fcid fcid vsan vsan-id |
本命令可在任意视图下执行 在执行命令过程中,键入<Ctrl+C>可终止FC Ping操作 |
检查Switch A和Switch B之间是否可达。
图10-1 配置FC Ping组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
[SwitchA-vsan1] domain configure enable
# 配置Switch A的域ID为1。
[SwitchA-vsan1] domain-id 1 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchA-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode e
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
# 在Switch A上配置静态路由。
[SwitchA] vsan 1
[SwitchA-vsan1] fc route-static 020000 8 vfc 1
[SwitchA-vsan1] quit
(2) 配置Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 1
[SwitchB-vsan1] domain configure enable
# 配置Switch B的域ID为2。
[SwitchB-vsan1] domain-id 2 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
[SwitchB-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode e
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 1
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 1
[SwitchB-vlan10] quit
# 在Switch B上配置静态路由。
[SwitchB] vsan 1
[SwitchB-vsan1] fc route-static 010000 8 vfc 1
[SwitchB-vsan1] quit
检查Switch A和Switch B之间是否可达。
# 在Switch A上使用fcping命令验证Switch B是否可达。
[SwitchA] fcping fcid fffc02 vsan 1
FCPING fcid 0xfffc02: 128 data bytes, press CTRL_C to break.
Reply from 0xfffc02: bytes = 128 time = 23 ms
Reply from 0xfffc02: bytes = 128 time = 9 ms
Reply from 0xfffc02: bytes = 128 time = 19 ms
Reply from 0xfffc02: bytes = 128 time = 14 ms
Reply from 0xfffc02: bytes = 128 time = 25 ms
--- 0xfffc02 fcping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 9/18/25 ms
用户可以通过FC Tracert功能获取本端到目的端之间的双向路由信息,从而检查网络连接是否可用。当网络出现故障时,用户可以使用该功能分析出现故障的网络节点。
FC Tracert的目的端可以是N节点,也可以是FCF交换机。
FC Tracert过程分为上行、下行两个子过程:
l 在上行过程中,从本端开始,逐跳向到达目的端经过的所有交换机发送STR(Switch Trace Route,FCF交换机路由探测)报文,直至目的交换机(如果FC Tracert的目的端是N节点,目的交换机指的是与N节点直连的FCF交换机)。在这个过程中,每台交换机都会向STR报文中添加本机的上行路径信息,包括交换机的WWN、域ID等信息。STR报文到达目的交换机后,将开始下行过程。
l 在下行过程中,从目的端开始,逐跳向到达源端经过的所有交换机发送STR报文,直至源交换机。同样,在这个过程中,每台交换机都会向STR报文中添加本机的下行路径信息,包含的信息内容与上行路径信息相同。当源交换机收到下行的STR报文后,表示整个FC Tracert过程结束。源交换机将输出STR报文中携带的所有经过的上行和下行交换机信息。如果在FC Tracert过程中的任一中间交换机上处理失败,会在STR报文中设置相应的错误原因,并将该STR报文(报文中包含已经通过的交换机的信息)直接发给源交换机。
下面以图11-1为例,介绍一下FC Tracert的基本过程。
图11-1 FC Tracert过程示意图
Switch A FC Tracert Switch C的基本过程如下:
(1) 源交换机Switch A将自己的上行路径信息(包括交换机的WWN和域ID)填入STR请求报文,并将该STR请求报文发给下一跳交换机Switch B。Switch B收到STR请求报文后,向Switch A回STR ACC报文,表明自己收到了STR请求报文;
(2) Switch B将自己的上行路径信息添加到收到的STR请求报文中以后,将该STR请求报文发给目的交换机Switch C。Switch C收到STR请求报文后,向Switch B回STR ACC报文;
(3) 目的交换机Switch C将自己的上行路径信息也添加到收到的STR请求报文中,完成上行路径信息收集。
(1) 目的交换机Switch C以相同方式逐跳发送STR请求报文到源交换机Switch A,完成下行路径信息收集;
(2) 源交换机Switch A收到携带下行标志的STR请求报文后,将输出STR请求报文中携带的所有上行和下行交换机信息。
表11-1 配置FC Tracert
操作 |
命令 |
说明 |
探测本端到目的端的双向路由信息 |
fctracert [ -t timeout ] fcid fcid vsan vsan-id |
本命令可在任意视图下执行 在执行命令过程中,键入<Ctrl+C>可终止FC Tracert操作 |
通过FC Tracert功能获取Switch A到Switch C的双向路由信息。如果路由不可达,需要确定故障的网络节点。
图11-2 配置FC Tracert组网图
(1) 配置Switch A
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchA> system-view
[SwitchA] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchA> system-view
[SwitchA] fcoe-mode fcf
[SwitchA] vsan 1
[SwitchA-vsan1] domain configure enable
# 配置域ID为1。
[SwitchA-vsan1] domain-id 1 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
# 关闭FSPF功能。
[SwitchA-vsan1] undo fspf enable
# 配置静态路由。
[SwitchA-vsan1] fc route-static 020000 8 vfc 1
[SwitchA-vsan1] fc route-static 030000 8 vfc 1
[SwitchA-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchA] interface vfc 1
[SwitchA-Vfc1] fc mode e
[SwitchA-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchA-Vfc1] port trunk vsan 1
[SwitchA-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchA-Ten-GigabitEthernet1/0/1] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchA] vlan 10
[SwitchA-vlan10] fcoe enable vsan 1
[SwitchA-vlan10] quit
(2) 配置 Switch B
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchB> system-view
[SwitchB] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchB> system-view
[SwitchB] fcoe-mode fcf
[SwitchB] vsan 1
[SwitchB-vsan1] domain configure enable
# 配置域ID为2。
[SwitchB-vsan1] domain-id 2 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
# 关闭FSPF功能。
[SwitchB-vsan1] undo fspf enable
# 配置静态路由。
[SwitchB-vsan1] fc route-static 010000 8 vfc 1
[SwitchB-vsan1] quit
# 创建虚接口VFC1,配置虚接口VFC1工作在E模式,将虚接口VFC1绑定到以太网接口Ten-GigabitEthernet1/0/1上,并将虚接口VFC1以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC1。
[SwitchB] interface vfc 1
[SwitchB-Vfc1] fc mode e
[SwitchB-Vfc1] bind interface ten-gigabitethernet 1/0/1
[SwitchB-Vfc1] port trunk vsan 1
[SwitchB-Vfc1] quit
# 配置以太网接口Ten-GigabitEthernet1/0/1允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/1
[SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchB] interface vfc 2
[SwitchB-Vfc2] fc mode e
[SwitchB-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchB-Vfc2] port trunk vsan 1
[SwitchB-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchB] interface ten-gigabitethernet 1/0/2
[SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchB-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchB] vlan 10
[SwitchB-vlan10] fcoe enable vsan 1
[SwitchB-vlan10] quit
(3) 配置 Switch C
# 配置设备工作模式为高级模式并保存配置重启设备(如果已经配置设备为高级模式此步骤可略)。
<SwitchC> system-view
[SwitchC] system-working-mode advance
Do you want to change the system working mode? [Y/N]:y
The system working mode is changed, please save the configuration and reboot the
system to make it effective.
# 配置FCoE模式为FCF模式,进入VSAN 1的视图并开启Fabric配置功能。
<SwitchC> system-view
[SwitchC] fcoe-mode fcf
[SwitchC] vsan 1
[SwitchC-vsan1] domain configure enable
# 配置域ID为3。
[SwitchC-vsan1] domain-id 3 static
Non-disruptive reconfiguration or isolating the switch may be performed. Continu
e? [Y/N]:y
# 关闭FSPF功能。
[SwitchC-vsan1] undo fspf enable
[SwitchC-vsan1] quit
# 创建虚接口VFC2,配置虚接口VFC2工作在E模式,将虚接口VFC2绑定到以太网接口Ten-GigabitEthernet1/0/2上,并将虚接口VFC2以Trunk方式加入VSAN 1,即允许VSAN 1的报文通过虚接口VFC2。
[SwitchC] interface vfc 2
[SwitchC-Vfc2] fc mode e
[SwitchC-Vfc2] bind interface ten-gigabitethernet 1/0/2
[SwitchC-Vfc2] port trunk vsan 1
[SwitchC-Vfc2] quit
# 配置以太网接口Ten-GigabitEthernet1/0/2允许VLAN 10的报文通过。
[SwitchC] interface ten-gigabitethernet 1/0/2
[SwitchC-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchC-Ten-GigabitEthernet1/0/2] port trunk permit vlan 10
[SwitchC-Ten-GigabitEthernet1/0/2] quit
# 开启VLAN 10的FCoE功能、并将其与VSAN 1进行映射。
[SwitchC] vlan 10
[SwitchC-vlan10] fcoe enable vsan 1
[SwitchC-vlan10] quit
(4) 使用fcping命令查看SwitchA和Switch C之间的路由是否可达
[SwitchA] fcping fcid fffc03 vsan 1
FCPING fcid 0xfffc03: 128 data bytes, press CTRL_C to break.
Request time out
Request time out
Request time out
Request time out
Request time out
--- 0xfffc03 fcping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
(5) Switch A和Switch C之间的路由不可达,使用fctracert命令确定故障的网络节点
[SwitchA] fctracert fcid fffc03 vsan 1
Route present for: 0xfffc03, press CTRL_C to break
20:00:00:0b:46:00:02:82(0xfffc01)
20:00:00:05:30:00:18:db(0xfffc02)
Fctracert uncompleted: no route to destination port.
从上面的结果可以看出,Switch A和Switch C之间路由不可达,Switch A和Switch B之间路由可达,Switch B和Switch C之间的连接出了问题。此时可以在Switch B上使用display fc routing-table命令查看有没有到Switch C的路由。
表12-1 FC地址分配
FC_ID |
描述 |
0x000000 |
未定义(N_Port通过FLOGI请求地址时使用全0) |
0x000001 – 0x00FFFF |
保留 |
0x010000 – 0xEFFFFF |
N_Port地址 |
0xF00000 – 0xFFF9FF |
保留 |
0xFFFA00 – 0xFFFA0F |
保留给内部Loopback地址使用 |
0xFFFA10 – 0xFFFA1F |
保留给外部Loopback地址使用 |
0xFFFA20 – 0xFFFAFF |
保留 |
0xFFFB00 – 0xFFFBFF |
保留给组播地址使用 |
0xFFFC00 |
保留 |
0xFFFC01 – 0xFFFCEF |
域控制器地址 |
0xFFFCF0 – 0xFFFFEF |
保留 |
0xFFFFF0 – 0xFFFFFC |
知名地址 |
0xFFFFFD |
Fabric控制器地址,代表所有的E_Port |
0xFFFFFE |
F_Port控制器地址,代表所有的F_Port |
0xFFFFFF |
广播地址 |
表12-2 Fabric知名地址用途描述
FC_ID |
描述 |
0xFFFFF0 |
N_Port控制器,代表所有的N_Port |
0xFFFFF1 – 0xFFFFF3 |
保留 |
0xFFFFF4 |
事件服务 |
0xFFFFF5 |
组播服务器 |
0xFFFFF6 |
时钟同步服务 |
0xFFFFF7 |
安全密钥分发服务 |
0xFFFFF8 |
别名服务 |
0xFFFFF9 |
保留 |
0xFFFFFA |
管理服务 |
0xFFFFFB |
时间服务 |
0xFFFFFC |
路径服务(名称服务) |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!