發布時間:2021-05-08


作者:田小楊
在多設備、多出口線路的網絡出口場景中,為充分利用出口設備資源和出口線路資源實現網絡出口的冗余備份,一般兩臺出口設備通過部署VRRP協議實現冗余。VRRP協議決定了VRRP的虛擬IP地址和接口IP地址需要相同網段,所以出口設備的內網口和外網口需要各至少規劃三個IP地址。但在實際場景中,內網口因為使用私網地址規劃三個地址比較容易,但很多出口運營商只能提供一個公網IP地址或只能提供撥號線路無法提供公網IP地址,且能提供多個公網IP地址的運營商一般會另收費增加成本,所以實際情況下出口設備外網口很難部署三個公網IP地址。
針對這個痛點,傳統有兩個解決方案。方案一:兩臺出口設備內網口部署VRRP,多條出口線路分別部署在兩臺出口設備上;方案二:兩臺出口設備獨立部署與內網設備運行動態路由協議,多條出口線路分別部署在兩臺出口設備上。這兩種方案雖然保證了出口設備資源,但浪費了出口線路資源,都無法充分利用出口設備與線路資源。
那么,針對這種場景有沒有一種方案,既可保證出口設備資源又可保證出口線路資源呢?本文就著重講解通過線路質量檢測與VRRP功能聯動,強強聯合,在任何出口運營商場景下實現網絡出口冗余,既保證設備資源又保證線路資源。
小提示:本文以銳捷網關(EG)設備為例給大家講解,如讀者使用其他設備,歡迎聯系銳捷網絡工程師或在銳捷網絡官網查詢。

傳統的網絡出口冗余方案
功能組件介紹
線路質量檢測
線路質量檢測(LINE-QUALITY)功能主要用于監控線路質量,探測線路好壞,當探測到異常后,對異常線路進行關閉或執行預定義好的配置。線路質量檢測功能主要是通過RNS 功能和TRACK功能來進行探測,當RNS探測到線路不通,由TRACK通告線路質量檢測,線路質量檢測根據定義好的規則對異常線路進行關閉或執行預定義好的配置。
VRRP
VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協議)是一種路由容錯協議。VRRP設計采用主備模式,以保證當主出口設備發生故障時,備出口設備可以在不影響內外數據通信的前提下進行功能切換,從而實現IP路由的熱備份與容錯,同時也保證了局域網內主機通訊的連續性和可靠性。
兩臺出口設備內網口部署VRRP,外網口不再部署VRRP,通過內網VRRP與線路質量檢測功能聯動,實現主備兩臺出口設備外網口IP地址/撥號配置自動配置與刪除,保證同一時刻只有一臺出口設備外網口保持公網IP地址/撥號配置。
此外需要讀者注意的是,建議將兩臺出口設備的外網口的MAC地址修改成相同。在發生切換時,外網線路會切換到另一臺出口設備上使用,另一臺出口設備轉發的報文可能需要等待運營商設備老化原ARP信息后才能被轉發,因此建議將兩臺出口設備的外網口的MAC地址修改成相同,實現發生切換后另一臺出口設備轉發的報文可以快速被轉發。

|
|
主出口設備 |
備出口設備 |
|
內網口VRRP配置 |
interface GigabitEthernet 0/2 ip address 192.168.64.2 255.255.255.0 vrrp 10 ip 192.168.64.1 vrrp 10 priority 120 vrrp 10 timers advertise csec 50 multiplier 6 vrrp 10 track GigabitEthernet 0/6 link 15 vrrp 10 track GigabitEthernet 0/7 link 15 ip nat inside |
interface GigabitEthernet 0/2 ip address 192.168.64.3 255.255.255.0 vrrp 10 ip 192.168.64.1 vrrp 10 priority 100 vrrp 10 timers advertise csec 50 multiplier 6 vrrp 10 track GigabitEthernet 0/6 link 15 vrrp 10 track GigabitEthernet 0/7 link 15 ip nat inside |
|
外網口配置 |
interface GigabitEthernet 0/6 mac-address 0000.0000.0016 //外網口修改成相同MAC地址 pppoe enable pppoe-client dial-pool-number 1 no-ddr ! interface dialer 1 ip address negotiate ppp chap hostname PPP_Hostname ppp chap password PPP_Password ppp pap sent-username PPP_Hostname password PPP_Password dialer pool 1 dialer-group 1 ip nat outside ! interface GigabitEthernet 0/7 mac-address 0000.0000.0017 //外網口修改成相同MAC地址 ip address 172.16.24.144 255.255.255.0/ip address dhcp nexthop 172.16.24.1 //如通過DHCP方式則不需要該配置 ip nat outside |
interface GigabitEthernet 0/6 mac-address 0000.0000.0016 //外網口修改成相同MAC地址 pppoe enable pppoe-client dial-pool-number 1 no-ddr ! interface dialer 1 ip address negotiate ppp chap hostname PPP_Hostname ppp chap password PPP_Password ppp pap sent-username PPP_Hostname password PPP_Password dialer pool 1 dialer-group 1 ip nat outside ! interface GigabitEthernet 0/7 mac-address 0000.0000.0017 //外網口修改成相同MAC地址 ip address 172.16.24.144 255.255.255.0/ip address dhcp nexthop 172.16.24.1 //如通過DHCP方式則不需要該配置 ip nat outside |
|
內網口線路質量檢測配置 |
line-quality enable line-quality active-detect enable line-quality track enable line-quality track interface GigabitEthernet 0/2 enable line-quality track interface GigabitEthernet 0/2 next-hop 192.168.64.120 line-quality track interface GigabitEthernet 0/2 set log-only line-quality track interface GigabitEthernet 0/2 icmp 192.168.64.120 line-quality track set interface GigabitEthernet 0/2 source 192.168.64.1 //使用VRRP虛地址作為探測源地址 line-quality track interface GigabitEthernet 0/2 icmp enable line-quality track interface GigabitEthernet 0/2 link-up exec enable //配置內網口探測結果為UP時執行以下命令 line-quality track interface GigabitEthernet 0/2 link-up exec 1 cmd config line-quality track interface GigabitEthernet 0/2 link-up exec 2 cmd interface GigabitEthernet 0/6 line-quality track interface GigabitEthernet 0/2 link-up exec 3 cmd pppoe-client dial-pool-number 1 no-ddr line-quality track interface GigabitEthernet 0/2 link-up exec 4 cmd interface GigabitEthernet 0/7 line-quality track interface GigabitEthernet 0/2 link-up exec 5 cmd ip address 172.16.24.144 24/ip address dhcp line-quality track interface GigabitEthernet 0/2 link-up exec 6 cmd end line-quality track interface GigabitEthernet 0/2 link-down exec enable //配置內網口探測結果為DOWN時執行以下命令 line-quality track interface GigabitEthernet 0/2 link-down exec 1 cmd config line-quality track interface GigabitEthernet 0/2 link-down exec 2 cmd interface GigabitEthernet 0/6 line-quality track interface GigabitEthernet 0/2 link-down exec 3 cmd no pppoe-client dial-pool-number 1 no-ddr line-quality track interface GigabitEthernet 0/2 link-down exec 4 cmd interface GigabitEthernet 0/7 line-quality track interface GigabitEthernet 0/2 link-down exec 5 cmd no ip address line-quality track interface GigabitEthernet 0/2 link-down exec 6 cmd end line-quality track set up frequency 3 delay 0 line-quality track set down frequency 3 delay 0 |
|
|
外網口線路質量檢測配置 |
line-quality track interface dialer 1 enable line-quality track interface dialer 1 set shutdown //探測不通時,將接口設置三層DOWN狀態 line-quality track interface dialer 1 icmp 114.114.114.114 line-quality track interface dialer 1 icmp enable line-quality track interface GigabitEthernet 0/7 enable line-quality track interface GigabitEthernet 0/7 set shutdown //探測不通時,將接口設置三層DOWN狀態 line-quality track interface GigabitEthernet 0/7 icmp 114.114.114.114 line-quality track interface GigabitEthernet 0/7 icmp enable |
|
方案部署完成后,正常情況下主出口設備內網口是VRRP主,備出口設備內網口是VRRP備;此時主出口設備內網口線路質量檢測狀態是UP,備出口設備內網口線路質量檢測狀態是DOWN;根據線路質量檢測的結果,主出口設備外網口將自動配置IP地址/撥號配置,備出口設備外網口將自動刪除IP地址/撥號配置;此時內網數據通過主出口設備轉發。

正常情況下查看主備出口設備VRRP狀態

正常情況下查看主備出口設備線路質量檢測狀態

正常情況下查看主備出口設備線外網口狀態
當主出口設備所有外網口物理狀態都DOWN或主出口設備異常后,將觸發VRRP切換,切換后備出口設備內網口成為VRRP主;此時主出口設備內網口線路質量檢測狀態變為DOWN,備出口設備內網口線路質量檢測狀態變為UP;根據線路質量檢測的結果,主出口設備外網口自動刪除IP地址/撥號配置,備出口設備外網口自動配置IP地址/撥號配置;此時內網數據通過備出口設備轉發。

異常情況下查看主備出口設備VRRP狀態

異常情況下查看主備出口設備線路質量檢測狀態

異常情況下查看主備出口設備線外網口狀態
當主出口設備所有外網口物理狀態恢復UP或主出口設備恢復后,VRRP默認開啟搶占,會觸發VRRP切換,主出口設備內網口重新成為VRRP主,備出口設備內網口成為VRRP備;此時主出口設備內網口線路質量檢測狀態變為UP,備出口設備內網口線路質量檢測狀態變為DOWN;根據線路質量檢測的結果,主出口設備的外網口自動配置IP地址/撥號配置,備出口設備的外網口自動刪除IP地址/撥號配置;此時內網數據恢復通過主出口設備轉發。
在多設備、多出口線路的網絡出口的場景,傳統方案使用內外網同時部署VRRP實現出口的冗余備份,但在實際場景中外網出口運營商只能提供一個公網IP地址或無法提供公網IP地址,導致外網口無法部署VRRP。本文通過線路質量檢測與VRRP功能聯動,強強聯合,在任何出口運營商場景下實現網絡出口冗余,既保證設備資源的同時又可保證線路資源。同時該方案相比傳統方案切換時間有所增加,希望本文能給各位讀者提供多一個種思路,讀者根據自身場景和需求選擇適合自身的出口的冗余方案。
