BFD在IPv4/IPv6单跳/多跳环境应用方案( 二 )


l 另一种是使用带外方式来预先获取discriminator.这样在BFD会话初始报文中就会携带非0的“Your Discirminator”,使用“Your Discirminator”就可以直接区分会话 。BFD for MPLS就使用这种方式,通过使用LSP-ping[RFC4379]来预先获取Discriminator.这种方式的缺点是需要额外的组件来预先获取discriminator.
另外,需要讨论一下单向链路上的BFD部署的问题 。单向链路就象交通规则中“单行道”,在该链路上数据是单向流通的,不过可通过其他路径作回程 。因为回程路径可能是多跳的,所以单向链路上BFD的部署也被纳入多跳范畴 。单向路径可以用一种比较巧妙的方法解决会话区分问题,因为在单向链路上是单跳的,所以在该方向上是可以用接口区分会话的,因此,只要要避免在区分出会话之前使用可能为多跳的回程路径发送BFD报文,就可以解决单向链路及其回程路径的会话区分问题 。这正好可以利用BFD的“角色”特性:设定单向链路的发送方工作在Active角色,接收方工作在Passive角色 。那么对于接收方来说,收到发送方的BFD报文,通过接收报文的接口就可区分会话,同时也确认了“Your Discirminator”字段,这时才开始从回程路径发送BFD报文,因为这时已经确认了“Your Discirminator”,所以对端也可以区分会话 。
最后,需要说明一下BFD在MPLS网络中作多跳部署时,和FRR的共存问题 。如果BFD的检测时间比FRR切换时间短,那么即使FRR成功切换到了备份路径,BFD还会报错,容易引起错误处理 。所以BFD协议规定,在这种情况下BFD的检测时间应该比FRR切换时间长 。
不过,BFD可代替RSVP Hello用于FRR时的邻居故障检测,这时BFD作单跳部署,不必把BFD检测时间设置为比FRR切换时间长 。原因如下:对于链路down,BFD上报故障时能携带故障原因,所以设备对于BFD报的链路down和链路层上报的链路down不会重复处理;至于链路单通、节点故障则可用BFD检测到,并触发FRR.

推荐阅读