在我前段时间实施的一个项目中,客户的服务器是放在移动机房的,在办公区域和服务器区域之间租用一条移动100M专线和一条电信10M专线来进行通信。要使两条线路实现负载均衡的功能,不能简单的做静态路由来实现,因为运营商的线路断了,在自己的交换端口上是无法感知到DOWN的(运营商使用了光收接入)。于是我询问了相关技术人员得知是可以使用BFD技术来感知链路状态的,它和静态路由关联就可以实现客户要求的负载均衡功能。我使用实验拓扑来和大家做个说明,实验拓扑图如下:

怎样把两条运营商的专线做成负载均衡——BFD技术_第1张图片

    

   拓扑图说明:

1、CE1为移动机房服务器核心交换机S7703,AR1为办公区域出口路由器

2、中间模拟运营商网络,上面为电信,下面为移动。SW3办公服务区接入交换机。

3、vlan40 172.16.4.0/24办公服务网段, vlan50 10.10.10.0/24服务器网段

4、PC1 10.10.10.2/24  PC2 172.16.4.2/24

5、CE1:1口 192.168.1.4/24  2口 172.16.1.4/24, AR1:2口 192.168.1.1/24  1口 172.16.1.1/24

6、中间的运营商网络专线不做任何配置,模拟专线线路裸纤,4台交换机模拟光纤收发器。

7、设置静态路由使vlan40和vlan50能够互通,双链路负载均衡.

8、使用BFD链路状态联动来检测运营商线路通断。

   CE1的配置如下(只做关键配置介绍):

sysname ce1

#

vlan batch 10 20 30 40 50   //划分的vlan

#

bfd              //开启bfd

#

interface Vlanif50

 ip address 10.10.10.1 255.255.255.0        //设置ip地址,模拟服务器网关

#

interface MEth0/0/0

 undo shutdown

#

interface GE1/0/0

 undo shutdown

 port default vlan 50       //把GE1/0/0端口划到vlan50下,和PC1通信

#

interface GE1/0/1

 undo portswitch

 undo shutdown

 ip address 192.168.1.4 255.255.255.0    //直接启用三层口,写上IP地址,和对面AR1通信,电信网络

#

interface GE1/0/2

 undo portswitch

 undo shutdown

 ip address 172.16.1.4 255.255.255.0    //直接启用三层口,写上IP地址,和对面AR1通信,移动网络

#

bfd 1 bind peer-ip 172.16.1.1          //配置bfd名称,检测对面链路IP地址,移动线路

 discriminator local 20               //设置本地识别号

 discriminator remote 10             //设置远端识别号

#

bfd 2 bind peer-ip 192.168.1.1       //配置bfd名称,检测对面链路IP地址,电信线路

 discriminator local 40             //设置本地识别号

 discriminator remote 30            //设置远端识别号

#

ip route-static 172.16.4.0 255.255.255.0 172.16.1.1 track bfd-session 1      //配置静态路由和BFD绑定,移动线路

ip route-static 172.16.4.0 255.255.255.0 192.168.1.1 track bfd-session 2     //配置静态路由和BFD绑定,电信线路

#

return

 

  AR1的配置如下(只做关键配置介绍):

#

 sysname r1

#

bfd         //开启bfd

#

interface GigabitEthernet0/0/0

 ip address 172.16.3.1 255.255.255.0          //设置端口IP,和下面办公交换机相连

#

interface GigabitEthernet0/0/1

 ip address 172.16.1.1 255.255.255.0         //设置端口IP,和对面CEI通信,移动线路

#

interface GigabitEthernet0/0/2

 ip address 192.168.1.1 255.255.255.0       //设置端口IP,和对面CEI通信,电信线路

#

interface NULL0

#

bfd 1 bind peer-ip 172.16.1.4              //配置bfd名称,检测对面链路IP地址,移动线路

 discriminator local 10                   //设置本地识别号

 discriminator remote 20                  //设置远端识别号

 commit

#

bfd 2 bind peer-ip 192.168.1.4           //配置bfd名称,检测对面链路IP地址,电信线路

 discriminator local 30                  //设置本地识别号

 discriminator remote 40                 //设置远端识别号

 commit

#

ip route-static 0.0.0.0 0.0.0.0 172.16.1.4 track bfd-session 1           //配置静态路由和BFD绑定,移动线路

ip route-static 0.0.0.0 0.0.0.0 192.168.1.4 track bfd-session 2          //配置静态路由和BFD绑定,电信线路

ip route-static 172.16.4.0 255.255.255.0 172.16.3.2                      //配置静态路由到办公区域

#

return

   SW3的配置如下(只做关键配置介绍):

#

sysname sw3

#

vlan batch 30 40       //配置相关vlan

#

interface Vlanif1

#

interface Vlanif30

 ip address 172.16.3.2 255.255.255.0     //配置到路由器接口的IP

#

interface Vlanif40

 ip address 172.16.4.1 255.255.255.0    //配置办公区域的网关IP

#

interface MEth0/0/1

#

interface Ethernet0/0/1

 port link-type access

 port default vlan 30             //把相应到路由端口划分到对应的vlan

#

interface Ethernet0/0/2

 port link-type access

 port default vlan 40            //把相应到办公区域端口划分到对应的vlan

#

interface Ethernet0/0/3

#

ip route-static 0.0.0.0 0.0.0.0 172.16.3.1      //配置到路由器AR1的路由

#

user-interface con 0

user-interface vty 0 4

#

return

  把PC1和PC2的相应IP地址按规划设置好后,我们就可以做测试了,首先我们从PC1 ping PC2的地址是可以通信的,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第2张图片

   然后我们断开移动的线路,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第3张图片

   再从PC1 ping PC2的地址,中间断了两个包后也是可以通信的,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第4张图片

   再来查看相关BFD信息,发现移动的BFD已经断开,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第5张图片

   查看相关路由信息,发现只有电信的静态路由,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第6张图片

   再连回线路后,我们再查看相关的BFD和路由信息,又恢复正常,如下图:

怎样把两条运营商的专线做成负载均衡——BFD技术_第7张图片

怎样把两条运营商的专线做成负载均衡——BFD技术_第8张图片

    做到这一步就完全可以实现客户要求的双线路负载均衡的功能了,是不是也很简单。