利用BFD与浮动路由联动实现链路自动切换

  • Post author:
  • Post category:其他


收益

  1. 深刻了解BFD带来的效果;

  2. 了解、掌握BFD配置、BFD如何联动静态路由

拓扑图

(若看不清,点击图片,放大查看)

需求

  1. 测试浮动路由未联动BFD和联动BFD区别;

  2. 掌握BFD配置方法、联动静态路由方法。

配置思路

  1. 搭建好拓扑环境,标出规划好的IP地址。

  2. 修改网络设备默认名称、配置好IP地址。

  3. 配置路由。(这里我使用静态路由即可)

  4. 测试未配置BFD时候,链路中断,丢包情况。

  5. 配置BFD,联动静态路由。

  6. 测试配置BFD时候,链路中断,丢包情况。

配置过程

  1. 搭建好拓扑图环境,标出规划好的IP地址。

    此步骤省略,见拓扑图。

  2. 修改网络配置默认名称、配置好IP地址。

    PC1配置

    PC2配置

    R1配置

    sysname R1 
    interface Ethernet0/0/0 
    ip address 1.1.1.254 255.255.255.0 
    interface Ethernet0/0/1 
    ip address 10.1.12.1 255.255.255.0 
    interface GigabitEthernet0/0/0 
    ip address 10.1.13.1 255.255.255.0
  3. R2配置

    sysname R2
    interface Ethernet0/0/0
     ip address 10.1.12.2 255.255.255.0
    interface Ethernet0/0/1
     ip address 10.1.23.2 255.255.255.0

    R3配置

    sysname R3
    interface Ethernet0/0/0
     ip address 3.3.3.254 255.255.255.0
    interface Ethernet0/0/1
     ip address 10.1.23.3 255.255.255.0

配置路由


配置静态路由后面添加“preference”参数,表示修改静态路由的优先级,数值越小越优先,相同路由的情况,数值小的优先出现在路由表。

R1配置

ip route-static 3.3.3.0 255.255.255.0 10.1.12.2 
ip route-static 3.3.3.0 255.255.255.0 10.1.13.3 preference 70
ip route-static 10.1.23.0 255.255.255.0 10.1.12.2

R2配置

ip route-static 1.1.1.0 255.255.255.0 10.1.12.1
ip route-static 3.3.3.0 255.255.255.0 10.1.23.3

R3配置

ip route-static 1.1.1.0 255.255.255.0 10.1.23.2 
ip route-static 1.1.1.0 255.255.255.0 10.1.13.1 preference 70
ip route-static 10.1.12.0 255.255.255.0 10.1.23.2

测试未配置BFD时候,链路中断,丢包情况。

链路中断前,我们先来测试一下,正常情况。

PC1访问服务器的连通性以及路径。可以看到连通性没有问题。

数据传输路径为:

PC1–>R1–>R2–>R3–PC2

至于为啥数据会这么走,看看R1的路由表就知道啦。

R1去往3.3.3.0网段的下一跳是10.1.12.2,所以数据会这么走。


现在我们模拟链路中断,不管是R1与R2之间的链路,还是R2与R3之间的链路,都会有问题,总有一段设备的静态路由无法检测中间跨设备的链路情况。

这里以R1与R2之间的链路来分析吧。

中断前,我先在PC1 开个长ping,然后在R1的G0/0/0接口下shutdown。

R2的e0/0/0接口shutdown模拟链路中断

看看丢包情况,你会发现PC1一直丢包无法恢复:

这个时候你会想,我们不是在R1已经配置了浮动路由了吗?而且也配置了优先级。他是没有使用吗?还是你太水了没有配置好。

我们先来看看R1的路由表吧,不通就先看看路由表~

去3.3.3.0网段的路由下一条也切换到R3了。咋就还不通呢?

该怎么办呢? 咦,还有一个工具非常好用,那就是

tracert

,看看在哪里丢包,不就知道了嘛。

由此,可以发现,R1的G0/0/0没有回包给R3。

我们去R3看看路由表就知道了:

原来是R3路由表上的默认路由,下一跳还是走R2,因为R3根本不知道R1和R2之间的链路中断了,所以浮动路由就没有切换了

所以,我们需要BFD来检测链路,一旦检测中途链路不通了,就判定为链路中断了,做了联动,浮动路由就能快速切换了。


配置BFD,联动静态路由

R1的配置

[R1]bfd #全局开启BFD
[R1-bfd]quit 
[R1]bfd 1to3 bind peer-ip 10.1.23.3 source-ip 10.1.12.1 auto 
[R1]commit
#BFD联动静态路由
ip route-static 3.3.3.0 255.255.255.0 10.1.12.2 track bfd-session 1to3
Info: Succeeded in modifying route.

R3的配置

[R3]bfd #全局开启BFD
[R3-bfd]quit 
[R3]bfd 3to1 bind peer-ip 10.1.12.1 source-ip 10.1.23.3 auto
[R3]commit
#BFD联动静态路由
[R3]ip route-static 1.1.1.0 24 10.1.23.2 track bfd-session 3to1
Info: Succeeded in modifying route.

测试配置BFD时候,链路中断,丢包情况。

可以发现BFD检测是如此快,很快就切换到备用路由。

如果您有更好的见解、想法,欢迎评论。

一起讨论,我们一起成长。



版权声明:本文为m0_48949375原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。