用于实现以太网承载光纤通道的路由生成方法和装置转让专利

申请号 : CN201210022903.0

文献号 : CN102546426B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张长君

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明提供了一种用于以太网承载光纤通道(FCOE)的路由生成方法和装置。本发明通过对中间系统到中间系统(ISIS)协议的招呼(Hello)报文和链路状态协议数据单元(LSP)所携带的类型-长度-值(TLV)编码信息的改进,能够借助ISIS协议的Hello报文来实现FC协议的邻居发现、以及借助ISIS协议的LSP同步来实现FC协议的链路信息同步,因而无需光纤最短路径优先(FSPF)系统即可实现FC路由的生成,从而能够以较低的成本实现FCOE。

权利要求 :

1.一种用于实现以太网承载光纤通道的路由生成方法,其特征在于,包括:

步骤a、与邻居设备交互ISIS协议的Hello报文;若本机支持光纤通道FC协议,则在本机向邻居设备发送的Hello报文中添加FC协议标识以及本机的域标识和源端口索引;若从邻居设备的Hello报文中解析出FC协议标识,则确认邻居设备支持FC协议、并从邻居设备的Hello报文中解析出邻居设备的域标识和源端口索引;

步骤b、生成本机的链路状态协议数据单元LSP;若本机和邻居设备均支持FC协议,则在本机的LSP中添加FC协议标识以及本机的FC链路标识和邻居端口索引,本机的FC链路标识为邻居设备的域标识、本机的邻居端口索引为邻居设备的源端口索引;

步骤c、与邻居设备交互ISIS协议的序列号协议数据单元SNP;

步骤d、与邻居设备同步LSP;

步骤e、利用同步得到的LSP生成本机的路由信息;若本机的LSP和邻居设备的LSP中均携带有FC协议标识,并且本机的LSP中的邻居端口索引与邻居设备的源端口索引相同、邻居设备的LSP中包含的邻居端口索引与本机的源端口索引相同,则计算得到的路由信息中包含本机经过邻居设备的FC路由。

2.根据权利要求1所述的路由生成方法,其特征在于,所述步骤a和所述步骤b之间进一步包括:步骤f、在邻居设备支持FC协议时保存从邻居设备接收到的Hello报文中的邻居设备的域标识和源端口索引。

3.根据权利要求1所述的路由生成方法,其特征在于,FC协议标识为取值表示FC协议的网络层协议标识NLPID。

4.根据权利要求1或2所述的路由生成方法,其特征在于,Hello报文中包括用于携带FC协议标识的协议支持类型-长度-值TLV、以及用于携带域标识和源端口索引的FC邻居TLV;LSP中包括用于携带FC协议标识的协议支持TLV、以及用于携带FC链路标识和邻居端口索引的FC可达入口TLV,所述FC可达入口TLV是用于表示FC链路信息的TLV。

5.根据权利要求4所述的路由生成方法,其特征在于,LSP的FC可达入口TLV还用于携带出端口索引、链路类型、以及链路开销。

6.一种用于支持FC协议的路由生成装置,其特征在于,包括:

第一模块,用于与邻居设备交互ISIS协议的Hello报文;若本机支持光纤通道FC协议,则在本机向邻居设备发送的Hello报文中添加FC协议标识以及本机的域标识和源端口索引;若从邻居设备的Hello报文中解析出FC协议标识,则确认邻居设备支持FC协议、并从邻居设备的Hello报文中解析出邻居设备的域标识和源端口索引;

第二模块,用于生成本机的链路状态协议数据单元LSP;若本机和邻居设备均支持FC协议,则在本机的LSP中添加FC协议标识以及本机的FC链路标识和邻居端口索引,本机的FC链路标识为邻居设备的域标识、本机的邻居端口索引为邻居设备的源端口索引;

第三模块,用于与邻居设备交互ISIS协议的序列号协议数据单元SNP;

第四模块,用于与邻居设备同步LSP;

第五模块,用于利用同步得到的LSP生成本机的路由信息;若本机的LSP和邻居设备的LSP中均携带有FC协议标识,并且本机的LSP中的邻居端口索引与邻居设备的源端口索引相同、邻居设备的LSP中包含的邻居端口索引与本机的源端口索引相同,则计算得到的路由信息中包含本机经过邻居设备的FC路由。

7.根据权利要求6所述的路由生成装置,其特征在于,所述第一模块和所述第二模块之间进一步包括:第六模块,用于在邻居设备支持FC协议时保存从邻居设备接收到的Hello报文携带的FC邻居TLV中所包含的邻居设备的域标识和源端口索引。

8.根据权利要求6所述的路由生成装置,其特征在于,FC协议标识为取值表示FC协议的网络层协议标识NLPID。

9.根据权利要求6或7所述的路由生成装置,其特征在于,Hello报文中包括用于携带FC协议标识的协议支持类型-长度-值TLV、以及用于携带域标识和源端口索引的FC邻居TLV;LSP中包括用于携带FC协议标识的协议支持TLV、以及用于携带FC链路标识和邻居端口索引的FC可达入口TLV,所述FC可达入口TLV是用于表示FC链路信息的TLV。

10.根据权利要求9所述的路由生成装置,其特征在于,LSP的FC可达入口TLV还用于携带出端口索引、链路类型、以及链路开销。

说明书 :

用于实现以太网承载光纤通道的路由生成方法和装置

技术领域

[0001] 本发明涉及路由技术,特别涉及用于实现以太网承载光纤通道(Fabric Channel Over Ethernet,FCOE)的路由生成方法和装置。

背景技术

[0002] FCOE的核心思想是在以太网承载光纤通道(Fabric Channe,FC)协议,从而能够利用以太网链路来替代FC,进而实现网络的整合、统一。
[0003] 相应地,实现FCOE就需要以太网中的网络设备不但能够支持以太网中原有的各种协议,而且还需要支持用以实现FC动态路由等功能的各种FC协议。
[0004] 光纤最短路径优先(Fabric Shortest Path First,FSPF)协议是一种常见的用于实现FC动态路由功能的FC协议,因此,为了能够实现FCOE,现有技术中通常需要针对承载FC协议的以太网来开发出相应的FSPF系统,从而导致FCOE的开发成本较高。

发明内容

[0005] 有鉴于此,本发明提供一种用于实现FCOE的路由生成方法和装置。
[0006] 本发明提供的一种用于实现FCOE的路由生成方法,包括:
[0007] 步骤a、与邻居设备交互ISIS协议的Hello报文;若本机支持光纤通道FC协议,则在本机向邻居设备发送的Hello报文中添加FC协议标识以及本机的域标识和源端口索引;若从邻居设备的Hello报文中解析出FC协议标识,则确认邻居设备支持FC协议、并从邻居设备的Hello报文中解析出邻居设备的域标识和源端口索引;
[0008] 步骤b、生成本机的LSP;若本机和邻居设备均支持FC协议,则在本机的LSP中添加FC协议标识以及本机的FC链路标识和邻居端口索引,本机的FC链路标识为邻居设备的域标识、本机的邻居端口索引为邻居设备的源端口索引;
[0009] 步骤c、与邻居设备交互ISIS协议的SNP;
[0010] 步骤d、与邻居设备同步LSP;
[0011] 步骤e、利用同步得到的LSP生成本机的路由信息;若本机的LSP和邻居设备的LSP中均携带有FC协议标识,并且本机的LSP中的邻居端口索引与邻居设备的源端口索引相同、邻居设备的LSP中包含的邻居端口索引与本机的源端口索引相同,则计算得到的路由信息中包含本机经过邻居设备的FC路由。
[0012] 所述步骤a和所述步骤b之间进一步包括:步骤f、在邻居设备支持FC协议时保存从邻居设备接收到的Hello报文中的邻居设备的域标识和源端口索引。
[0013] FC协议标识为取值表示FC协议的NLPID。
[0014] Hello报文中包括用于携带FC协议标识的协议支持TLV、以及用于携带域标识和源端口索引的FC邻居TLV;LSP中包括用于携带FC协议标识的协议支持TLV、以及用于携带FC链路标识和邻居端口索引的FC可达入口TLV。
[0015] LSP的FC可达入口TLV还用于携带出端口索引、链路类型、以及链路开销。
[0016] 本发明提供的一种用于实现FCOE的路由生成装置,包括:
[0017] 第一模块,用于与邻居设备交互ISIS协议的Hello报文;若本机支持光纤通道FC协议,则在本机向邻居设备发送的Hello报文中添加FC协议标识以及本机的域标识和源端口索引;若从邻居设备的Hello报文中解析出FC协议标识,则确认邻居设备支持FC协议、并从邻居设备的Hello报文中解析出邻居设备的域标识和源端口索引;
[0018] 第二模块,用于生成本机的LSP;若本机和邻居设备均支持FC协议,则在本机的LSP中添加FC协议标识以及本机的FC链路标识和邻居端口索引,本机的FC链路标识为邻居设备的域标识、本机的邻居端口索引为邻居设备的源端口索引;
[0019] 第三模块,用于与邻居设备交互ISIS协议的SNP;
[0020] 第四模块,用于与邻居设备同步LSP;
[0021] 第五模块,用于利用同步得到的LSP生成本机的路由信息;若本机的LSP和邻居设备的LSP中均携带有FC协议标识,并且本机的LSP中的邻居端口索引与邻居设备的源端口索引相同、邻居设备的LSP中包含的邻居端口索引与本机的源端口索引相同,则计算得到的路由信息中包含本机经过邻居设备的FC路由。
[0022] 所述第一模块和所述第二模块之间进一步包括:第六模块,用于在邻居设备支持FC协议时保存从邻居设备接收到的Hello报文携带的FC邻居TLV中所包含的邻居设备的域标识和源端口索引。
[0023] FC协议标识为取值表示FC协议的NLPID。
[0024] Hello报文中包括用于携带FC协议标识的协议支持TLV、以及用于携带域标识和源端口索引的FC邻居TLV;LSP中包括用于携带FC协议标识的协议支持TLV、以及用于携带FC链路标识和邻居端口索引的FC可达入口TLV。
[0025] LSP的FC可达入口TLV还用于携带出端口索引、链路类型、以及链路开销。
[0026] 如上可见,本发明通过对ISIS协议的Hello报文和LSP所携带的TLV的改进,能够借助ISIS协议的Hello报文来实现FC协议的邻居发现、以及借助ISIS协议的LSP同步来实现FC协议的链路信息同步,因而无需FSPF系统即可实现FC路由的生成,从而能够以较低的成本实现FCOE。

附图说明

[0027] 图1为本发明实施例在ISIS协议新增的FC邻居TLV的示意图;
[0028] 图2为本发明实施例在ISIS协议新增的FC可达入口TLV的示意图;
[0029] 图3为本发明实施例中用于实现FCOE的路由生成方法的流程示意图;
[0030] 图4为本发明实施例中用于实现FCOE的路由生成装置的结构示意图;
[0031] 图5为应用本发明实施例中的路由生成装置的硬件框架示意图。

具体实施方式

[0032] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0033] 在本发明实施例中,对以太网中用于支持IPv4和IPv6的中间系统到中间系统(Intermediate System to Intermediate System,ISIS)协议进行改进,以使改进后的ISIS协议能够实现FC动态路由功能,从而无需为了实现FCOE而额外开发FSPF系统,进而能够降低实现FCOE所需的开发成本。
[0034] ISIS协议是在开放式系统互联(Open System Interconnect,OSI)协议栈下为网络连接协议(Connectionless Network Protocol,CLNP)设计的域内动态路由协议,并且具有很好的可扩展性。
[0035] ISIS的组网可以分为第1级(Level-1)、第2级(Level-2)这两个级别,Level-1表示普通区,Level-2表示骨干区。每台网络设备可以同属于Level-1和Level-2;属于Level-1的每台网络设备只能和属于Level-1的其它网络设备互通,属于Level-2的每台网络设备则不受此限制;所有属于Level-2的网络设备之间必须是互通的。
[0036] 在ISIS协议中包括如下的几类报文:
[0037] 招呼(Hello)报文,其用于初始邻居发现、以及通过周期性发送来维护邻接关系;
[0038] 序列号协议数据单元(Sequence Number PDU,SNP),其用于描述LSP摘要信息、以保证基于LSP路由选择信息分发进程的完整性并实现链路状态数据库的同步,SNP报文按照具体功能又可分为完整序列号协议数据单元(Complete Sequence Number PDU,CSNP)报文和局部序列号协议数据单元(Partial Sequence Number PDU PSNP)报文,CSNP报文描述的是所有LSP头部的信息报文、PSNP报文表示应答和请求;
[0039] 链路状态协议数据单元(Link state Protocol Data Unit,LSP),其用于描述链路的状态;其中,当LSP报文的始发设备属于Level-1时,LSP报文中描述的链路状态本区域链路的状态;当LSP报文的始发设备属于Level-2时,LSP报文中描述的链路状态是所有可达链路的状态。
[0040] 基于上述的各类报文,ISIS协议的基本工作原理是:每台网络设备首先利用Hello报文发现邻居设备;然后针对本机与邻居设备之间的链路状态发布包含链路状态信息的LSP;此后,通过一同步机制使得每台网络设备上都具有了所有网络设备的LSP;最后,基于所有网络设备的LSP所组成的链路信息数据库,即可通过特定的算法(例如Dijkstra算法)计算出本机到所有网络设备的路由信息。
[0041] 在具体实现时,Hello报文、LSP、以及SNP中均携带有采用类型-长度-值(Type-Length-Value,TLV)格式的编码信息,本文将此类编码信息简称为TLV、或称为代码-长度-值(Code-Length-Value,CLV)。其中,TLV中的Type通过不同的值来定义该TLV的不同类型;TLV中的Length用来表示该TLV的长度;TLV中的Value中记载了该TLV的实际内容,即,Value属于TLV中最重要的部分。
[0042] 可在Hello报文中携带的常规的TLV主要包括:
[0043] 区域地址TLV,其Type的取值为1,Value中带有Hello报文的始发设备的区域地址;
[0044] 中间系统邻居TLV,其Type的取值为6,Value中带有Hello报文的始发设备的所有邻居的系统标识,以便于本机与邻居验证双向邻接关系的确立;
[0045] 验证TLV,其Type的取值为8,Value中带有认证信息;
[0046] 填充TLV,其Type的取值为10,Value中带有用于将Hello报文填充至最大传输单元(Maximum Transmission Unit,MTU)的内容;
[0047] 支持协议(Protocols Supported)TLV,其Type的取值为129,Value中带有用于表示Hello报文的始发设备所支持的协议;
[0048] IP接口地址TLV,其Type的取值为132,Value中带有Hello报文的始发设备的接口的IP地址、以便于源地址检验。
[0049] 对于可在Hello报文中携带的TLV,本发明实施例进行了如下改进:
[0050] 1)为Protocols Supported TLV的Value增加了用于表示FC协议的新标识。
[0051] 具 体 说,由 于 ISIS协 议 惯 用 地 被 用 于 支 持 IPv4和 IPv6,因 此,ProtocolsSupported TLV中的Value通常只能带有表示始发设备支持网络层协议(Connectionless Network Protocol,CLNP)、IP协议等协议的相应标识,但在本发明实施例中,为Value增加了一种用于表示FC协议的新的标识、以表示Hello报文的始发设备支持的FC协议。
[0052] 实际应用中,Protocols Supported TLV的Value中所带有的用于表示协议类型的标识通常采用网络层协议标识(Network Layer Protocol ID,NLPID)。例如,若Hello报文的始发设备支持CLNP,则Protocols Supported TLV的Value中会带有表示CLNP的NLPID、即取值为0x81的CLNP_NLPID,若Hello报文的始发设备支持IP,则Protocols Supported TLV的Value中会带有表示IP的NLPID、即取值为0xcc的IP_NLPID。
[0053] 经 本 发 明 实 施 例 改 进 后,若 Hello报 文 的 始 发 设 备 支 持FC,则ProtocolsSupported TLV的Value中可以带有表示FC协议的NLPID、即FC_NLPID,FC_NLPID可以取能够区别于表示所有其它协议的NLPID的唯一值。
[0054] 2)为Hello报文增加了一种用于表示邻居信息的新的TLV,本文称之为FC邻居(FC Neighbor)TLV。
[0055] 图1为本发明实施例在ISIS协议新增的FC邻居TLV的示意图。如图1所示,FC Neighbor TLV的Type可以取区别于所有其它常规TLV的唯一值,Length可以根据实际需要任意设定,而Value中则带有始发设备在FC中的域标识(Domain ID)、以及始发设备发送Hello报文的源端口索引(OriginatingPort Index)。
[0056] 可在LSP报文中携带的常规的TLV主要包括:
[0057] 区域TLV,其Type的取值为1,Value中带有LSP报文的始发设备中配置的区域地址组;
[0058] 中间系统邻居设备TLV,其Type的取值为2,Value中带有LSP报文的始发设备的属于Level-1的邻居设备的度量信息;
[0059] 终端系统邻居设备TLV,其Type的取值为3,Value中带有所有的终端系统;
[0060] 前缀邻接设备,其Type的取值为5,Value中带有区域间路由选择信息;
[0061] 认证信息TLV,其Type的取值为10,Value中带有明文认证信息;
[0062] IP内部可达性TLV编码,其Type的取值为128,Value中带有可达的IP地址前缀列表;
[0063] Protocols Supported TLV,其Type的取值为129,Value中带有用于表示LSP报文的始发设备所支持的协议;
[0064] IP外部可达性TLV编码,其Type的取值为130,Value中带有路由引入的路由信息;
[0065] IP接口地址TLV,其Type的取值为132,Value中带有LSP报文的始发设备的接口的IP地址。
[0066] 对于可在LSP报文中携带的TLV,本发明实施例进行了如下改进:
[0067] 1)为Protocols Supported TLV的Value增加了用于表示FC协议的新标识,例如前文提及的FC_NLPID。
[0068] 2)为LSP报文增加了一种用于表示FC链路信息的新的TLV,本文称之为FC可达入口(FC Reachability Entry)TLV。
[0069] 图2为本发明实施例在ISIS协议新增的FC可达入口TLV的示意图。如图2所示,FC Reachability Entry TLV的Type可以取区别于所有其它常规TLV的唯一值,Length可以根据实际需要任意设定,而Value中则带有始发设备的FC链路标识(Link ID)、始发设备发送LSP报文的出端口索引(Output PortIndex)、始发设备的邻居设备的端口索引(Neighbor Port Index)、链路类型(Link Type)、以及链路开销(Link Cost)。
[0070] 其中,Link ID中可以包含对应链路的对端的邻居设备的Domain_ID;对应每个邻居设备的Neighbor Port Index为从该邻居设备接收到的Hello报文的FC Neighbor TLV的Value中的Originating Port Index;Link Type为表示FC协议中目前已被使用的交换机链路记录(Switch Link Record)这一种类型的值01h;Link Cost可以按照FC协议的常规方式,基于链路的波特率(baudrate)和管理配置因数计算得到。
[0071] 基于对Hello报文和LSP报文中可携带的TLV的改进,本发明实施例中提出了用于实现FCOE的路由生成方法和装置,下面分别对本发明实施例中用于实现FCOE的路由生成方法和装置进行详细说明。
[0072] 图3为本发明实施例中用于实现FCOE的路由生成方法的流程示意图。如图3所示,本发明实施例中用于实现FCOE的路由生成方法包括:
[0073] 步骤301a和步骤301b,互为邻居设备的网络设备A和网络设备B之间交互ISIS协议的Hello报文。
[0074] 在步骤301a中,若网络设备A支持FC协议,则:
[0075] 在网络设备A向网络设备B发送的Hello报文中会添加FC_NLPID、以表示本机支持FC协议,网络设备A在该Hello报文中添加的FC_NLPID可以携带于该Hello报文的Protocols Supported TLV中;
[0076] 以及,还在网络设备A向网络设备B发送的Hello报文中添加本机的Domain_ID和Originating Port Index,网络设备A在该Hello报文中添加的本机的Domain_ID和Originating Port Index可以携带于该Hello报文的FCNeighbor TLV中。
[0077] 相应地,若从网络设备A的Hello报文的Protocols Supported TLV中解析到FC_NLPID,则网络设备B即可识别出邻居的网络设备A支持FC协议,并从网络设备A的Hello报文的FC Neighbor TLV中解析出网络设备A的Domain_ID和Originating Port Index。并且,当网络设备B判断出本机与邻居的网络设备A均支持FC协议时,网络设备B会保存从网络设备A的Hello报文的FC Neighbor TLV中解析出的网络设备A的Domain_ID和OriginatingPort Index。
[0078] 同样地,在步骤301b中,若网络设备B支持FC协议,则:
[0079] 在网络设备B向网络设备A发送的Hello报文中会添加FC_NLPID、以表示本机支持FC协议,网络设备B在该Hello报文中添加的FC_NLPID可以携带于该Hello报文的Protocols Supported TLV中;
[0080] 以及,还在网络设备B向网络设备A发送的Hello报文中添加本机的Domain_ID和Originating Port Index,网络设备B在该Hello报文中添加的本机的Domain_ID和Originating Port Index可以携带于该Hello报文的FCNeighbor TLV中。
[0081] 相应地,若从网络设备B的Hello报文的Protocols Supported TLV中解析到FC_NLPID,则网络设备A即可识别出邻居的网络设备B支持FC协议,并从网络设备B的Hello报文的FC Neighbor TLV中解析出网络设备B的Domain_ID和Originating Port Index。并且,当网络设备A判断出本机与邻居的网络设备B均支持FC协议时,网络设备A会保存从网络设备B的Hello报文的FC Neighbor TLV中解析出的网络设备B的Domain_ID和OriginatingPort Index。
[0082] 步骤302a和步骤302b,网络设备A和网络设备B分别按照ISIS协议的现有方式生成各自的ISIS协议的LSP。
[0083] 在步骤302a中,若网络设备A判断出本机与邻居的网络设备B均支持FC协议,则:
[0084] 网络设备A会在生成的本机的LSP中添加FC_NLPID,网络设备A在本机的LSP中添加的FC_NLPID可以携带于该LSP的Protocols SupportedTLV中;
[0085] 以及,网络设备A还会在本机的LSP中添加本机的Link ID和NeighborPort Index,其中,本机的Link ID为网络设备B的Domain ID、本机的NeighborPort Index为网络设备B的Originating Port Index,网络设备A在本机的LSP中添加的Link ID和Neighbor Port Index可以携带于本机的LSP的ProtocolsSupported TLV中。
[0086] 同样地,在步骤302b中,若网络设备B判断出本机与邻居的网络设备A均支持FC协议,则:
[0087] 网络设备B会在生成的本机的LSP中添加FC_NLPID,网络设备B在本机的LSP中添加的FC_NLPID可以携带于该LSP的Protocols Supported TLV中;
[0088] 以及,网络设备B还会在本机的LSP中添加本机的Link ID和NeighborPort Index,其中,本机的Link ID为网络设备A的Domain_ID、本机的NeighborPort Index为网络设备A的Originating Port Index,网络设备B在本机的LSP中添加的Link ID和Neighbor Port Index可以携带于本机的LSP的ProtocolsSupported TLV中。
[0089] 步骤303a和步骤303b,网络设备A和网络设备B之间交互ISIS协议的SNP报文。
[0090] 步骤304,网络设备A和网络设备B之间进行LSP的同步。
[0091] 步骤305a~步骤305b,网络设备A和网络设备B分别利用同步得到的LSP、并按照ISIS协议的现有算法生成各自的路由信息。
[0092] 在步骤305a中,若网络设备A判断出本机的LSP和网络设备B的LSP中均携带有FC_NLPID,并且本机的LSP的FC Reachability Entry TLV中携带的Neighbor Port Index与邻居的网络设备B的Originating Port Index相同、邻居的网络设备B的LSP的FC Reachability Entry TLV中携带的NeighborPort Index与本机的Originating Port Index相同,则计算得到的路由信息中包含本机经过邻居的网络设备B的FC路由;
[0093] 同样地,在步骤305b中,若网络设备B判断出本机的LSP和网络设备A的LSP中均携带有FC_NLPID,并且本机的LSP的FC Reachability EntryTLV中携带的Neighbor Port Index与邻居的网络设备A的Originating PortIndex相同、邻居的网络设备A的LSP的FC Reachability Entry TLV中携带的Neighbor Port Index与本机的Originating Port Index相同,则计算得到的路由信息中包含本机经过邻居的网络设备A的FC路由。
[0094] 至此,本流程结束、并可由网络设备A和网络设备B分别在本机下发路由信息。
[0095] 如上可见,基于对ISIS协议的Hello报文和LSP所携带的TLV的改进,本发明实施例中的路由生成方法能够借助ISIS协议的Hello报文来实现FC协议的邻居发现、以及借助ISIS协议的LSP同步来实现FC协议的链路信息同步,因而无需FSPF系统即可实现FC路由的生成,从而能够以较低的成本实现FCOE。
[0096] 图4为本发明实施例中用于实现FCOE的路由生成装置的结构示意图。如图4所示,本发明实施例中用于实现FCOE的路由生成装置包括:
[0097] 第一模块,用于本机与邻居设备交互ISIS协议的Hello报文。其中:
[0098] 若本机支持FC协议,则第一模块在本机向邻居设备发送的Hello报文中会添加FC_NLPID、以表示本机支持FC协议,在该Hello报文中添加的FC_NLPID可以携带于该Hello报文的Protocols Supported TLV中;以及,第一模块还在本机向邻居设备发送的Hello报文中添加本机的Domain_ID和Originating Port Index,在该Hello报文中添加的本机的Domain_ID和Originating Port Index可以携带于该Hello报文的FC Neighbor TLV中;
[0099] 若从邻居设备的Hello报文的Protocols Supported TLV中解析出FC_NLPID,则确认邻居设备支持FC协议,并从邻居设备的Hello报文的FCNeighbor TLV中解析出邻居设备的Domain_ID和Originating Port Index。
[0100] 第二模块,用于生成本机的ISIS协议的LSP。其中:
[0101] 若本机与邻居设备均支持FC协议,则第二模块会在本机的LSP中添加FC_NLPID,在本机的LSP中添加的FC_NLPID可以携带于该LSP的ProtocolsSupported TLV中;以及,第二模块还会在本机的LSP中添加本机的Link ID和Neighbor Port Index,其中,本机的Link ID为邻居设备的Domain_ID、本机的Neighbor Port Index为邻居设备的Originating Port Index,在本机的LSP中添加的Link ID和Neighbor Port Index可以携带于本机的LSP的ProtocolsSupported TLV中。
[0102] 第三模块,用于本机与邻居设备之间交互ISIS协议的SNP报文。
[0103] 第四模块,用于本机与邻居设备之间进行LSP的同步。
[0104] 第五模块,用于本机利用同步得到的LSP、并按照ISIS协议的现有算法生成本机的路由信息。
[0105] 其中,若本机的LSP的Protocols Supported TLV和邻居设备的LSP的Protocols Supported TLV中均携带FC_NLPID,并且本机的LSP的FCReachability Entry TLV中携带的Neighbor Port Index与邻居设备的Originating Port Index相同、邻居设备的LSP的FC Reachability Entry TLV中携带的Neighbor Port Index与本机的Originating Port Index相同,则计算得到的路由信息中包含本机经过邻居设备的FC路由。
[0106] 经第五模块计算得到的路由信息即可下发至本机。
[0107] 可选地,在第一模块与第二模块之间还可以包括第六模块(图5中未示出),其用于在本机与邻居设备均支持FC协议时,保存本机从邻居设备接收到的Hello报文的FC Neighbor TLV中携带的邻居设备的Domain_ID和Originating Port Index,以便于第二模块生成LSP时使用、以及第五模块在生成路由信息时使用。
[0108] 如上可见,基于对ISIS协议的Hello报文和LSP所携带的TLV的改进,本发明实施例中的路由生成装置能够借助ISIS协议的Hello报文来实现FC协议的邻居发现、以及借助ISIS协议的LSP同步来实现FC协议的链路信息同步,因而无需FSPF系统即可实现FC路由的生成,从而能够以较低的成本实现FCOE。
[0109] 图5为应用本发明实施例中的路由生成装置的硬件框架示意图。如图5所示,交换机的硬件架构通常包括挂接在总线上的CPU芯片、内存、转发芯片、以及端口物理层芯片;其中:
[0110] CPU芯片承载有本发明实施例中如图4所示的路由生成装置、并用于实现该路由生成装置的功能,当CPU芯片利用Hello报文发现邻居设备、同步得到所有交换机的LSP并计算得到路由信息,即可将路由信息下发至转发芯片;
[0111] 内存用于存放CPU芯片计算路由、以及其他处理时的各种临时数据;
[0112] 转发芯片用于通过端口物理层芯片接收报文,并将需要CPU处理的报文(例如Hello报文、SNP、以及LSP)上报至CPU芯片,以及,将需要直接转发的报文按照下法的路由信息通过端口物理层芯片发出;
[0113] 端口物理层芯片用于驱动交换机的端口作为入端口接收报文、以及作为出端口发送报文。
[0114] 在基于ISIS协议实际组网时,本机和邻居设备所属的Level等级对生成的FC路由没有影响,但为了与ISIS协议原本支持的IP协议尽可能保持一致,本发明实施例中的路由生成方法和装置优选地应用在属于Level-2的设备,即本机和邻居设备优选地均属于ISIS协议中的Level-2。
[0115] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。