在我前段时间实施的一个项目中,客户的服务器是放在移动机房的,在办公区域和服务器区域之间租用一条移动100M专线和一条电信10M专线来进行通讯。要使两条线路实现负载均衡的功能,不能简单的作静态路由来实现,由于运营商的线路断了,在本身的交换端口上是没法感知到DOWN的(运营商使用了光收接入)。因而我询问了相关技术人员得知是能够使用BFD技术来感知链路状态的,它和静态路由关联就能够实现客户要求的负载均衡功能。我使用实验拓扑来和你们作个说明,实验拓扑图以下:服务器
拓扑图说明:网络
1、CE1为移动机房服务器核心交换机S7703,AR1为办公区域出口路由器session
2、中间模拟运营商网络,上面为电信,下面为移动。SW3办公服务区接入交换机。负载均衡
3、vlan40 172.16.4.0/24办公服务网段, vlan50 10.10.10.0/24服务器网段ide
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/24spa
6、中间的运营商网络专线不作任何配置,模拟专线线路裸纤,4台交换机模拟光纤收发器。blog
7、设置静态路由使vlan40和vlan50可以互通,双链路负载均衡.接口
8、使用BFD链路状态联动来检测运营商线路通断。ip
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的地址是能够通讯的,以下图:
而后咱们断开移动的线路,以下图:
再从PC1 ping PC2的地址,中间断了两个包后也是能够通讯的,以下图:
再来查看相关BFD信息,发现移动的BFD已经断开,以下图:
查看相关路由信息,发现只有电信的静态路由,以下图:
再连回线路后,咱们再查看相关的BFD和路由信息,又恢复正常,以下图:
作到这一步就彻底能够实现客户要求的双线路负载均衡的功能了,是否是也很简单。