在我前段時間實施的一個項目中,客戶的服務器是放在移動機房的,在辦公區域和服務器區域之間租用一條移動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和路由信息,又恢復正常,以下圖:
作到這一步就徹底能夠實現客戶要求的雙線路負載均衡的功能了,是否是也很簡單。