长期以来,冗余网络设计和热交换路由器硬件部件不断提高网络正常运行时间。目前,IETF正领导着一项基于软件的高可用性工作,这项工作需要对已有路由协议进行扩展来减少软件故障的影响。
扩展边界网关协议(BGP)的功能是IETF工作的首批任务之一。说明BGP协议扩展的Internet草案叫做“BGP优化重新启动机制”。利用优化的重新启动,数据转发层即使在负责决定最佳路径的控制层发生故障时,仍可以连续处理和转发数据包。优化的重新启动还减少了路由切换,从而稳定了网络和减少了控制层资源的消耗。
BGP是高可用性改进技术的强有力的候选者,原因之一是其在设计上可支持大量的路由。因此,BGP软件发生故障后的收敛通常需要比其他路由协议更长的时间,从而导致更长持续时间的故障。此外,由于BGP一般被部署在企业网络和服务提供商网络相会之处的广域网边缘,因此出现故障的BGP过程的影响会传播到多条网络上,而非限制在一个网域中。
BGP优化的重新启动,是为减少出现故障的BGP过程引起故障的持续时间和范围而开发的。为了实现这一目标,这种软件扩展必须部署在重新启动BGP过程的路由器以及在这个路由器的BGP对等路由器上。对等路由器帮助BGP过程重新获得丢失的转发信息,还帮助将故障与网络的其他部署隔离开。
当初始BGP连接建立时,协议修改就开始了。重新启动路由器和对等路由器通过在建立会话的初始BGP开始消息中交换新BGP功能,来表明它们知道BGP优化的重新启动机制。重新启动路由器还为其对等一方提供一个基于IP的协议清单,表明重新启动路由器在这些协议上具有在BGP重新启动过程中保持转发状态的功能。这张清单可以包括IPv4、IPv6、IP多播和MPLS等协议。
当路由器重新启动其BGP过程时,到对等路由器的TCP连接可能被清除。在正常环境中,它会造成对等路由器清除所有与重新启动路由器相关的路由。而这种情况在使用BGP优化的重新启动机制时不会出现。相反,对等路由器将所有的路由标记为“过期”,但基于重新启动路由器不久将重新建立的BGP会话的预期,继续使用它们来转发数据包。同样,重新启动路由器还继续在这种过渡期内转发数据包。
当重新启动路由器开始新BGP会话时,它将向对等路由器再次发送BGP功能代码。不过,这次在优化的重新启动功能交换中,将通知对等路由器BGP过程已经重新开始。在继续转发数据包的同时,对等路由器将利用有关的BGP路由信息库更新来重新启动路由器。
所有主要路由器厂商都支持IETF“BGP优化重新启动机制”草案,两家主要Internet骨干路由器供给商目前正在发送支持这种协议扩展的代码。