背景技术
FSPF协议是光纤通道网络(FC Fabric)所使用标准的动态路由发现协议。基于FSPF协议可将FC Fabric中的所有交换机相互连接、并生成链路开销最小且不会产生环路的若干条路由,从而可通过FC Fabric透明地实现N节点之间的相互访问。
FC Fabric中所有交换机的相互连接需要交换机之间的邻居发现和本机LSR的生成。具体说:
FC Fabric中的每台交换机可以通过交换机光纤交互连接服务(SwitchFabric Internal Link Service,SW_ILS)协议的招呼(HLO SW_ILS)报文来发现本机的邻居交换机;
当发现邻居交换机之后,FC Fabric中的每台交换机可以通过本机生成的LSR(Link State Record,链路状态记录)来描述本机与邻居交换机的关系。
图1为现有技术中的LSR的示意图。如图1所示,每台交换机生成的LSR中至少包括LS头(Link State Header)、以及本机与各邻居交换机之间的每条可用链路的链路描述符(Link Descriptor),LSR中包含的其余部分可参见相关协议,本文不再赘述。
每一LSR的LS头中包含有LSR类型(LSR Type)字段,其用于表示该LSR的类型,目前已被使用的仅有交换机链路记录(Switch Link Record)这一种类型,该类型的LSR用于交换机描述本机(即该LSR所属交换机)与各邻居交换机之间的链路关系,该类型对应的LSR类型字段的值通常设置为01h;LS头中包含的其他字段可参见相关协议,本文不再赘述。
每一LSR的链路描述符中包括本机(即该LSR所属交换机)的对应可用链路的链路标识(Link ID)、出端口索引(Out Port Index)、邻居端口索引(Neighbor Port Index)、以及链路开销(Link Cost);链路描述符中包含的其他字段可参见相关协议,本文不再赘述。
FC Fabric中的路由生成需要所有交换机的LSDB(Link-State DataBase,链路状态数据库)同步、以及各交换机通过路由计算来得到各条路由在本机的路由信息。具体说:
FC Fabric中的每台交换机可以将本机LSDB中的所有LSR携带于SW_ILS协议的链路状态更新(LSU SW_ILS)报文提供给各邻居交换机、并通过SW_ILS协议的链路状态应答(LSA SW_ILS)报文来响应邻居交换机提供的LSR,本机LSDB中初始时只有本机的LSR,经过FC Fabric中的所有交换机与各自的邻居交换机之间的层层传递即可确保每台交换机的LSDB中最终能够同步得到FC Fabric中的所有交换机的LSR;
当同步完成后,FC Fabric中的每台交换机可以依据同步得到的所有交换机的LSR计算得到FC Fabric中的每条路由在本机的路由信息。
图2为现有技术中的路由信息的示意图。如图2所示,现有技术中由交换机计算得到的每条路由在本机的路由信息中包含:路由终点表项和出端口表项以及开销表项,路由终点表项中填入了该路由的终点所在交换机的域标识(Domain_ID)、出端口表项中填入了该路由在本机的对应可用链路的出端口索引、开销表项中则填入了该路由在本机的对应可用链路的链路开销。其中,Domain_ID是FC Fabric中选举出的主交换机分配的、且每台交换机的Domain_ID均被其他交换机所知晓;而路由在本机的对应可用链路的出端口索引和链路开销携带在本机的LSR的对应的链路描述符中。
基于现有技术中生成路由的上述方式,每台交换机在需要与任一台其他交换机通信时,可以查找出包含有该其他交换机的Domain_ID的路由信息、并依据路由信息中的出端口索引来确定本机可到达该其他交换机的出端口,从而即可实现本机到该其他交换机的路由。
然而,在现有技术中生成路由的上述方式所得到的路由信息中,交换机的Domain_ID是由主交换机动态分配的数字、出端口索引也是由不确定的数字任意设置的,因此,当网络管理员调取路由信息后,无法依据这些不确定的数字直观地分析出FC Fabric中由各条路由形成的网络拓扑、也无法直观地判断FC Fabric中各条路由的正确性。
发明内容
有鉴于此,本发明提供一种FSPF协议的路由生成方法和装置。
本发明提供的一种FSPF协议的路由生成方法,包括:
步骤a、同步得到本机所在FC网络中的所有交换机的LSR;其中,每台交换机的所述LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的所述LSR的LSR类型字段被设置为表示所述LSR中携带有所述出端口标识的值;
步骤b、依据同步得到的所有交换机的所述LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的所述路由信息中包含该路由的终点所在交换机的域标识、以及该路由在本机的对应可用链路的所述出端口索引和所述链路开销;
步骤c、依据每条路由的下一跳所在交换机的所述LSR,将该路由的下一跳所在交换机的对应可用链路的所述出端口标识插入至该路由在本机的路由信息中。
进一步包括:步骤d、依据每条路由的终点所在交换机的所述LSR,将该路由的终点所在交换机的对应可用链路的所述出端口标识插入至该路由在本机的路由信息中。
表示所述LSR中携带有出端口标识的值为03h~FFh中的任意值。
所述LSR中携带的每条可用链路的所述出端口索引、所述链路开销、以及所述出端口标识包含在所述LSR中对应的链路描述符中。
所述出端口标识包括出端口所属交换机的WWN、以及出端口的名称,或者,所述出端口标识包括出端口所属交换机的WWN、以及出端口的名称和出端口的WWN。
本发明提供的一种FSPF协议的路由生成装置,包括:
第一模块,同步得到本机所在FC网络中的所有交换机的LSR;其中,每台交换机的所述LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的所述LSR的LSR类型字段被设置为表示所述LSR中携带有所述出端口标识的值;
第二模块,依据同步得到的所有交换机的所述LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的所述路由信息中包含该路由的终点所在交换机的域标识、以及该路由在本机的对应可用链路的所述出端口索引和所述链路开销;
第三模块,依据每条路由的下一跳所在交换机的所述LSR,将该路由的下一跳所在交换机的对应可用链路的所述出端口标识插入至该路由在本机的路由信息中。
进一步包括:第四模块,依据每条路由的终点所在交换机的所述LSR,将该路由的终点所在交换机的对应可用链路的所述出端口标识插入至该路由在本机的路由信息中。
表示所述LSR中携带有出端口标识的值为03h~FFh中的任意值。
所述LSR中携带的每条可用链路的所述出端口索引、所述链路开销、以及所述出端口标识包含在所述LSR中对应的链路描述符中。
所述出端口标识包括出端口所属交换机的WWN、以及出端口的名称,或者,所述出端口标识包括出端口所属交换机的WWN、以及出端口的名称和出端口的WWN。
如上可见,本发明的路由生成方法和装置使每台交换机的LSR中均能够携带本机的可用链路的出端口标识、并借助LSR的同步来使各交换机能够相互传递各自的可用链路的出端口标识,从而,即可使每台交换机的路由信息中均包含路由下一跳所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,利用路由信息中表示路由下一跳的出端口标识能够使网络拓扑的分析以及路由正确性的判断更为直观。
可选地,本发明的路由生成方法和装置还可使每台交换机的路由信息中均包含路由终点所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,进一步参考路由信息中表示路由终点的出端口标识,以进一步提高网络拓扑的分析以及路由正确性的直观性。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例为了使路由信息能够更为直观地体现出路由,在计算得到的路由信息中插入路由下一跳所在交换机的对应可用链路的出端口标识(OutPort Identifier)作为路由下一跳信息,或者插入路由下一跳以及路由终点所在交换机的对应可用链路的出端口标识分别作为路由下一跳信息和路由终点信息。实际应用中,所插入的出端口标识可以包括出端口所属交换机的全球唯一标识(World Wide Name,WWN)和出端口的名称,例如,出端口所属交换机的WWN为“10:00:00:11:22:0e:01”、出端口的名称为“FC2/2”;或者,所插入的出端口标识也可以包括出端口所属交换机的WWN以及出端口的名称和出端口的WWN。
这样,由于出端口标识并不是由不确定的数字所构成的、而是由具有类似于MAC地址特性的确定符号所构成,因此,当网络管理员调取路由信息后,能够更为直观地分析出FC Fabric中由各条路由形成的网络拓扑、并能够更为直观地判断FC Fabric中各条路由的正确性。
考虑到FC Fabric中的路由是动态变化的,相应地,对于每台交换机来说,路由下一跳和路由终点所在的交换机也是不确定的,因此,需要每台交换机均能够预先获知FC Fabric中的所有交换机的条可用链路的出端口标识。
为此,本发明实施例就需要对LSR进行改进、并借助改进后的LSR的同步过程使每台交换机能够预先获知FC Fabric中的所有交换机的条可用链路的出端口标识。
图3为本发明实施例中的LSR的示意图。如图3所示,在本发明实施例中,每台交换机生成的LSR中仍至少包括LS头、以及本机与各邻居交换机之间的每条可用链路的链路描述符,LSR中包含的其余部分可参见相关协议,本文不再赘述。
每一LSR的LS头中仍包含有用于表示该LSR的类型的LSR类型字段,除了目前已被使用的交换机链路记录这一种类型之外,本发明实施例新增了一种LSR的类型,该新增的类型不但用于交换机描述本机(即该LSR所属交换机)与各邻居交换机之间的链路关系、还进一步用于表示LSR携带有出端口标识;该新增类型对应的LSR类型字段的值通可以置为03h~FFh中的任意值;LS头中包含的其他字段可参见相关协议,本文不再赘述。
每一LSR的链路描述符中除了像现有技术那样包括本机(即该LSR所属交换机)的对应可用链路的链路标识、出端口索引、邻居端口索引、以及链路开销之外,还进一步包括本机(即该LSR所属交换机)的对应可用链路的出端口标识;链路描述符中包含的其他字段可参见相关协议,本文不再赘述。
如此一来,每台交换机的各条可用链路的出端口标识即可随着LSR被同步至FC Fabric中的所有交换机,从而能够使每台交换机能够预先获知FCFabric中的所有交换机的条可用链路的出端口标识。
下面,对本发明实施例中基于上述改进后的LSR的路由生成方法和装置进行详细说明。
图4为本发明实施例中的路由生成方法的一种流程示意图。图5a和图5b分别为如图4所示流程的执行过程中以及完成之后的路由信息的示意图。
请在参见图4的同时再结合图5a和图5b,本发明实施例中的路由生成方法可以包括在每台交换机内执行的如下步骤:
步骤401,同步得到本机所在FC Fabric中的所有交换机的LSR;其中,每台交换机的LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的LSR的LSR类型字段被设置为表示该LSR中携带有出端口标识的值;
步骤402,依据同步得到的所有交换机的LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的路由信息中包含该路由的终点所在交换机的Domain_ID、以及该路由在本机的对应可用链路的出端口索引和链路开销;
经过本步骤,如图5a所示,路由信息中的路由终点表项此时已填入有路由的终点所在交换机的Domain_ID、出端口表项此时已填入有路由在本机的对应可用链路的出端口索引、开销表项此时则已填入有路由在本机的对应可用链路的链路开销,但路由下一跳信息表项此时仍为空;
步骤403,依据每条路由的下一跳所在交换机的LSR,将该路由的下一跳所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;
经过本步骤,如图5b所示,路由信息中的路由下一跳信息表项此时已填入有路由的下一跳所在交换机的对应可用链路的出端口标识。
至此,本流程结束、并可在本机下发路由信息。
如上可见,上述如图4所示的路由生成方法可使每台交换机的LSR中携带有本机的可用链路的出端口标识、并借助LSR的同步来使各交换机能够相互传递各自的可用链路的出端口标识,从而,即可使每台交换机的路由信息中均包含路由下一跳所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,利用路由信息中表示路由下一跳的出端口标识能够使网络拓扑的分析以及路由正确性的判断更为直观。
例如,假设有一条路由顺序经过交换机1、交换机2、交换机3这三台交换机,则:
该路由在交换机1的路由信息中包含有该路由的终点所在交换机3的Domain_ID“Domain_3”、该路由在本机的对应可用链路的出端口索引“000001”、该路由在本机的对应可用链路的链路开销“cost1”,以及,该路由的下一跳所在交换机2的对应可用链路的出端口标识,其包括交换机2的WWN“10:00:00:11:22:0e:02”和交换机2的对应可用链路的出端口名“FC2/2”;
该路由在交换机2的路由信息中包含有该路由的终点所在交换机3的Domain_ID“Domain_3”、该路由在本机的对应可用链路的出端口索引“000002”、该路由在本机的对应可用链路的链路开销“cost2”,以及,该路由的下一跳所在交换机3的对应可用链路的出端口标识,其包括交换机3的WWN“10:00:00:11:22:0e:03”和交换机3的对应可用链路的出端口名“FC3/3”;
从而,利用交换机2的WWN“10:00:00:11:22:0e:02”和交换机2的对应可用链路的出端口名“FC2/2”,以及交换机3的WWN“10:00:00:11:22:0e:03”和交换机3的对应可用链路的出端口名“FC3/3”,即可直观地看出该路由的路径,进而结合该路由的路径与其他路由的路径分析出网络拓扑、并直接依据该路由的路径判断该路由的正确性。
图6为本发明实施例中的路由生成方法的另一种流程示意图。图7a和图7b分别为如图6所示流程的执行过程中以及完成之后的路由信息的示意图。
请在参见图6的同时再结合图7a和图7b,本发明实施例中的路由生成方法可以包括在每台交换机内执行的如下步骤:
步骤601,同步得到本机所在FC Fabric中的所有交换机的LSR;其中,每台交换机的LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的LSR的LSR类型字段被设置为表示该LSR中携带有出端口标识的值;
步骤602,依据同步得到的所有交换机的LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的路由信息中包含该路由的终点所在交换机的Domain_ID、以及该路由在本机的对应可用链路的出端口索引和链路开销;
经过本步骤,如图7a所示,路由信息中的路由终点表项此时已填入有路由的终点所在交换机的Domain_ID、出端口表项此时已填入有路由在本机的对应可用链路的出端口索引、开销表项此时则已填入有路由在本机的对应可用链路的链路开销,但路由下一跳信息表项和路由终点信息表项此时仍为空;
步骤603,依据每条路由的下一跳所在交换机的LSR,将该路由的下一跳所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;
步骤604,依据每条路由的终点所在交换机的LSR,将该路由的终点所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;
实际应用中,步骤603和步骤604的执行顺序可以任意设定;
经过上述步骤603和步骤604,如图7b所示,路由信息中的路由下一跳信息表项此时已填入有路由的下一跳所在交换机的对应可用链路的出端口标识,路由终点信息表项此时已填入有路由的终点所在交换机的对应可用链路的出端口标识。
至此,本流程结束、并可在本机下发路由信息。
如上可见,上述如图6所示的路由生成方法除了能够产生与如图4所示的路由生成方法相同的技术效果之外,还能够进一步使每台交换机的路由信息中包含路由终点所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,进一步参考路由信息中表示路由终点的出端口标识,以进一步提高网络拓扑的分析以及路由正确性的直观性。
例如,仍假设有一条路由顺序经过交换机1、交换机2、交换机3这三台交换机,则相比于如图4所示的路由生成方法:
该路由在交换机1和交换机3的路由信息中进一步该路由的重点所在交换机3的对应可用链路的出端口标识,其包括交换机3的WWN“10:00:00:11:22:0e:03”和交换机3的对应可用链路的出端口名“FC3/3”;
从而,利用交换机3的WWN“10:00:00:11:22:0e:03”和交换机3的对应可用链路的出端口名“FC3/3”,即可直观地看出该路由的路径终结于交换机3,进而更便于分析出网络拓扑、并判断该路由的正确性。
图8为本发明实施例中的路由生成装置的一种结构示意图。如图8所示,本发明实施例中的路由生成装置可以包括承载于每台交换机中的如下模块:
第一模块,同步得到本机所在FC网络中的所有交换机的LSR;其中,每台交换机的LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的LSR的LSR类型字段被设置为表示该LSR中携带有出端口标识的值;
第二模块,依据所有交换机的LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的路由信息中包含该路由的终点所在交换机的域标识、以及该路由在本机的对应可用链路的出端口索引和链路开销,由第二模块得到的路由信息可以如图5a所示;
第三模块,依据每条路由的下一跳所在交换机的LSR,将该路由的下一跳所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;经第三模块处理后的路由信息可以如图5b所示、并可在本机下发。
如上可见,上述如图8所示的路由生成装置可使每台交换机的LSR中携带有本机的可用链路的出端口标识、并借助LSR的同步来使各交换机能够相互传递各自的可用链路的出端口标识,从而,即可使每台交换机的路由信息中均包含路由下一跳所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,利用路由信息中表示路由下一跳的出端口标识能够使网络拓扑的分析以及路由正确性的判断更为直观。
图9为本发明实施例中的路由生成装置的另一种结构示意图。如图9所示,
本发明实施例中的路由生成装置可以包括承载于每台交换机中的如下模块:
第一模块,同步得到本机所在FC网络中的所有交换机的LSR;其中,每台交换机的LSR中携带有该交换机的每条可用链路的出端口索引、链路开销、以及出端口标识,且每台交换机的LSR的LSR类型字段被设置为表示该LSR中携带有出端口标识的值;
第二模块,依据所有交换机的LSR,计算得到每条路由在本机的路由信息;其中,每条路由在本机的路由信息中包含该路由的终点所在交换机的域标识、以及该路由在本机的对应可用链路的出端口索引和链路开销,由第二模块得到的路由信息可以如图7a所示;
第三模块,依据每条路由的下一跳所在交换机的LSR,将该路由的下一跳所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;
第四模块,依据每条路由的终点所在交换机的LSR,将该路由的终点所在交换机的对应可用链路的出端口标识插入至该路由在本机的路由信息中;
实际应用中,第三模块和第四模块的连接顺序可已任意设定;
经第三模块和第四模块处理后的路由信息可以如图7b所示、并可在本机下发。
如上可见,上述如图9所示的路由生成装置除了能够产生与如图8所示的路由生成装置相同的技术效果之外,还能够进一步使每台交换机的路由信息中包含路由终点所在交换机的对应可用链路的出端口标识,进而,在需要基于路由信息分析网络拓扑以及判断路由正确性时,进一步参考路由信息中表示路由终点的出端口标识,以进一步提高网络拓扑的分析以及路由正确性的直观性。
图10为应用本发明实施例中的路由生成装置的硬件框架示意图。如图10所示,交换机的硬件架构通常包括挂接在总线上的CPU芯片、内存、转发芯片、以及端口物理层芯片;其中:
CPU芯片承载有本发明实施例中如图8或图9所示的路由生成装置、并用于实现该路由生成装置的功能,当CPU芯片同步得到所有交换机的LSR、并计算得到路由信息、以及在路由信息中插入相应的出端口标识后,即可将路由信息下发至转发芯片;
内存用于存放CPU芯片计算路由、以及其他处理时的各种临时数据;
转发芯片用于通过端口物理层芯片接收报文,并将需要CPU处理的报文(例如用于同步LSR的LSU SW_ILS报文和LSA SW_ILS报文)上报至CPU芯片,以及,将需要直接转发的报文按照下法的路由信息通过端口物理层芯片发出;
端口物理层芯片用于驱动交换机的端口作为入端口接收报文、以及作为出端口发送报文。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。