• 文章搜索:
  • IP技术专栏

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    C网NAT解决方案解析之BFD的应用

    文/解麟猛

    BFD技术简介

    为了减小设备或线路故障对业务的影响、提高网络的可用性,设备需要能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务继续进行。

    现有的故障检测方法主要包括以下几种:

    · 硬件检测:例如通过SDH(Synchronous Digital Hierarchy,同步数字体系)告警检测链路故障。硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。

    · 上层协议检测机制:比如说路由协议中的Hello报文机制,VRRP中的hello报文机制。这种机制检测到故障所需时间较长,通常为秒级。

    BFD(Bidirectional Forwarding Detection,双向转发检测)就是为了解决上述检测机制的不足而产生的,它是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况,保证邻居之间能够快速检测到通信故障,从而快速建立起备用通道恢复通信。

    C网NAT融合承载网元方案路由设计

    H3C公司提供的融合承载网元方案,采用IRF技术,实现融合承载网元双机框高可靠性的部署。同时采用NAT业务单板插卡的方式,实现整机容量的灵活扩容。

    融合承载网元采用旁挂CE的方式接入网络,网元上需要配置PI-0、PI-1和PI-3等三个VPN,和CE上对应的VPN采用Option-a的方式互联。VPN路由采用静态路由方式配置。

    CE上路由设计:

    在PI-3VPN中,配置缺省路由,下一跳指向融合承载网元;

    在PI-0VPN中,配置静态路由,目标网段为融合承载网元上为CTWAP私网用户分配的访问Internet的NAT公网地址池的汇聚网段,下一跳为融合承载网元;

    在PI-1VPN中,配置静态路由,目标网段为融合承载网元上为CTWAP私网用户分配的访问PI-1的NAT私网地址池的汇聚网段,下一跳为融合承载网元。

    融合承载网元上的路由设计:

    在PI-3(对承载网元来说是public路由)中,把从CE接收到的流量通过策略路由的方式转发各对防火墙插卡。把复用的privatewap地址根据不同的地址段,重定向到各对防火墙插卡上去。策略路由建议使用PBR的方式,不使用MQC的方式。配置静态路由,目标网段为PI-3的私网复用地址网段,下一跳为等价路由,分别指向CE1和CE2;

    在PI-0VPN中,配置缺省路由,下一跳为等价路由,分别指向CE1和CE2;同时配置到各对防火墙插卡的PI-0公网地址池的静态路由,下一跳分别指向各对防火墙插卡的VRRP虚地址。为避免路由环路,需要配置黑洞路由,目标网段为所有防火墙的PI-0公网地址池的汇总;

    在PI-1VPN中,配置静态路由,目标网段为PI-1VPN私网业务的网段,目前包括两个网段,10.0.0.0/8和115.168.254.0/24,下一跳为等价路由,分别指向CE1和CE2;同时配置到各对防火墙插卡的PI-1私网地址池的静态路由,下一跳分别指向各对防火墙插卡的VRRP虚地址。为避免路由环路,需要配置黑洞路由,目标网段为所有防火墙的PI-1私网地址池的汇总;

    C网NAT融合承载网元方案对BFD的需求

    从路由规划上看出,承载网元在每一个VPN上都设置了两条静态路由,分别指向CE1和CE2,为了能够在CE1或CE2故障时快速收敛,需要有一种检测机制实时监测CE1和CE2的状态,并能够根据CE1和CE2的状态情况撤销对应静态路由;

    在CE1和CE2上同样配置了指向承载网元的静态路由,并把这个静态路由引入到动态路由中发布到PE上去,作为报文返回时路由选择。在CE1和CE2上也需要有一种检测机制,监测CE1和CE2是否可以到达融合承载网元,如果不可到达,需要联动本地静态路由无效,并取消在动态路由中的引入发布。

    而BFD(Bidirectional Forwarding Detection,双向转发检测)就是这样一种检测机制,用于快速检测、监控网络中链路或者IP连通状况,并且作为标准协议,能够和静态路由联动,为大多数主流厂商所支持。

    需求讨论一:

    有人产生这样的疑问,CE和融合承载网元大多数情况在同一个机房,两者采取直连的方式,中间并不跨越传输设备,如果链路出现故障,CE和融合承载网元感知链路中断,对应静态路由不生效,应该很快会收敛,不需要额外配置其它检测机制。

    目前的情况是,虽然是直连,但大多使用光纤连接,单通现象较普遍,如果单纤出现故障,会导致一方静态路由不生效,而另外一方静态路由生效,业务仍然会部分中断。

    需求讨论二:

    既然担心单通造成通信故障,那么现在主流厂商都有单通检测机制,是否可以使用单通检测机制来替代BFD呢?答案是不可以。原因是目前各厂商的单通检测机制都是私有协议,实际组网时限制太多。而BFD是标准协议,各主流厂商之间的互通不存在问题。

    BFD在C网NAT场景中的应用

    BFD的工作方式有两种:

    控制报文方式:链路两端会话通过控制报文交互监测链路状态。这种工作方式适合于链路两端设备都需要进行链路状态监测。

    Echo报文方式:链路某一端通过发送Echo报文由另一端作为普通数据报文转发回来,实现对链路的双向监测。这种工作方式适合于仅链路一端的设备需要进行链路双向传输监测。比如另一端设备不支持BFD时,只能使用这种工作方式。

    在C网NAT的场景下,CE设备和融合承载网元都需要对另一端设备进行检测,所以采用控制报文的工作方式更为合适。

    H3C设备作为融合承载网元,典型配置如下:

    ip route-static 10.48.0.0 255.252.0.0 Vlan-interface3103 10.233.213.237 bfd control-packet description TO-CDMA-PI3-privatwap-CE8

    其中10.48.0.0 255.252.0.0为目标网段和掩码;vlan-interface3103为下一跳出接口;10.233.213.237是下一跳地址,也是远端CE和融合承载网元的互联地址;bfd control-packet表明此静态路由和BFD绑定,BFD的工作方式是控制报文方式;description关键字及其后面的字符是为了维护方便,对此静态路由的描述。

    根据对收敛速度的要求,可以适当调整BFD报文的探测周期和探测次数:

    bfd min-transmit-interval value

    bfd min-receive-interval value

    bfd detect-multiplier value

    假如Router A的Min-transmit-Interval为100毫秒,Min-Receive-Interval为300毫秒,Detect Mult为5;Router B的Min-transmit-Interval为150毫秒,Min-Receive-Interval为400毫秒,Detect Mult为10。那么会有以下结果:

    Router A的实际发送时间为Router A发送控制报文的最小时间间隔和Router B接收控制报文的最小时间间隔之间的较大值=Max(100,400)=400毫秒。

    Router B的实际发送时间为Router B发送控制报文的最小时间间隔和Router A接收控制报文的最小时间间隔之间的较大值=Max(150,300)=300毫秒。

    Router A的实际检测时间为Router B的检测时间倍数和Router B的实际发送时间的乘积=10×300=3000毫秒。

    Router B的实际检测时间为Router A的检测时间倍数和Router A的实际发送时间的乘积=5×400=2000毫秒。

    顶端