出向鏈路負載均衡兩臺設備雙活(Active-Active)解決方案

最近遇到一個出向鏈路負載均衡的case,原本計劃採用兩臺AX鏈路負載均衡設備做HA雙機冗餘,部署的網絡拓撲示意圖如下:

image

        通常鏈路負載均衡設備部署爲雙機主備模式也是類似的拓撲,只是兩臺主備AX鏈路負載均衡(LLB)設備之間會有直連的HA心跳線,同時,對內部網絡(LAN)啓用VRRP,配置一個浮動IP地址,作爲整個內部網絡的出口網關地址。另外,需要兩臺內部網絡邊界路由器(ASBR)或核心交換機也啓用VRRP,配置一個浮動IP地址,作爲LLB設備的回程路由網關地址。既然要啓用VRRP,那麼兩臺LLB設備與兩臺ASBR設備直連的端口就需要共處於一個L2層廣播域內,這是採用主備VRRP工作模式的一個限制條件。假如兩臺ASBR或核心交換機不在一個L2層環境時,無法啓用VRRP協議怎麼辦呢?

        我想有兩種解決辦法,第一個解決辦法是在內網(LAN)啓用策略路由,把來自不同的用戶網段流量分別牽引到兩臺ASBR設備上,這種方法我們可以簡單理解爲兩臺主備鏈路負載均衡LLB設備同時對應兩個獨立的內部網絡(LAN),兩臺LLB設備啓用VRRP協議,與兩臺ASBR設備物理連接方式需要改成全連接,就不能是示意圖這樣的“口字型”連接了,同時還要做好內網策略路由的備份機制,保障其中某個ASBR設備故障時,內網用戶依然能夠訪問互聯網。

        第二個解決辦法,也是目前我們在這個case當中採用的方法是在兩臺LLB設備與兩臺ASBR設備之間啓用BGP動態路由(注:啓用OSPF路由也可以),兩臺LLB設備之間也不啓用VRRP協議,完全當作兩臺獨立的LLB設備。那如何避免LLB設備或者ASBR設備的單點故障呢?我們利用動態路由策略來解決,並控制內網流量的走向。

        大致思路是這樣:

1、四臺設備共處於一個BGP域內,AX-LLB-1設備與ASBR-1設備建立鄰居(Neighbor)關係;AX-LLB-2設備與ASBR-2設備建立鄰居(Neighbor)關係。

2、兩臺AX-LLB設備分別在BGP域內宣告network 0.0.0.0/0的缺省路由,兩臺ASBR設備能夠分別從不同的路徑學到兩條cost不同的缺省路由,正常情況下,對於ASBR-1生效的缺省路由下一跳是AX-LLB-1;對於ASBR-2生效的缺省路由下一跳是AX-LLB-2。

3、兩臺AX-LLB設備分別通過兩條ISP的線路,對鏈路實現透明的健康檢查,當直連某臺AX-LLB設備的兩條鏈路都中斷時,在AX-LLB設備上通過Shell腳本將與ASBR直連的端口down掉,以使直連的ASBR設備更新BGP域內的缺省路由,將缺省路由指向對端的ASBR設備。這樣就可以保障任何一臺AX-LLB設備出現故障或鏈路全部中斷時,與其直連的ASBR可以將內網訪問Internet的流量牽引到對端的ASBR設備,對端ASBR設備再將這部分訪問流量通過與其直連的AX-LLB設備出去。

4、將兩個運營商ISP1和ISP2公網IP地址段一分爲二,在兩個ISP的網關互聯設備上分別配置前後兩段公網IP地址段的回程靜態路由,指向兩臺AX-LLB設備,例如:

      ISP1-Router# ip route 1.1.1.0 /25 192.168.1.1(AX-LLB-1接口地址)

      ISP1-Router# ip route 1.1.1.128 /25 192.168.1.2(AX-LLB-2接口地址)

      ISP2-Router# ip route 2.2.2.0 /25 192.168.2.1(AX-LLB-1接口地址)

      ISP2-Router# ip route 2.2.2.128 /25 192.168.2.2(AX-LLB-2接口地址)

        這種解決方案的好處在於可以通過動態路由的學習過程,實現設備和鏈路的備份,但由於兩臺AX-LLB設備所使用的公網NAT地址不同,因此當發生故障切換時,切換的流量需要重新建會話。

 

S.G

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章