精华内容
下载资源
问答
  • cisco BFD配置

    2018-07-24 13:24:34
    cisco BFD(Bidirectional Forwarding Detection,双向转发检测)协议提供一种轻负载、快速检测两台邻接路由器之间转发路径连通状态的方法。协议邻居通过该方式可以快速检测到转发路径的连通故障,加快启用备份转发...
  • BFD-1000用户手册及循迹例程,含pid算法。
  • H3C交换机BFD典型配置举例
  • BFD原理与配置

    2018-06-20 09:48:37
    BFD原理与配置:熟悉BFD基本原理,掌握BFD配置和故障排查方法
  • BFD 标准协议

    2017-10-25 13:16:20
    BFD 标准协议,主要讲述BFD协议的消息定义,字段的解释,以及BFD协议标准。
  • 双向转发检测协议-BFD 双向转发检测BFD:一种用于检测邻居路由器之间链路故障的检测机制,它通常与路由协议联动,通过快速感知链路故障并通告是的路由协议能够快速地重新收敛,从而减少由于拓扑变化导致的流量丢失 1...
  • H3C交换机路由器配置OSPF与BFD联动.pdf
  • bfd3me 套件,套件和预设元数据以及BFD3的数据库编辑器 这是一个跨平台(理论上)的应用程序,用于编辑套件,套件和预设的BFD3元数据,既可以单个文件(即单个预设)的形式,也可以直接编辑BFD3数据库文件。 对于...
  • bfd各种路由配置

    2015-03-13 14:02:53
    # 在SwitchA上配置与SwitchD之间的BFD Session。 [~SwitchA] bfd [~SwitchA-bfd] quit [~SwitchA] bfd atod bind peer-ip 8.1.1.2 [~SwitchA-bfd-session-atod] discriminator local 10 [~SwitchA-bfd-session-atod]...
  • BFD配置示例(Cisco、迈普、H3C、华为、锐捷)
  • BFD(双向转发)

    2017-04-10 10:34:03
    BFD
  • 去-bfd Go的双向转发检测库 描述 双向转发检测(BFD)的实现 基于: 双向转发检测 BFD for IPv4 和 IPv6(单跳) BFD 控制包必须在 UDP 包中传输,目的端口为 3784,在 IPv4 或 IPv6 包内。 源端口必须在 49152 ...
  • BFD是一种双向转发快速检测机制,为解决协议软件BFD在链路检测中响应慢的问题,本文提出并实现了一种在多核处理器平台下基于底层驱动实现的BFD机制。该机制下所有的收发包处理都由底层驱动实现,上层只负责向底层...
  • BFD配置

    2021-03-16 18:50:44
    BFD简介 定义 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。 目的 为了减小设备故障对业务的影响,提高网络的可靠性,...


    BFD简介

    定义

    双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。

    目的

    为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务继续进行。在现有网络中,有些链路通常通过硬件检测信号,如SDH告警,检测链路故障,但并不是所有的介质都能够提供硬件检测。此时,应用就要依靠上层协议自身的Hello报文机制来进行故障检测。上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。同时,在一些小型三层网络中,如果没有部署路由协议,则无法使用路由协议的Hello报文机制来检测故障。

    BFD协议就是在这种背景下产生的,BFD提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制。具有以下优点:

    • 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口、数据链路,甚至有可能是转发引擎本身。
    • 用单一的机制对任何介质、任何协议层进行实时检测。

    受益

    BFD可以实现快速检测并监控网络中链路或IP路由的转发连通状态,改善网络性能。相邻系统之间通过快速检测发现通信故障,可以更快地帮助用户建立起备份通道以便恢复通信,保证网络可靠性。

    BFD原理描述

    原理简介

    BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。下面以OSPF与BFD联动为例,简单介绍会话工作流程。

    图1 BFD会话建立流程图
    在这里插入图片描述

    上图所示是一个简单的网络组网,两台设备上同时配置了OSPF与BFD,BFD会话建立过程如下所示:

    1. OSPF通过自己的Hello机制发现邻居并建立连接。
    2. OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
    3. BFD根据收到的邻居信息建立会话。
    4. 会话建立以后,BFD开始检测链路故障,并做出快速反应。

    图2 BFD故障发现处理流程图
    在这里插入图片描述
    如上图所示:

    1. 被检测链路出现故障。
    2. BFD快速检测到链路故障,BFD会话状态变为Down。
    3. BFD通知本地OSPF进程BFD邻居不可达。
    4. 本地OSPF进程中断OSPF邻居关系。

    BFD回话建立方式

    BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD会话。静态和动态创建BFD会话的主要区别在于本地标识符(Local Discriminator)和远端标识符(Remote Discriminator)的配置方式不同。BFD通过控制报文中的Local Discriminator和Remote Discriminator区分不同的会话。

    静态建立BFD会话

    静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。

    动态建立BFD会话

    动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:

    • 动态分配本地标识符
      当应用程序触发动态创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote
      Discriminator的值为0的BFD控制报文,进行会话协商。
    • 自学习远端标识符
      当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local
      Discriminator的值,获取远端标识符。

    BFD检测机制

    BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。

    BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续几个报文都没有接收到,就认为此BFD会话的状态是Down。

    BFD会话管理

    BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。以BFD会话建立为例,简单介绍状态机的迁移过程。

    图3 BFD会话建立流程图
    在这里插入图片描述

    1. SwitchA和SwitchB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0。
    2. SwitchB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
    3. SwitchB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
    4. SwitchA的BFD状态变化同SwitchB。
    5. SwitchB收到状态为Init的BFD报文后,本地状态切换至Up。
    6. SwitchA的BFD状态变化同SwitchB。

    BFD协议报文

    BFD协议报文的格式如 图4 所示。

    图4 BFD协议报文的格式
    在这里插入图片描述

    字段长度含义

    Vers (Version)

    3 bits

    BFD协议版本号,目前为1。

    Diag (Diagnostic)

    5 bits

    诊断字,标明本地BFD系统最近一次会话状态发生变化的原因。

    • 0:表示无诊断信息。
    • 1:表示检测时间超时。
    • 2:表示Echo功能失效。
    • 3:表示邻居会话Down。
    • 4:表示转发面复位。
    • 5:表示路径Down。
    • 6:表示级联路径Down。
    • 7:表示AdminDown。
    • 8:表示反向级联路径Down。
    • 9-31:表示预留后续使用。

    Sta (State)

    2 bits

    BFD本地状态:

    • 0:表示管理状态Down。
    • 1:表示运行状态Down。
    • 2:表示初始状态。
    • 3:表示正常UP状态。

    P (Poll)

    1 bit

    参数发生改变时,发送方在BFD报文中置位该标志,接收方必须立即响应该报文。

    • 0:表示发送系统不请求确认。
    • 1:表示发送系统请求进行连接确认,或者发送请求参数改变的确认。

    F (Final)

    1 bit

    是否发送响应P标志置位的回应报文由F标志的置位状态决定。

    • 0:表示发送系统不响应一个P比特为1的包。
    • 1:表示发送系统响应一个接收到P比特为1的BFD包。

    C (Control Plane Independent)

    1 bit

    转发/控制分离标志,一旦置1,控制平面的业务状态变化不影响BFD检测,如:控制平面为IS-IS,当IS-IS平滑重启(GR)时,BFD可以继续监测链路状态。

    • 0:通过对比本端与对端的C bit位,二者不都为1,表示BFD报文在控制平面传输。这种情况下,GR期间BFD检测往往会误down,其结果是不可信的,业务不需要进行响应。
    • 1:通过对比本端与对端的C bit位,二者都为1,表示发送系统的BFD实现不依赖于控制平面,BFD报文在转发平面传输,即使控制平面失效,BFD仍然能够起作用。这种情况下,GR期间BFD检测down是可信的,业务将响应down消息并改变拓扑和路由,避免流量丢失。

    A (Authentication Present)

    1 bit

    认证标识。

    • 0:表示会话不需要进行验证。
    • 1:表示会话需要进行验证。

    D (Demand)

    1 bit

    查询请求,置位代表发送方期望采用查询模式对链路进行监测。

    • 0:表示发送系统不希望、或不能工作在查询模式。
    • 1:表示发送系统希望工作在查询模式。

    M (Multipoint)

    1 bit

    为BFD将来支持点对多点扩展而设的预留位。

    Detect Mult

    8 bits

    检测超时倍数,用于检测方计算检测超时时间。

    • 查询模式:采用本地检测倍数。
    • 异步模式:采用对端检测倍数。

    Length

    8 bits

    报文长度,单位为字节。

    My Discriminator

    32 bits

    BFD会话连接本地标识符。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。

    Your Discriminator

    32 bits

    BFD会话连接远端标识符。

    • 0:未知。
    • Non-0:从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”。

    Desired Min TX Interval

    32 bits

    本地支持的最小BFD报文发送间隔,单位为毫秒。

    Required Min RX Interval

    32 bits

    本地支持的最小BFD报文接收间隔,单位为毫秒。

    Required Min Echo RX Interval

    32 bits

    本地支持的最小Echo报文接收间隔,单位为毫秒(如果本地不支持Echo功能,则设置0)。

    BFD应用场景

    BFD检测IP链路

    在IP链路上建立BFD会话,利用BFD检测机制快速检测故障。BFD检测IP链路支持单跳检测和多跳检测:

    • BFD单跳检测是指对两个直连系统进行IP连通性检测,“单跳”是IP链路的一跳。
    • BFD多跳检测是指BFD可以检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发生重叠。

    组网应用: BFD检测单跳链路

    BFD检测两台设备之间的IP单跳路径,BFD会话绑定出接口。
    在这里插入图片描述

    #使能全局BFD功能并进入BFD视图,interface是本端接口
    bfd
    (可选)执行命令default-ip-address ip-address,配置BFD缺省组播IP地址,缺省情况下,BFD使用组播IP地址224.0.0.184。
    #
    bfd 1 bind peer-ip 10.1.1.2 interface Ethernet0/0/0 source-ip 10.1.1.1
     discriminator local 1  //配置BFD会话的本地标识符
     discriminator remote 2  //配置BFD会话的对端标识符
     commit  //提交配置
    #
    
    #
    bfd
    #
    bfd 1 bind peer-ip 10.1.1.1 interface Ethernet0/0/0 source-ip 10.1.1.2
     discriminator local 2
     discriminator remote 1
     commit
    #
    
    • 在第一次创建单跳BFD for IPv4会话时,必须绑定对端IPv4地址和本端相应接口,且创建后不可修改。
    • 在创建BFD for IPv4配置项时,系统只检查IPv4地址是否符合IPv4地址格式,不检查其正确性。绑定错误的对端IPv4地址或源IPv4地址都将导致BFD
      for IPv4会话无法建立。
    • 当BFD与单播逆向路径转发URPF(Unicast Reverse Path Forwarding)特性一起应用时,由于URPF会对接收到的报文进行源IPv4地址检查,用户在创建BFD for
      IPv4绑定时,需要使用source-ip选项手工指定正确的源IPv4地址,以免BFD报文被错误地丢弃。
    • IPv6原理同IPv4

    组网应用二: BFD检测多跳链路

    BFD检测SwitchA和SwitchC之间的IP多跳路径,BFD会话绑定对端IP但不绑定出接口。
    在这里插入图片描述

    #
    bfd 2 bind peer-ip 10.2.1.2 source-ip 10.1.1.1
     discriminator local 3
     discriminator remote 4
     commit
    #
    
    #
    bfd 2 bind peer-ip 10.1.1.1 source-ip 10.2.1.2
     discriminator local 4
     discriminator remote 3
     commit
    #
    
    • 在第一次创建BFD for IPv4会话时,必须绑定对端的IPv4地址,且创建后不可修改。
    • 在创建BFD for IPv4配置项时,系统只检查IPv4地址是否符合IPv4地址格式,不检查其正确性。绑定错误的对端IPv4地址或源IPv4地址都将导致会话无法建立。
    • 当BFD与单播逆向路径转发URPF(Unicast Reverse Path Forwarding)特性一起应用时,由于URPF会对接收到的报文进行源IP地址检查,用户在创建BFD绑定时,需要使用source-ip选项手工指定正确的BFD报文的源IP地址,以免BFD报文被错误地丢弃。

    BFD与静态路由联动

    与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。BFD与静态路由联动特性可为公网静态路由绑定BFD会话,利用BFD会话来检测静态路由所在链路的状态。

    BFD与静态路由联动可为每条静态路由绑定一个BFD会话,当这条静态路由上绑定的BFD会话检测到链路故障(由Up转为Down)后,BFD会将故障上报路由管理系统,由路由管理模块将这条路由设置为“非激活”状态(此条路由不可用,从IP路由表中删除)。当这条静态路由上绑定的BFD会话成功建立或者从故障状态恢复后(由Down转为Up),BFD会上报路由管理模块,由路由管理模块将这条路由设置为“激活”状态(此路由可用,加入IP路由表)。
    在这里插入图片描述

    • 配置RTA与RTB全局BFD功能。
    • 配置RTA与RTB的BFD会话。
    • 配置RTA通往ISP1的默认路由,优先级保持为默认的60,并联动BFD会话。
    • 配置RTA通往ISP2的默认路由,优先级比通往ISP1的默认路由要低。
    执行命令bfd session-name bind peer-ip ip-address [ vpn-instance vpn-name ] [ interface interface-type interface-number ] [ select-board slot-id1 [ slot-id2 ] ] source-ip ip-address auto,创建标识符自协商的静态BFD for IPv4会话。
    
    • 必须配置源地址。
    • 必须指定明确的对端IPv4地址,不能使用组播IPv4地址。

    BFD与OSPF联动

    网络上的链路故障或拓扑变化都会导致路由的重新计算,要提高网络的可用性,缩短路由协议的收敛时间非常重要。由于链路故障无法完全避免,因此,加快故障感知速度并将故障快速通告给路由协议是一种可行的方案。

    BFD与OSPF联动就是将BFD和OSPF协议关联起来,通过BFD对链路故障的快速感应进而通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。表1 显示了OSPF协议是否绑定BFD时收敛速度的数据。

    表1 OSPF协议收敛速度的数据

    是否绑定BFD链路故障检测机制收敛速度
    未绑定BFDOSPF HELLO keepalive定时器超时秒级
    绑定BFDBFD会话Down毫秒级

    在这里插入图片描述

    BFD与IS-IS联动

    通常情况下,IS-IS设定发送Hello报文的时间间隔为10秒钟,相邻设备失效的时间一般配置为Hello报文间隔的3倍。若在相邻设备失效时间内没有收到邻居发来的Hello报文,将会删除邻居。设备能感知到邻居故障的时间最小也是秒级。在高速的网络环境中,这将导致报文大量丢失。

    BFD与IS-IS联动是指BFD会话由IS-IS协议动态创建,不再依靠手工配置,当BFD检测到故障时,通过路由管理通知IS-IS协议,由协议进行相应邻居Down处理,快速更新LSP信息和进行增量路由计算,从而实现IS-IS路由的快速收敛。使用BFD并不是代替IS-IS协议本身的Hello机制,而是配合IS-IS协议更快的发现邻居方面出现的故障,并及时通知IS-IS重新计算相关路由以便正确指导报文的转发。表1 显示了IS-IS协议是否绑定BFD时收敛速度的数据。

    表1 IS-IS协议收敛速度的数据

    是否绑定BFD链路故障检测机制收敛速度
    未绑定BFDHELLO 报文机制秒级
    绑定BFDBFD会话Down毫秒级

    BFD与BGP联动

    BGP协议通过周期性的向对等体发送Keepalive报文来实现邻居检测机制,但这种机制检测到故障所需时间比较长,超过1秒钟。当数据达到吉比特速率级别时,将会导致大量的数据丢失。因此,BGP协议通过引入BFD与BGP联动功能,利用BFD的快速检测机制,迅速发现BGP对等体间链路的故障,并报告给BGP协议,从而实现BGP路由的快速收敛。表1 显示了BGP协议是否绑定BFD时收敛速度的数据。

    表1 BGP协议收敛速度的数据

    是否绑定BFD链路故障检测机制收敛速度
    未绑定BFDkeeplive 报文机制秒级
    绑定BFDBFD会话Down毫秒级

    组网应用:
    在这里插入图片描述

    • 配置RTA和RTB网络层路由可达。
    • 配置RTA和RTB的BGP邻居参数,建立起IBGP的邻居关系。
    • 在RTA和RTB上全局启用BFD功能。
    • 在RTA和RTB的BGP进程下启用BFD检测。

    BFD与VRRP联动

    VRRP的协议关键点是当Master出现故障时,Backup能够快速接替Master的转发工作,保证数据流的中断时间尽量短。

    当Master出现故障时,VRRP依靠Backup设置的超时时间来判断是否应该抢占,切换速度在1秒以上。将BFD应用于Backup对Master的检测,可以实现对Master故障的快速检测,缩短用户流量中断时间。BFD对Backup和Master之间的实际地址通信情况进行检测,如果通信不正常,Backup就认为Master已经不可用,升级成Master。VRRP通过监视BFD会话状态实现主备快速切换,切换时间控制在50毫秒以内。
    在这里插入图片描述

    • 配置SWA与SWB的VRRP备份组。
    • 配置SWB与RTC间的BFD会话。
    • 在SWB上的VRRP备份组进程下配置监视BFD会话,当BFD会话状态变化时,通过降 低优先级实现主备快速切换。
    • SWA将成为VRRP备份组中的Master设备继续转发用户流量。

    BFD与PIM联动

    正常情况下,如果共享网段上的当前DR(Designate Router)出现故障,其他PIM邻居会等到邻居关系超时才触发新一轮的DR竞选过程,组播数据传输中断的时间将会不小于邻居关系的超时时间,通常是秒级。

    BFD与PIM联动的特点是可以进行快速故障检测,能够在毫秒级别内通知PIM模块触发新一轮的DR竞选,而不是等到邻居关系超时。

    BFD与PIM联动同时也适用于共享网段上Assert竞选的过程,可以快速响应Assert Winner接口故障。

    表1 显示了PIM协议是否绑定BFD时收敛速度的数据。

    表1 PIM协议收敛速度的数据

    是否绑定BFD链路故障检测机制收敛速度
    未绑定BFD邻居关系超时秒级
    绑定BFDBFD会话Down毫秒级

    组网应用:
    在这里插入图片描述
    如图所示,在与用户主机相连的共享网段上,SwitchC的下游接口Interface1和SwitchD的下游接口Interface2之间建立PIM BFD会话,通过在链路两端发送BFD检测报文检测链路状态。

    SwitchC作为当前DR,下游接口Interface1负责接收端组播数据的转发。若接口Interface1发生故障,BFD快速把会话状态通告给RM,再由RM通告给PIM。PIM模块触发新一轮的DR竞选,SwitchD作为新当选的DR,下游接口Interface2在短时间内向接收端转发组播数据,从而缩小组播数据传输的中断时间。

    BFD for Link-bundle

    两台设备之间通过三层Eth-Trunk链路相连,Eth-Trunk链路下有多条成员链路,用户希望能通过部署BFD来检测该Eth-Trunk链路上的故障。

    普通的BFD单跳会话绑定Eth-Trunk接口,只会创建一个BFD会话,并从Eth-Trunk接口中选择一个成员接口所在的成员链路作为检测路径。如果该成员链路故障,BFD会话就会认为整个Eth-Trunk发生了故障,实际上,该Eth-Trunk的其他成员链路仍然可用。

    BFD for Link-bundle类型的会话能够很好的解决这个问题。
    在这里插入图片描述
    如图所示,BFD for Link-bundle会话由一个主会话以及多个子会话组成:

    • 子会话负责独立的检测Eth-Trunk成员链路,并将检测结果上报至主会话,子会话的参数全部继承主会话的配置信息。
    • 主会话负责为Eth-Trunk下每一个成员接口创建一个BFD子会话,以及汇总子会话的检测结果并对Eth-Trunk链路的状态做出最终判断:
    • 只要有一个子会话的状态为Up,主会话状态就为Up。
    • 如果BFD for Link-bundle没有子会话,则主会话状态为Down,通告给上层应用的状态为Unknown。
    • 如果Eth-Trunk下仅有一个成员接口,其对应的子会话状态为Up,该成员口退出Eth-Trunk,则主会话状态为Down。

    主会话的本地标识符使用特殊的标识符分配区间:0x00100000–0x00103fff,不占用原有BFD会话标识符区间。由于主会话不负责收发报文,因此不进行对端标识符学习。子会话的本地标识符使用原有动态BFD会话的标识符区间,分配算法亦与动态BFD会话一致。

    综上所述,如果要在三层Eth-Trunk接口上部署BFD,可优先选择BFD for Link-bundle的方式部署。这样,Eth-Trunk成员口振荡不会导致Eth-Trunk的BFD主会话出现振荡。

    图1 配置BFD检测VLAN下Eth-Trunk成员链路组网图
    在这里插入图片描述
    配置思路

    采用如下思路配置检测VLAN下Eth-Trunk成员链路功能的BFD会话:

    1. 在SwitchA和SwitchB上创建Eth-Trunk接口,并将以太网接口加入Eth-Trunk接口。
    2. 在SwitchA和SwitchB上创建VLAN,将Eth-Trunk接口划入该VLAN,并创建对应的VLANIF接口,实现设备三层互通。
    3. 在SwitchA上配置BFD for Perlink会话,检测SwitchA到SwitchB之间的VLAN下Eth-Trunk成员链路。
    #
    sysname switchA
    #
    vlan batch 100
    #
    bfd
    #
    interface Vlanif100
     ip address 10.1.1.5 255.255.255.0
    #
    interface Eth-Trunk1
     port link-type trunk
     port trunk allow-pass vlan 100
    #
    interface GigabitEthernet0/0/1
     eth-trunk 1
    #
    interface GigabitEthernet0/0/2
     eth-trunk 1
    #
    bfd atob bind peer-ip 10.1.1.6 interface Vlanif100 source-ip 10.1.1.5  one-arm-echo
     discriminator local 1
     commit
    #
    
    #
    sysname switch2
    #
    vlan batch 100
    #
    bfd
    #
    interface Vlanif100
     ip address 10.1.1.6 255.255.255.0
    #
    interface MEth0/0/1
    #
    interface Eth-Trunk1
     port link-type trunk
     port trunk allow-pass vlan 100
    #
    interface GigabitEthernet0/0/1
     eth-trunk 1
    #
    interface GigabitEthernet0/0/2
     eth-trunk 1
    #
    bfd atob bind peer-ip 10.1.1.5 interface Vlanif100 source-ip 10.1.1.6  one-arm-echo
     discriminator local 2
     commit
    #
    

    BFD for VXLAN

    BFD for VXLAN是指在VXLAN隧道上部署BFD,当主用隧道发生故障时,网络可以快速感知并将流量切换至备份隧道,保证流量的正常转发,提高网络可靠性。

    该功能在IPv4 over IPv4、IPv6 over IPv4网络中支持,在IPv4 over IPv6、IPv6 over
    IPv6网络中不支持。

    适用场景

    在VXLAN网关设备上创建BFD for VXLAN会话,通过BFD检测机制实现对VXLAN隧道的连通性检测,进而实现VXLAN隧道的保护切换。

    图1 所示,BFD for VXLAN的典型应用场景为VXLAN网关设备与VMware设备互通。在没有部署VMware的网络中,如果要实现将VM3的业务流量转发到VM1和VM2,对于单播业务流量,Device3将直接转发给对应的Device1或Device2;对于BUM流量,Device3会采用头端复制方式将流量复制多份并发送给Device1和Device2。而如果VM过多,头端复制的方式会造成资源的大量浪费,因此,为了减小网络压力,VMware使用Replicator节点来进行BUM的集中复制,集中复制是指各个VTEP都将BUM报文封装到Replicator的隧道中,并只发给Replicator;然后再由Replicator发给其他VTEP(除了源VTEP)。同时,为了提高网络可靠性,Replicator支持集群部署,集群由多个Replicator节点构成。

    图1 BFD for VXLAN典型场景组网图
    在这里插入图片描述
    实现原理

    BFD for VXLAN会话的报文格式如图2所示。

    图2 BFD for VXLAN报文格式
    在这里插入图片描述
    BFD for VXLAN网络中,报文转发流程为:

    • VTEP分别与每个Replicator之间建立VXLAN隧道,而这多个VXLAN隧道之间互为保护备份关系,BUM流量只会通过一个VXLAN隧道转发,而收到BUM流量的Replicator会将流量复制并转发给其他Replicator。
    • BFD for VXLAN会话部署在VXLAN网关与Replicator集群之间,用于检测VXLAN网关和Replicator集群之间的隧道连通性,当其中一条隧道故障时,自动将流量切换至备份链路进行转发。

    此处以Device3上VXLAN集中复制组中有两条VXLAN隧道为例,介绍BFD for VXLAN的链路保护原理。

    1. Device3集中复制组中有两条VXLAN隧道,目的VTEP分别为Replicator1和Replicator2,其中,Device3与Replicator1之间的隧道为主用VXLAN隧道。
    2. Device3将VM3发出的BUM流量转发到Device3与Replicator1之间的主VXLAN隧道上。
    3. BFD for VXLAN对主VXLAN隧道进行检测。
    4. 当Device3到Replicator1之间的VXLAN隧道发生故障时,Device3通过BFD感知到隧道故障,进行流量快切,并选择备用隧道,Device3上的BUM流量将通过Device3与Replicator2之间的隧道进行流量转发,保证了流量的可靠转发。

    BFD单臂回声功能

    单臂回声功能是指通过BFD报文的环回操作检测转发链路的连通性。

    在两台直接相连的设备中,其中一台设备支持BFD功能,另一台设备不支持BFD功能,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声功能的BFD会话。支持BFD功能的设备主动发起回声请求功能,不支持BFD功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。

    单臂回声功能只适用于单跳BFD会话中。

    在这里插入图片描述

    #
    sysname SwitchA
    #
    vlan batch 13
    #
    bfd
    #
    interface Vlanif13
     ip address 10.1.1.5 255.255.255.0
    #
    interface 10GE1/0/1
     port link-type trunk
     port trunk allow-pass vlan 13
    #
    bfd atob bind peer-ip 10.1.1.6 interface Vlanif13 source-ip 10.1.1.5 one-arm-echo
     discriminator local 1
    #
    
    #
    sysname SwitchB
    #
    vlan batch 13
    #
    interface Vlanif13
     ip address 10.1.1.6 255.255.255.0
    #
    interface 10GE1/0/1
     port link-type trunk
     port trunk allow-pass vlan 13
    #
    

    检查BFD的配置结果

    使用display bfd session { all | static | discriminator discr-value | dynamic | peer-ip { default-ip | peer-ip [ vpn-instance vpn-instance-name ] } | peer-ipv6 peer-ipv6 | static-auto } [ verbose ]命令查看BFD会话信息。
    使用display bfd statistics命令查看BFD全局统计信息。 
    使用display bfd statistics session { all | static | dynamic | discriminator discr-value | peer-ip { default-ip | peer-ip [ vpn-instance vpn-name ] } | peer-ipv6 peer-ipv6 | static-auto }命令查看BFD会话统计信息。 
    

    清除BFD会话统计信息

    清除BFD的统计信息后,以前的信息将无法恢复,务必仔细确认。

    在用户视图下执行reset bfd statistics { all | discriminator discr-value }命令清除BFD会话的统计信息。
    
    展开全文
  • 在箱子装载问题中,有若干个容量为c的箱子和n个待装载入箱子中的物品。物品i需占是s[i]个单元(0[i])。所谓成功装载(feasible packing),是指能把所有物品...采用竞赛树和AVL树的FF、BF、FFD、BFD四种解法C++源代码
  • SLA和BFD技术简介

    2016-02-03 10:33:34
    BFD(双向转发检测)是一个简单的“Hello”协议,主要用于对相邻转发引擎之间通道故障提供轻负荷、持续时间短的检测,并将检测结果及时通知IGP。
  • 华为 BFD

    万次阅读 多人点赞 2020-05-16 20:17:49
    自律的最高境界就是享受孤独。 文章目录 一、BFD工作原理 二、拓扑 三、基础配置 四、链路检测 五、BFD双向转发检测 1、BFD 2、BFD特点 3、BFD与应用联动 4、静态BFD会话的特殊形式

    自律的最高境界就是享受孤独。

    在这里插入图片描述

    一、BFD工作原理

    1、建立会话

    两端建立BFD的检测会话,互相发送类似“hello”包的BFD检测包 ,通过BFD控制报文中的本地标识符合远端标识符来区分不同的BFD会话。

    (1)静态会话

    手动配置BFD会话参数(手动指定标识符和远端标识符 1-8191,0保留作为动态BFD协商时使用),手动下发BFD会话建立请求。

    ①开启BFD会话

    ②创建BFD会话名称

    ③指定检测源检测端地址

    ④指定本地和远端的BFD会话标识符

    ⑤激活/下发BFD会话

    (2)动态会话

    动态BFD联动由各种路由协议(如RIP,OSPF)触发,在建立BFD会话时系统对本地标识符合远端标识符分别采用如下处理。

    ①动态分配本地标识符

    ②动态学习远端标识符

    a.开启BFD会话

    b.开启与应用协议的BFD联动(自动创建BFD会话,BFD会话源目的,动态下发本地标识符,动态学习对端标识符)

    2、检验方式

    (1)异步模式

    系统之间互相周期性的发送BFD控制包,如果在某个系统检测时间内没有收到对端的BFD控制包,就判断会话down,告知联动应用执行相应策略动作。

    (2)查询模式

    每个系统都有一个独立的方法用来确认它所连接的系统,一旦一个会话建立后,系统停止发送控制报文,只有在需要显示地验证连接性,发送一个短系列的控制包,再检测时间内没有收到返回的报文就宣布会话为down。

    (3)回声模式

    本地发送一系列回声报文,远端系统正常情况下会将这些控制报文环回回来。如果联系几个回合或者时间内都没有收到回声报文,判断检测端故障,告知本端联动应用执行相应策略动作。

    3、会话状态

    Down,Init;Up;AdminDown

    (1)Down

    启动本地BFD会话,初始状态为Down;发送状态为Down的BFD报文

    (2)Init

    收到邻居端状态为Down的BFD报文后对邻居状态为Init;发送状态为Init的BFD报文

    (3)Up

    收到邻居端状态为Init的BFD报文后对邻居状态为Up;本端对邻居的会话建立完毕

    (4)AdminDown

    ①故障发生被检测到后,最先感知到故障端会发送状态为AdminDown的BFD报文

    ②对端收到这个报文后会发状态为Down的BFD报文,同时关闭自己的的BFD会话,告知联动的上层应用执行动作

    ③源端收到对端状态为Down的BFD报文后,关闭本端的BFD会话告知联动的上层应用执行动作

    二、拓扑

    在这里插入图片描述

    三、基础配置

    1、GW上配置NAT及静态默认实现内网对公网114.114.114.114的访问

    PC-1 ping  114.114.114.114
    

    在这里插入图片描述
    2、在GW设备针对同一网段配置两组VRRP, 实现网关的冗余和网关设备的充分使用

    [GW-1]int g0/0/1
    [GW-1-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.254-----创建VRRP工作组,组编号为1,设置虚拟网关地址为192.168.1.4
    [GW-1-GigabitEthernet0/0/1]vrrp vrid 1 priority 120-----------------设置本VRRP工作组1在本路由器的优先级为120
    [GW-1-GigabitEthernet0/0/1]vrrp vrid 2 virtual-ip 192.168.1.253
    

    Dis vrrp b
    在这里插入图片描述
    Dis vrrp b
    在这里插入图片描述

    四、链路检测

    采用单臂回声BFD完成检测需求

    [GW-1]bfd ------------------------------------------------------------开启BFD会话
    [GW-1]bfd 123 bind peer-ip 13.1.1.1 interface g0/0/0 one-arm-echo-----创建名称为123的单臂回声BFD,检测目标为13.1.1.1
    [GW-1-bfd-session-123]discriminator local 100-------------------------配置此BFD会话的本端标识符为100
    [GW-1-bfd-session-123]min-echo-rx-interval 300--------配置BFD的回声(源和目的为同一个地址的BFD包)检测包收包间隔时间为300ms
    [GW-1-bfd-session-123]detect-multiplier 3-------------配置超时次数为3,连续3次超时判断本BFD会话关闭
    [GW-1-bfd-session-123]commit--------------------------提交本BFD的配置
    [GW-1]ip route-static 0.0.0.0 0.0.0.0 13.1.1.1 track bfd-session 123-----配置静态默认路由下一跳为13.1.1.1,此路由生效条件为名称为123的BFD会话up
    
    

    VRRP配合BFD链路检测实现主备网关的快速切换

    [GW-2]bfd aaa bind  peer-ip 192.168.1.1 interface g0/0/1---------------创建名称为aaa的BFD检测会话,检测与对端地址192.168.1.1的连通性,使用本地接口G0/0/1作为BFD报文的源第和源地址
    [GW-2-bfd-session-aaa]discriminator local 102--------------------------指定本BFD会话本端标识符为102(取值范围1--8191)
    [GW-2-bfd-session-aaa]discriminator remote 101-------------------------指定本BFD会话对端BFD的标识符为101(取值范围1--8191)
    [GW-2-bfd-session-aaa]min-rx-interval 300------------------------------设定本BFD会话接收BFD报文的间隔时间为300毫秒(默认1000毫秒,取值范围10---2000毫秒)
    [GW-2-bfd-session-aaa]min-tx-interval 300------------------------------设定本BFD会话发送BFD的间隔时间为300毫秒
    [GW-2-bfd-session-aaa]detect-multiplier 3------------------------------设定本BFD会话超时次数为3次
    [GW-2-bfd-session-aaa]commit ------------------------------------------下发/激活本BFD会话
    [GW-2-GigabitEthernet0/0/1]vrrp vrid 2 track interface g0/0/0 reduced 30--------VRRP工作组1通过Track承载池检测本地G0/0/0接口状态,本地接口故障或者状态down,触发惩罚动作为减少优先级30
    

    1、在GW-1配置相应形式的BFD检测来追踪外网线路,

    在这里插入图片描述

    检测结果与VRRP联动,当GW-1失去访问外网的能力后可以在1S内完成
    主备网关的切换,降低网络故障对内网通信的影响
    在GW-1的接口GE0/0/1上执行shutdown命令,模拟GW-1出现故障。
    在GW-2上执行display vrrp b命令查看VRRP状态信息,可以看到GW-2的状态是Master。

    在这里插入图片描述
    (2)断开hub1与ISP连接的线路测试

    [GW-1]int g0/0/1	
    [GW-1-GigabitEthernet0/0/1]vrrp vrid 1 track bfd-session 100 reduced 30-----BFD会话进程100与本VRRP编组实现联动,BFD会话down本设备在这个VRRP编组的优先级减少30
    

    ping 114.114.114.114 -t
    在这里插入图片描述

    2、在GW-2配置ICMP类型的NQA检测来追踪外网线路

    Dis this
    在这里插入图片描述
    GW-2抓包g0/0/0
    在这里插入图片描述
    检测结果与VRRP联动,当GW-2失去访问外网的能力后可以在1S内完成
    主备网关的切换,降低网络故障对内网通信的影响

    (2)断开hub2与ISP连接的线路测试
    在这里插入图片描述
    3、在GW-1与GW-2的内网线路之间配置BFD检测
    在这里插入图片描述
    在GW-2的接口GE0/0/1上执行shutdown命令,模拟GW-2出现故障。
    在GW-1上执行display vrrp b命令查看VRRP状态信息,可以看到GW-2的状态是Master。

    在这里插入图片描述
    检测结果与VRRP联动,当GW-1或者GW-2故障后可以在1S内完成
    主备网关的切换,降低网络故障对内网通信的影响

    (3)断开GW与SW连接的线路测试
    在这里插入图片描述

    五、BFD双向转发检测

    1、BFD

    Bidirectional Forwarding Detection

    (1)BFD目的

    双向转发检测机制是一套全网统一的检测机制,用于快速检测,监控网络中链路或者IP路由的转发连通状况。

    (2)BFD作用

    改善网络性能,是相邻系统之间快速检测到通信故障,更快的建立起备用通道恢复通信。

    2、BFD特点

    (1)BFD能够在系统之间的任何类型通道上进行故障检测,这些通道包括(直连物理链路;虚电路;隧道;MPLS LSP ;多跳路由通道)

    (2)BFD通过在双向链路两端同时发送检测报文,检测两个方向上的链路状态,实现毫秒级别的链路故障检测。

    (3)BFD可以实现单跳(直连两路IP连通性)或者多跳(非直连,在IP需要跨多跳)检测。

    3、BFD与应用联动

    (1)支持所有路由协议的动态BFD联动(RIP;OSPF;IS-IS;BGP;)实现链路故障时路由的快速收敛

    (2)支持静态路由;MPLS LDP;组播等协议于BFD的联动

    (3)支持与VRRP;接口状态的BFD联动

    4、静态BFD会话的特殊形式

    单臂回声BFD

    (1)单臂回声BFD简介

    单臂回声功能是指通过BFD报文的环回操作来检测转发链路的联通性,主要针对对端系统不支持BFD会话的情景。

    (2)单臂回声特殊性

    单臂回声功能只适用于BFD单跳检测,且不支持二层设备间的链路检测;即只能做直节连接链路的检测。

    (3)单臂回声BFD原理

    源端发起的BFD控制报文目的端收到后直接将网络层的报文环回。

    在这里插入图片描述

    本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。

    展开全文
  • BFD各种配置.zip

    2021-03-11 21:53:02
    配置BFD多跳检测示例、配置BFD状态与接口状态联动示例、配置VLANIF接口BFD单跳检测示例、配置单臂回声功能示例
  • RIP和BFD联动实验.rar

    2021-01-15 16:35:46
    RIP和BFD联动实验
  • FileZilla BFD-开源

    2021-04-22 15:01:14
    FZBFD是Filezilla ftp服务器的暴力检测。 fzbfd.pl查看来自filezilla的日志,并将自动禁止或阻止ips访问您的FTP服务器。 可以使用任务管理器将FZBFD设置为每小时运行一次,并使用dshield.org的主要违规者...
  • 目前网络中慢Hello检测机制检测时间...BFD技术可以提供一种快速检测机制,保证了流量的最小流失。为了方便通信,提出了VLL的主备链路方式,利用BFD对VLL的主备链路进行故障检测,大大减少了链路检测时间和报文的丢失。
  • 在研究BFD 协议原理的基础上,根据通信IP 网运行中出现的问题,应用BFD 双向快速检测功能,实现了VRRP 的Master/Backup 状态毫秒级切换,并利用BFD 会话检测静态路由所在链路的状态,实现一跳和多跳的静态路由自动...
  • BFD

    2019-01-10 12:40:38
    BFD配置 [R2]bfd //启用BFD功能 [R2-bfd]quit [R2]bfd To-R1 bind peer-ip 202.1.1.1 interface g0/0/0 //创建BFD会话To-R1 [R2-bfd-session-To-R1]discriminator local 2 //配置本地...

    BFD配置

    [R2]bfd //启用BFD功能
    [R2-bfd]quit
    [R2]bfd To-R1 bind peer-ip 202.1.1.1 interface g0/0/0 //创建BFD会话To-R1
    [R2-bfd-session-To-R1]discriminator local 2 //配置本地标识符为2
    [R2-bfd-session-To-R1]discriminator remote 1 //配置远端标识符为2
    [R2-bfd-session-To-R1]commit //提交配置
    [R2-bfd-session-To-R1]quit

    [R1]bfd
    [R1-bfd]quit
    [R1]bfd To-R2 bind peer-ip 202.1.1.2 interface g0/0/0
    [R1-bfd-session-To-R2]discriminator local 1
    [R1-bfd-session-To-R2]discriminator remote 2
    [R1-bfd-session-To-R2]commit
    [R1-bfd-session-To-R2]quit

    查询BFD的会话信息
    #display bfd session all

    [R1]ip route-static 0.0.0.0 0.0.0.0 202.1.1.2 track bfd-session To-R2 //将静态路由与BFD会话进行关联

    总结
    1.BFD的作用:用于快速检测、监控网络中链路或者IP路由的转发连通状况
    2.BFD在现网的部署很常见,可以与多种路由协议和VRRP等联合使用

    BFD(Bidirectional forwarding detection):双向转发检测机制,用于快速检测,监控网络中链路或者ip路由的转发连通状况。
    经常搭配各种igp和bgp路由一起使用,达到快速收敛的作用。通过建立BFD会话,默认每隔一秒发送BFD检测报文,3倍的超时时间来
    对网络状况进行全方位的监控。
    在AR1上配置命令如下;
    bfd 全局模式下开启bfd
    ospf 1 router-id 1.1.1.1 进入ospf进程,将bfd与ospf联动在一起
    bfd all-interfaces enable 设置所有运行ospf的接口都开启bfd
    area 0.0.0.0 设置区域0
    network 0.0.0.0 255.255.255.255 将所有路由宣告进ospf中
    在AR3上配置命令如下:
    bfd 全局模式下开启bfd
    ospf 1 router-id 3.3.3.3 进入ospf进程,将bfd与ospf联动在一起
    bfd all-interfaces enable 设置所有运行ospf的接口都开启bfd
    area 0.0.0.0 设置区域0
    network 0.0.0.0 255.255.255.255 将所有路由宣告进ospf中
    此时通过display bfd session all 可以查看bfd会话情况,然后我们在SW1上手动shutdowne0/0/2接口,可以发现AR3与AR1上的邻居关系马上断开
    不用等到hello报文的超时时间才断开,因为这时候可以通过bfd的快速检测报文来通过ospf邻居关系已经断开。
    上面是动态的bfd联动igp路由协议,可以自动创建bfd会话,但是有时候也需要手动创建bfd会话,手动穿件bfd会话的配置命令如下:
    在AR2上进行的配置如下:
    ip route-static 0.0.0.0 0.0.0.0 10.1.24.4 添加一条静态路由
    bfd 123 bind peer-ip 10.1.24.4 source-ip 10.1.24.2(auto) 手动指定bfd会话的名字,对端ip,本端ip
    discriminator local 20 创建bfd本地会话标识符(如果是auto则不用手动创建标识符)
    discriminator remote 10 创建bfd远程会话标识符(如果是auto则不用手动创建标识符)
    commit 提交bfd配置(一定要)
    ip route-static 0.0.0.0 0.0.0.0 10.1.24.4 track bfd-session 123 使用bfd机制对静态路由进行跟踪
    然后,我们在SW2上手动shutdown e0/0/2接口,可以发现AR2上的静态路由立马消失了,一旦恢复e0/0/2接口,默认路由又出现了

    bfd还可以结合VRRP来进行主备链路的快速切换,达到网络的快速收敛。
    通过命令vrrp vrid 1 track bfd-session session-name 123 reduced 100 可以将vrrp与bfd会话进行联动,一旦bfd检测到链路故障则立马降低master
    优先级,通告给backup路由器。bfd不能同时和多个路由协议进行联动,只能搭配其中的一个协议,可以是静态路由或者ospf或者vrrp

    展开全文
  • HCIP-R&S详细笔记BFD部分
  • BFD技术白皮书 BFD技术白皮书 关键词BFD 摘 要BFD是用来实现快速故障检测的标准协议本文对BFD技术实现和典型组网应用进行 介绍 缩略语清单 字段 英文全名 中文解释 BFD Bidirectional Forwarding Detection 双向转发...
  • 本文主要给大家介绍的是如何解决TP-link路由器BFD无法执行的问题,相信很多用户都遇到过这样的故障,遇到这样的问题,我们应该注意观察其提示的信息,这样才能更加迅速的解决问题。
  • BFD算法基本语句.doc

    2020-06-03 00:32:30
    BFD算法基本语句.doc
  • OSPF与BFD联动

    2021-04-17 15:12:31
    OSPF与BFD联动就是将BFD和OSPF协议关联起来,将BFD对链路故障的快速感应通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。 目的 网络上的链路故障或拓扑变化都会导致设备重新进行路由计算,所以缩短路由...

    定义

    双向转发检测BFD(Bidirectional Forwarding Detection)是一种用于检测转发引擎之间通信故障的检测机制。

    BFD对两个系统间的、同一路径上的同一种数据协议的连通性进行检测,这条路径可以是物理链路或逻辑链路,包括隧道。

    OSPF与BFD联动就是将BFD和OSPF协议关联起来,将BFD对链路故障的快速感应通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。

    目的

    网络上的链路故障或拓扑变化都会导致设备重新进行路由计算,所以缩短路由协议的收敛时间对于提高网络的性能是非常重要的。

    由于链路故障是无法完全避免的,因此,加快故障感知速度并将故障快速通告给路由协议是一种可行的方案。BFD和OSPF相关联,一旦与邻居之间的链路出现故障,BFD的快速性能够加快OSPF的收敛速度。

    表1 有无OSPF与BFD联动功能对比

    有无BFD

    链路故障检测机制

    收敛速度

    无BFD

    OSPF Dead定时器超时(默认配置40s)

    秒级

    有BFD

    BFD会话状态为Down

    毫秒级

    原理

    图1 OSPF与BFD联动:

    OSPF与BFD联动的原理如图1所示:

    1. 三台设备间建立OSPF邻居关系。

    2. 邻居状态到达Full状态时通知BFD建立BFD会话。

    3. RouterA到RouterB的路由出接口为GE2/0/0,当这两台设备间的链路出现故障后,BFD首先感知到并通知RouterA。

    4. RouterA处理邻居Down事件,重新进行路由计算,新的路由出接口为GE1/0/0,经过RouterC到达RouterB。

    配置OSPF基本功能示例:

     

    组网需求

    如图1所示,所有的交换机都运行OSPF,并将整个自治系统划分为3个区域,其中SwitchA和SwitchB作为ABR来转发区域之间的路由。

    配置完成后,每台交换机都应学到自治系统内的到所有网段的路由。

    图1 配置OSPF基本功能组网图:

    配置思路

    采用如下的思路配置OSPF基本功能:

    1. 在各交换机上使能OSPF。

    2. 指定不同区域内的网段。

    操作步骤

    1. 配置各接口的IP地址(略)
    2. 配置OSPF基本功能

       

      # 配置SwitchA。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchA
      [*HUAWEI] commit
      [~SwitchA] router id 10.1.1.1
      [*SwitchA] ospf 1
      [*SwitchA-ospf-1] area 0
      [*SwitchA-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
      [*SwitchA-ospf-1-area-0.0.0.0] quit
      [*SwitchA-ospf-1] area 1
      [*SwitchA-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
      [*SwitchA-ospf-1-area-0.0.0.1] quit
      [*SwitchA-ospf-1] commit
      [~SwitchA-ospf-1] quit

      # 配置SwitchB。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchB
      [*HUAWEI] commit
      [~SwitchB] router id 10.2.2.2
      [*SwitchB] ospf 1
      [*SwitchB-ospf-1] area 0
      [*SwitchB-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
      [*SwitchB-ospf-1-area-0.0.0.0] quit
      [*SwitchB-ospf-1] area 2
      [*SwitchB-ospf-1-area-0.0.0.2] network 192.168.2.0 0.0.0.255
      [*SwitchB-ospf-1-area-0.0.0.2] quit
      [*SwitchB-ospf-1] commit
      [~SwitchB-ospf-1] quit

      # 配置SwitchC。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchC
      [*HUAWEI] commit
      [~SwitchC] router id 10.3.3.3
      [*SwitchC] ospf 1
      [*SwitchC-ospf-1] area 1
      [*SwitchC-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
      [*SwitchC-ospf-1-area-0.0.0.1] network 172.16.1.0 0.0.0.255
      [*SwitchC-ospf-1-area-0.0.0.1] commit
      [~SwitchC-ospf-1-area-0.0.0.1] quit
      [~SwitchC-ospf-1] quit

      # 配置SwitchD。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchD
      [*HUAWEI] commit
      [~SwitchD] router id 10.4.4.4
      [*SwitchD] ospf 1
      [*SwitchD-ospf-1] area 2
      [*SwitchD-ospf-1-area-0.0.0.2] network 192.168.2.0 0.0.0.255
      [*SwitchD-ospf-1-area-0.0.0.2] network 172.17.1.0 0.0.0.255
      [*SwitchD-ospf-1-area-0.0.0.2] commit
      [~SwitchD-ospf-1-area-0.0.0.2] quit
      [~SwitchD-ospf-1] quit

      # 配置SwitchE。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchE
      [*HUAWEI] commit
      [~SwitchE] router id 10.5.5.5
      [*SwitchE] ospf 1
      [*SwitchE-ospf-1] area 1
      [*SwitchE-ospf-1-area-0.0.0.1] network 172.16.1.0 0.0.0.255
      [*SwitchE-ospf-1-area-0.0.0.1] commit
      [~SwitchE-ospf-1-area-0.0.0.1] quit
      [~SwitchE-ospf-1] quit

      # 配置SwitchF。

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchF
      [*HUAWEI] commit
      [~SwitchF] router id 10.6.6.6
      [*SwitchF] ospf 1
      [*SwitchF-ospf-1] area 2
      [*SwitchF-ospf-1-area-0.0.0.2] network 172.17.1.0 0.0.0.255
      [*SwitchF-ospf-1-area-0.0.0.2] commit
      [~SwitchF-ospf-1-area-0.0.0.2] quit
      [~SwitchF-ospf-1] quit

       

    3. 验证配置结果

       

      # 查看SwitchA的OSPF邻居。

      [~SwitchA] display ospf peer
      OSPF Process 1 with Router ID 10.1.1.1
       Area 0.0.0.0 interface 192.168.0.1(Vlanif10)'s neighbors
        Router ID: 10.2.2.2           Address : 192.168.0.2
        State    : Full               Mode    : Nbr is Master      Priority: 1
        DR       : 192.168.0.2        BDR     : 192.168.0.1        MTU     : 0
        Dead timer due (in seconds) : 36
        Retrans timer interval      : 5
        Neighbor up time            : 02h29m06s
        Authentication Sequence     : 0
      
       Area 0.0.0.1 interface 192.168.1.1(Vlanif20)'s neighbors
        Router ID: 10.3.3.3           Address : 192.168.1.2
        State    : Full               Mode    : Nbr is Master      Priority: 1
        DR       : 192.168.1.2        BDR     : 192.168.1.1        MTU     : 0
        Dead timer due (in seconds) : 33
        Retrans timer interval      : 5
        Neighbor up time            : 02h28m52s
        Authentication Sequence     : 0

      # 显示SwitchA的OSPF路由信息。

      [~SwitchA] display ospf routing
      OSPF Process 1 with Router ID 10.1.1.1
      
       Routing for Network
       --------------------------------------------------------------------------------
       Destination        Cost       Type       NextHop         AdvRouter       Area
       172.16.1.0/24      2          Transit    192.168.1.2     10.3.3.3         0.0.0.1
      
       172.17.1.0/24      3          Inter-area 192.168.0.2     10.2.2.2         0.0.0.0
      
       192.168.0.0/24     1          Direct     192.168.0.1     10.1.1.1         0.0.0.0
      
       192.168.1.0/24     1          Direct     192.168.1.1     10.1.1.1         0.0.0.1
      
       192.168.2.0/24     2          Inter-area 192.168.0.2     10.2.2.2         0.0.0.0
      
       Total Nets: 5
       Intra Area: 3  Inter Area: 2  ASE: 0  NSSA: 0    

      # 显示SwitchA的LSDB。

      [~SwitchA] display ospf lsdb
      OSPF Process 1 with Router ID 10.1.1.1
      Link State Database
      
      Area: 0.0.0.0
      ----------------------------------------------------------------------------                                                        
       Type      LinkState ID    AdvRouter        Age  Len   Sequence       Metric
       Router    10.1.1.1        10.1.1.1           93  48   80000004            1
       Router    10.2.2.2        10.2.2.2           92  48   80000004            1
       Sum-Net   172.16.1.0      10.1.1.1         1287  28   80000002            2
       Sum-Net   192.168.1.0     10.1.1.1         1716  28   80000001            1
       Sum-Net   172.17.1.0      10.2.2.2         1336  28   80000001            2
       Sum-Net   192.168.2.0     10.2.2.2           87  28   80000002            1
      
      Area: 0.0.0.1
      ----------------------------------------------------------------------------                                                        
       Type      LinkState ID    AdvRouter        Age  Len   Sequence       Metric
       Router    10.1.1.1        10.1.1.1         1420  48   80000002            1
       Router    10.3.3.3        10.3.3.3         1294  60   80000003            1
       Router    10.5.5.5        10.5.5.5         1296  36   80000002            1
       Network   172.16.1.1      10.3.3.3         1294  32   80000001            0
       Sum-Net   172.17.1.0      10.1.1.1         1325  28   80000001            3
       Sum-Net   192.168.0.0     10.1.1.1         1717  28   80000001            1
       Sum-Net   192.168.2.0     10.1.1.1         1717  28   80000001            2
      

      # 查看SwitchD的路由表,并使用Ping进行测试连通性。

      [~SwitchD] display ospf routing
      OSPF Process 1 with Router ID 10.4.4.4
      
       Routing for Network
       --------------------------------------------------------------------------------
       Destination        Cost       Type       NextHop         AdvRouter       Area
       172.16.1.0/24      4          Inter-area 192.168.2.1     10.2.2.2         0.0.0.2
      
       172.17.1.0/24      1          Direct     172.17.1.1      10.4.4.4         0.0.0.2
      
       192.168.0.0/24     2          Inter-area 192.168.2.1     10.2.2.2         0.0.0.2
      
       192.168.1.0/24     3          Inter-area 192.168.2.1     10.2.2.2         0.0.0.2
      
       192.168.2.0/24     1          Direct     192.168.2.2     10.4.4.4         0.0.0.2
      
       Total Nets: 5
       Intra Area: 2  Inter Area: 3  ASE: 0  NSSA: 0
      [~SwitchD] ping 172.16.1.1
        PING 172.16.1.1: 56  data bytes, press CTRL_C to break
          Reply from 172.16.1.1: bytes=56 Sequence=1 ttl=253 time=62 ms
          Reply from 172.16.1.1: bytes=56 Sequence=2 ttl=253 time=16 ms
          Reply from 172.16.1.1: bytes=56 Sequence=3 ttl=253 time=62 ms
          Reply from 172.16.1.1: bytes=56 Sequence=4 ttl=253 time=94 ms
          Reply from 172.16.1.1: bytes=56 Sequence=5 ttl=253 time=63 ms
       
        --- 172.16.1.1 ping statistics ---
          5 packet(s) transmitted
          5 packet(s) received
          0.00% packet loss
          round-trip min/avg/max = 16/59/94 ms

       

    配置文件

    • SwitchA的配置文件

      #
       sysname SwitchA
      #
       vlan batch 10 20
      #
       router id 10.1.1.1
      #
      interface Vlanif10
       ip address 192.168.0.1 255.255.255.0 
      #
      interface Vlanif20
       ip address 192.168.1.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 10 
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 20 
      #
      ospf 1
       area 0.0.0.0
        network 192.168.0.0 0.0.0.255
       area 0.0.0.1
        network 192.168.1.0 0.0.0.255
      #
      return
    • SwitchB的配置文件

      #
       sysname SwitchB
      #
       vlan batch 10 30
      #
       router id 10.2.2.2
      #
      interface Vlanif10
       ip address 192.168.0.2 255.255.255.0
      #
      interface Vlanif30
       ip address 192.168.2.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 10 
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 30 
      #
      ospf 1
       area 0.0.0.0
        network 192.168.0.0 0.0.0.255
       area 0.0.0.2
        network 192.168.2.0 0.0.0.255
      #
      return
    • SwitchC的配置文件

      #
       sysname SwitchC
      #
       vlan batch 20 40
      #
       router id 10.3.3.3
      #
      interface Vlanif20
       ip address 192.168.1.2 255.255.255.0
      #
      interface Vlanif40
       ip address 172.16.1.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 20 
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 40 
      #
      ospf 1
       area 0.0.0.1
        network 192.168.1.0 0.0.0.255
        network 172.16.1.0 0.0.0.255
      #
      return
    • SwitchD的配置文件

      #
       sysname SwitchD
      #
       vlan batch 30 50
      #
       router id 10.4.4.4
      #
      interface Vlanif30
       ip address 192.168.2.2 255.255.255.0
      #
      interface Vlanif50
       ip address 172.17.1.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 30 
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 50 
      #
      ospf 1
       area 0.0.0.2
        network 192.168.2.0 0.0.0.255
        network 172.17.1.0 0.0.0.255
      #
      return
    • SwitchE的配置文件

      #
       sysname SwitchE
      #
       vlan batch 40
      #
       router id 10.5.5.5
      #
      interface Vlanif40
       ip address 172.16.1.2 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 40 
      #
      ospf 1
       area 0.0.0.1
        network 172.16.1.0 0.0.0.255
      #
      return
    • SwitchF的配置文件

      #
       sysname SwitchF
      #
       vlan batch 50
      #
       router id 10.6.6.6
      #
      interface Vlanif50
       ip address 172.17.1.2 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 50 
      #
      ospf 1
       area 0.0.0.2
        network 172.17.1.0 0.0.0.255
      #
      return

     

     

    配置OSPF与BFD联动示例:

    组网需求

    如图1所示。

    • SwitchA、SwitchB、SwitchC之间运行OSPF。

    • 使能SwitchA、SwitchB、SwitchC的OSPF进程BFD特性。

    • 业务流量在主链路SwitchA→SwitchB传送,链路SwitchA→SwitchC→SwitchB为备份链路。

    • 在SwitchA和SwitchB之间的链路上创建接口的BFD特性,当SwitchA和SwitchB之间的链路出现故障时,BFD能够快速检测到故障并通告给OSPF协议,使业务流量使用备份链路传送。

    图1 配置OSPF与BFD联动特性组网图:

    配置思路

    采用如下思路配置OSPF与BFD联动特性:

    1. 在各Switch设备上使能OSPF基本功能

    2. 使能全局BFD特性

    3. 在SwitchA、SwitchB上使能OSPF BFD检测机制

    操作步骤

    1. 配置各接口所属VLAN

       

      <HUAWEI> system-view
      [~HUAWEI] sysname SwitchA
      [*HUAWEI] commit
      [~SwitchA] vlan 10
      [*SwitchA-vlan10] quit
      [*SwitchA] vlan 20
      [*SwitchA-vlan20] quit
      [*SwitchA] interface 10ge 1/0/1
      [*SwitchA-10GE1/0/1] port link-type trunk
      [*SwitchA-10GE1/0/1] port trunk allow-pass vlan 10
      [*SwitchA-10GE1/0/1] quit
      [*SwitchA] interface 10ge 1/0/2
      [*SwitchA-10GE1/0/2] port link-type trunk
      [*SwitchA-10GE1/0/2] port trunk allow-pass vlan 20
      [*SwitchA-10GE1/0/2] quit
      [*SwitchA] commit

      SwitchB、SwitchC的配置同SwitchA(略)

       

    2. 配置各VLANIF接口的IP地址

       

      [~SwitchA] interface vlanif 10
      [*SwitchA-Vlanif10] ip address 10.1.1.1 24
      [*SwitchA-Vlanif10] quit
      [*SwitchA] interface vlanif 20
      [*SwitchA-Vlanif20] ip address 10.3.3.1 24
      [*SwitchA-Vlanif20] quit
      [*SwitchA] commit

      SwitchB、SwitchC的配置同SwitchA(略)

       

    3. 配置OSPF的基本功能(请参见举例配置OSPF基本功能示例)
    4. 配置OSPF BFD

       

      # 在SwitchA使能全局BFD特性。

      [~SwitchA] bfd
      [*SwitchA-bfd] quit
      [*SwitchA] ospf
      [*SwitchA-ospf-1] bfd all-interfaces enable
      [*SwitchA-ospf-1] quit
      [*SwitchA] commit

      # 在SwitchB使能全局BFD特性。

      [~SwitchB] bfd
      [*SwitchB-bfd] quit
      [*SwitchB] ospf
      [*SwitchB-ospf-1] bfd all-interfaces enable
      [*SwitchB-ospf-1] quit
      [*SwitchB] commit

      # 在SwitchC使能全局BFD特性。

      [~SwitchC] bfd
      [*SwitchC-bfd] quit
      [*SwitchC] ospf
      [*SwitchC-ospf-1] bfd all-interfaces enable
      [*SwitchC-ospf-1] quit
      [*SwitchC] commit

      # 配置完成后,在SwitchA和SwitchB上执行display ospf bfd session all命令,可以看到BFDState的状态为Up。

      以SwitchA显示为例。

      [~SwitchA] display ospf bfd session all
                OSPF Process 1 with Router ID 10.10.10.1
        Area 0.0.0.0 interface  10.3.3.1(Vlanif20)'s BFD Sessions
                                                                                      
       NeighborId:10.10.10.2        AreaId:0.0.0.0           Interface:Vlanif20                                                 
       BFDState:Up                  rx    :1000              tx       :1000                                                      
       Multiplier:3                 BFD Local Dis:16385      LocalIpAdd:10.3.3.1                                                 
       RemoteIpAdd:10.3.3.2         Diagnostic Info:No diagnostic information
                                                                                      
        Area 0.0.0.0 interface 10.1.1.1(Vlanif10)'s BFD Sessions
                                                                                     
       NeighborId:10.10.10.3        AreaId:0.0.0.0           Interface:Vlanif10                                                 
       BFDState:Up                  rx    :1000              tx       :1000                                                      
       Multiplier:3                 BFD Local Dis:16385      LocalIpAdd:10.1.1.1                                                 
       RemoteIpAdd:10.1.1.2         Diagnostic Info:No diagnostic information
                                   
                                                                                      
          Total UP/DOWN/UNKNOWN BFD Session Number : 2 / 0 / 0
      

       

    5. 配置接口的BFD特性

       

      # 在SwitchA接口VLANIF20上配置BFD特性,并指定最小发送和接收间隔为300ms,本地检测时间倍数为5。

      [~SwitchA] interface vlanif 20
      [*SwitchA-Vlanif20] ospf bfd enable
      [*SwitchA-Vlanif20] ospf bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
      [*SwitchA-Vlanif20] quit
      [*SwitchA] commit

      # 在SwitchB的VLANIF20接口上配置BFD特性,并指定最小发送和接收间隔为300ms,本地检测时间倍数为5。

      [*SwitchB] interface vlanif 20
      [*SwitchB-Vlanif20] ospf bfd enable
      [*SwitchB-Vlanif20] ospf bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
      [*SwitchB-Vlanif20] quit
      [*SwitchB] commit

      # 配置完成后,在SwitchA和SwitchB上执行display ospf bfd session all命令,可以看到最小发送和接收间隔被修改为300ms,本地检测时间倍数被修改为5。

      以SwitchB显示为例。

      [~SwitchB] display ospf bfd session all
      
                OSPF Process 1 with Router ID 10.10.10.2
        Area 0.0.0.0 interface 10.3.3.2(Vlanif20)'s BFD Sessions
                                                                                      
       NeighborId:10.10.10.1        AreaId:0.0.0.0           Interface:Vlanif20                                                 
       BFDState:Up                  rx    :300               tx       :300                                                     
       Multiplier:5                 BFD Local Dis:16385      LocalIpAdd:10.3.3.2                                                 
       RemoteIpAdd:10.3.3.1         Diagnostic Info:No diagnostic information
      
                                                                                      
        Area 0.0.0.0 interface 10.2.2.2(Vlanif30)'s BFD Sessions
                                                                                      
       NeighborId:10.10.10.3        AreaId:0.0.0.0           Interface:Vlanif30                                                 
       BFDState:Up                  rx    :300               tx       :300                                                      
       Multiplier:5                 BFD Local Dis:16385      LocalIpAdd:10.2.2.2                                                 
       RemoteIpAdd:10.2.2.1         Diagnostic Info:No diagnostic information
                                                                                      
          Total UP/DOWN/UNKNOWN BFD Session Number : 2 / 0 / 0
      

       

    6. 验证配置结果

       

      # 对SwitchB的VLANIF20接口执行shutdown命令,模拟主链路故障。

      [~SwitchB] interface vlanif 20
      [~SwitchB-Vlanif20] shutdown
      [*SwitchB-Vlanif20] commit

      # 在SwitchA,查看路由表。

      [~SwitchA] display ospf routing
      
      OSPF Process 1 with Router ID 10.10.10.1
      
       Routing for Network
       Destination        Cost  Type       NextHop         AdvRouter       Area
       172.16.1.0/24      3     Stub       10.1.1.2         10.10.10.2         0.0.0.0
       10.3.3.0/24        1     Stub       10.3.3.1         10.10.10.1         0.0.0.0
       10.2.2.0/24        2     Transit    10.1.1.2         10.10.10.3         0.0.0.0
       10.1.1.0/24        1     Transit    10.1.1.1         10.10.10.1         0.0.0.0
      
       Total Nets: 4
       Intra Area: 4  Inter Area: 0  ASE: 0  NSSA: 0

      从OSPF路由表可以看出,在主链路失效后,备份链路SwitchA→SwitchC→SwitchB生效,去往172.16.1.0/24的路由下一跳地址为10.1.1.2。

       

    配置文件

    • SwitchA的配置文件

      #
       sysname SwitchA
      #
       vlan batch 10 20
      #
       router id 10.10.10.1
      #
       bfd
      #
      interface Vlanif10
       ip address 10.1.1.1 255.255.255.0
      #
      interface Vlanif20
       ip address 10.3.3.1 255.255.255.0
       ospf bfd enable
       ospf bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 10
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 20
      #
      ospf 1
       bfd all-interface enable
       area 0.0.0.0
        network 10.3.3.0 0.0.0.255
        network 10.1.1.0 0.0.0.255
      #
      return
    • SwitchB的配置文件

      #
       sysname SwitchB
      #
       vlan batch 20 30 40
      #
       router id 10.10.10.2
      #
       bfd
      #
      interface Vlanif20
       ip address 10.3.3.2 255.255.255.0
       ospf bfd enable
       ospf bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
      #
      interface Vlanif30
       ip address 10.2.2.2 255.255.255.0
      #
      interface Vlanif40
       ip address 172.16.1.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 30
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 20
      #
      interface 10GE1/0/3
       port link-type trunk
       port trunk allow-pass vlan 40
      #
      ospf 1
       bfd all-interface enable
       area 0.0.0.0
        network 10.3.3.0 0.0.0.255
        network 10.2.2.0 0.0.0.255
        network 172.16.1.0 0.0.0.255
      #
      return
    • SwitchC的配置文件

      #
       sysname SwitchC
      #
       vlan batch 10 30
      #
       router id 10.10.10.3
      #
       bfd
      #
      interface Vlanif10
       ip address 10.1.1.2 255.255.255.0
      #
      interface Vlanif30
       ip address 10.2.2.1 255.255.255.0
      #
      interface 10GE1/0/1
       port link-type trunk
       port trunk allow-pass vlan 10
      #
      interface 10GE1/0/2
       port link-type trunk
       port trunk allow-pass vlan 30
      #
      ospf 1
       bfd all-interface enable
       area 0.0.0.0
        network 10.1.1.0 0.0.0.255
        network 10.2.2.0 0.0.0.255
      #
      return

     

    展开全文
  • BFD详解

    2021-09-06 21:45:49
    今天给大家介绍BFD的相关内容。本文主要从BFD的北京、原理实现和标识符角度来对BFD的相关内容进行详细的介绍。 一、BFD背景 随着网络应用的广泛部署,网络发生中断后可能对企业业务造成重大影响和相当的损失。为了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,630
精华内容 9,452
关键字:

bfd