12、IS-IS与BFD联动
IS-IS与BFD联动
通常情况下,IS-IS设定发送Hello报文的时间间隔为10秒,一般将宣告邻居Down掉的时间(即邻居的保持时间)配置为Hello报文间隔的3倍。若在相邻路由器失效时间内没有收到邻居发来的Hello报文,将会删除邻居。由此可见路由器能感知到邻居故障的时间最小为秒级。这样可能会出现在高速的网络环境中大量报文丢失的问题。
双向转发检测BFD(Bidirectional Forwarding Detection)能够提供轻负荷、快速(毫秒级)的通道故障检测,解决了IS-IS现有检测机制的不足的问题。使用BFD并不是代替IS-IS协议本身的Hello机制,而是配合IS-IS协议更快的发现邻接方面出现的故障,并及时通知IS-IS重新计算相关路由以便正确指导报文的转发。
如图1所示,各路由器上使能IS-IS基本功能。在RouterA和RouterB上使能IS-IS与BFD联动检测机制。
当主路径上的链路出现故障时,BFD能够快速检测到故障并通告给IS-IS协议,IS-IS Down掉故障链路的接口邻居并删除邻接对应的IP协议类型,从而触发拓扑计算,同时更新LSP使得其他邻居(如RouterC)及时收到RouterB的更新LSP,实现了网络拓扑的快速收敛。
IS-IS与BFD联动的分类
IS-IS与BFD联动包括IS-IS与静态BFD联动和IS-IS与动态BFD联动。
IS-IS与BFD联动的实现方式 | 工作原理 | 区别 |
---|---|---|
IS-IS与静态BFD联动 | 通过命令行手工配置BFD会话参数,包括了配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。 |
|
IS-IS与动态BFD联动 | 通过IS-IS动态创建BFD的会话,不再依靠手工配置。当BFD检测到故障的时候,通过路由管理通知IS-IS。IS-IS进行相应邻居Down处理,快速发布变化的LSP信息和进行增量路由计算,从而实现路由的快速收敛。 | 动态BFD比静态BFD更具有灵活性。动态BFD由路由协议动态触发BFD会话建立,避免了人为控制可能导致的配置错误,且配置比较简单,适用在全网需要配置BFD的情况。 |
由于IS-IS只能建立单跳邻居,IS-IS与BFD联动只对IS-IS邻居间的单跳链路进行检测。
BFD会话的创建与删除
路由管理模块RM(Routing Management Module)为IS-IS提供与BFD模块交互的相关服务。IS-IS通过RM通知BFD来动态创建或删除BFD会话,同时BFD的事件消息也通过RM传递给IS-IS。
创建BFD会话的条件-
各路由器配置了IS-IS基本功能并且在接口下使能了IS-IS。
-
各路由器配置了全局BFD功能并且使能了接口或者进程的BFD特性。
-
使能了接口或者进程的BFD特性,且相邻路由器的邻居状态为Up(广播网中须等到DIS选举出来)。
-
P2P网络
满足创建BFD会话的条件后,IS-IS将通过RM模块通知BFD模块直接在邻居间创建BFD会话。
-
广播网络
满足创建BFD会话的条件且DIS已经选举出来后,IS-IS将通过RM模块通知BFD模块,DIS与每台路由器之间都自动创建BFD会话。都不是DIS的两台路由器之间不建立BFD会话。
虽然广播网中IS-IS同一网段上的同一级别的路由器之间都会形成邻接关系,即包括所有的非DIS路由器之间也会形成邻接关系,但在IS-IS与BFD联动的实现上,只在DIS和非DIS之间建立BFD会话,非DIS之间不启动BFD会话,而P2P网络直接在邻居间创建会话。
如果同一链路上的同一对路由器形成的是Level-1-2的类型的邻居,在广播网中IS-IS会针对这两个Level分别创建两个BFD会话,但在P2P网络中IS-IS只会创建一个BFD会话。
-
P2P网络
当IS-IS在P2P网络接口类型上建立的邻接关系断开(非Up状态)或者邻居对应的IP协议类型删除时,删除对应的BFD会话。
-
广播网络
当IS-IS在广播网络接口类型上建立的邻接关系断开(非Up状态),邻居对应的IP协议类型删除或者广播网络DIS发生变化时,删除对应的BFD会话。
在IS-IS进程下去使能全局动态BFD后,该进程下的所有接口的BFD会话都被删除。
IS-IS响应BFD会话Down事件
当BFD检测到链路发生故障并产生Down事件时,会通知RM。RM通知IS-IS删除此邻接。IS-IS响应这个事件并重新进行路由计算,实现网络迅速收敛。
当本地路由器与邻居路由器均为Level-1-2路由器时,二者之间会针对不同的Level分别创建两个邻居,此时IS-IS也会创建两个不同Level的会话。在这种情况下,当BFD检测到链路发生故障并产生Down事件时,RM会通知IS-IS分别删除相应Level的邻接关系。