OSPF支持Hub-And-Spoke组网技术白皮书
关 键 词:OSPF、Hub-And-Spoke
摘 要:Hub-And-Spoke组网是一种典型的网络扁平化组网方案。本文描述了为了使OSPF协议能够更好地支持Hub-And-Spoke组网,H3C对OSPF协议进行的一系列优化。
缩略语:
缩略语 | 英文全名 | 中文解释 |
DD | Database Description | 数据库描述报文 |
LSR | Link State Request Packet | 链路状态请求报文 |
LSU | Link State Update Packet | 链路状态更新报文 |
LSAck | Link State Acknowledgment Packet | 链路状态确认报文 |
LSA | Link State Advertisement | 链路状态通告 |
LSDB | Link State Database | 链路状态数据库 |
OSPF | Open Shortest Path First | 开放最短路径优先 |
目前部分行业的组网应用开始出现网络扁平化趋势,Hub-And-Spoke组网就是一种典型的扁平化组网方式。
图1 Hub-And-Spoke组网示意图
和传统的“核心层+汇聚层+接入层”组网相比,Hub-And-Spoke组网省略了汇聚层,核心层设备(Hub设备)直接和多个接入层设备(Spoke设备)相连,如图1所示。这样可以减少中间层网络设备数量,简化网络管理和方便网络维护。
另外,此组网还具有高扩展性的特点,在今后网络规模扩大时只需要把核心层下移作为汇聚层,同时增加新的核心层设备即可实现完整的三层体系结构,原有的网络配置可以最大限度得到保留,实现网络平滑扩容。
在Hub-And-Spoke这种组网中使用OSPF协议进行路由时,通常将Hub设备与所有Spoke设备规划在同一个OSPF区域内,让Hub设备与所有Spoke设备之间维持OSPF邻居关系。此时,Hub设备邻居数量众多,会出现下面的问题:
l 如何保证邻居关系能够稳定维持
能够建立并维持稳定的OSPF邻居关系,这是协议工作的基础。如果Hub设备Hello报文接收和处理不及时,则在Spoke设备上会有邻居超时,需要重新建立邻居关系。
l 如何保证网络稳定所需时间尽量短
Hub设备邻居数量众多,网络收敛达到稳定需要时间比较长。这就要求Hub设备能够用尽量短的时间建立数量众多的邻居,并把变化的路由信息尽快通告给所有的邻居。
l 如何保证不影响其它业务的开展
Hub设备在支持大量OSPF邻居的情况下,还需要运行一些其它业务,比如其它路由协议等,不能因为OSPF消耗大量系统资源而影响其它业务的运行。
针对上面的问题,H3C对OSPF进行了优化,使之可以有效支持Hub-And-Spoke组网:
l 优先接收和处理Hello报文
l 限制并发建立邻居数目
l 保证报文平缓发送
l 控制LSA的生成
l 控制进行SPF计算的时间间隔
l 大幅度提高了OSPF支持的邻居数目,并提高了邻居建立以及LSDB同步的效率,合理使用系统资源。
l 只需要在Hub设备进行配置,实现简单、方便维护。
l Hub设备:是Hub-And-Spoke组网中的中心设备,与数量众多的Spoke设备相连。除了支持OSPF基本功能保证网络层互通外,需要进行针对Hub-And-Spoke组网的处理。
l Spoke设备:是Hub-And-Spoke组网中的边缘设备,与用户网络相连。只需要支持OSPF基本功能保证网络层互通。
设备配置了OSPF优先接收和处理Hello报文功能后,会优先接收Hello报文,这样就避免了同其它报文竞争系统资源,不受其它类型OSPF协议报文和其它协议(比如BGP、IS-IS等)报文的影响。OSPF协议也会优先处理Hello报文,使得Hello报文能够得到最大限度的及时处理,优先维持邻居关系。
邻居建立过程中,处于Exchange或Loading状态的邻居需要交互DD、LSR、LSU、LSAck等大量报文,如果并发建立的邻居数很多,这时交互报文数量非常多,而系统资源是有限的,会导致大量报文被丢弃或不能及时处理。
H3C对OSPF协议进行优化,对处于Exchange和Loading状态的邻居数目进行限制。如果总数超过限制值,则不再允许新邻居状态向上进入到这两个状态,暂时将这些邻居状态停留在Exstart。当总数恢复到限制值以下时,才继续允许邻居进入这两个状态。这样可以减少交互报文数量、减少丢失及重传报文数,使得邻居快速地分批达到Full状态,建立一批稳定一批。
在Hub-And-Spoke组网中,每个Spoke设备的链路状态信息都要借助Hub设备通告给其它Spoke设备。此外,Hub设备的链路状态信息也要通告给所有Spoke设备,当Spoke设备很多时,由于邻居状态改变、定期刷新LSA或者路由震荡引起的Hub设备需要发送的报文量非常大,并且这些报文是并发发送,远远超过系统的处理能力,影响邻居建立的数量和效率,另外还会影响到其它业务的运行。
为了解决上面的问题,H3C实现了报文平缓发送功能,通过配置来降低每个接口LSU报文的发送速率,从而减轻对系统资源的消耗,避免一些无谓的重传,提高邻居建立的数量和效率,并使得多业务可以顺利开展。
OSPF的Router LSA用来描述设备在区域内的接口、邻居等信息,每个区域只能有一个,它的长度与接口、邻居的个数成正比。当接口、邻居很多时生成的Router LSA长度很大。当每个邻居状态到Full时,都会引起Router LSA改变,就需要向每个邻居发送。而且这个LSA是随着邻居建立不断变化的,直到最终邻居状态全部达到Full才稳定下来。如果不加以限制,大量的处理时间被用来向邻居发送属于中间过程的Router LSA,浪费了系统资源,影响邻居建立的数量和效率。
通过命令行配置,系统就可以根据网络拓扑变化的频繁程度自动调节LSA生成时间间隔。LSA生成时间间隔在指定的最小时间间隔和最大时间间隔之间变化,变化的规律为“惩罚增量”按照二的幂次递增,即随着LSA反复生成的次数增多,其生成间隔就会越大,直到到达“最大间隔”为止。当时间间隔连续三次达到最大,则下一次的时间间隔又会被重置为最小时间间隔,开始新一轮的惩罚抑制功能。在Hub-And-Spoke组网中,当Hub设备和Spoke设备开始建立邻居时,LSA生成的次数不断增多,这个时候LSA生成时间间隔会逐步变大,这样可以减少邻居建立过程中的报文数量;当邻居都已成功建立达到稳定后,LSA生成的次数比较稳定,LSA的生成时间间隔就会保持在最小时间间隔,使路由信息的交互更快捷。
当LSDB发生改变时,需要通过SPF算法重新计算最短路径。对于Hub-And-Spoke这种有大量邻居的组网情况,如果频繁进行SPF计算,将会占用大量系统资源,Hub设备将不能及时处理Spoke设备发送的大量报文,从而使大量报文超时需要重传,而重传报文还是得不到及时处理会被丢弃,从而不得不依靠新一轮的重传。
通过命令行配置,系统就可以根据网络拓扑变化的频繁程度自动调节SPF计算的时间间隔。SPF计算的时间间隔在指定的最小时间间隔和最大时间间隔之间变化,变化的规律为“惩罚增量”按照二的幂次递增,即随着SPF计算次数不断增多,其计算间隔就会越大,直到到达“最大间隔”为止。当时间间隔连续三次达到最大,则下一次的时间间隔又会被重置为最小时间间隔,开始新一轮的惩罚抑制功能。在Hub-And-Spoke组网中,当SPF计算的次数不断增多时(比如Hub设备和众多Spoke设备开始建立邻居关系),SPF计算的时间间隔会逐步变大,这样可以使Hub设备能够及时处理Spoke设备发送的报文;当网络趋于稳定后,SPF计算的时间间隔就会保持在最小时间间隔,一旦LSDB发生变化立刻进行SPF计算,更新路由信息。
l RFC 2328:OSPF Version 2
l RFC 4222:Prioritized Treatment of Specific OSPF Version 2 Packets and Congestion Avoidance
OSPF支持Hub-And-Spoke组网典型配置举例
Copyright ©2009 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。