企業網高可用性設計
高可用性網絡誕生背景
隨著國家與社會近幾年對信息化建設的號召與大力支持以及大數據與云計算等信息化技術的高速發展,互聯網上各種類型的流量呈現井噴式的上漲,高性能網絡的建設與發展在此背景趨勢下變得愈發重要。對于任何一家企業而言,擁有高穩定性、高吞吐量、高可用性的網絡系統,能夠更好地滿足企業業務對網絡的要求以及企業自身的發展需要。
層次性架構企業網常見的高可用性網絡實現方式
對于具有層次性架構的企業網環境而言,增加網絡高可用性最有效的方式通常是將數據轉發設備采購多臺、通信鏈路連接多根等方式來設計冗余,再通過合理的策略設計,實現通信網絡的高可用性。并且能夠實現整體網絡通信數據分擔在多根通信鏈路、多臺設備節點之上。
數字科技峰會
對此,本文章將講述在具備多設備的冗余環境下,如何通過策略設計,搭建具備高可用性的企業網絡環境,實現基于冗余備份的負載均衡策略。以兩臺設備為例,整體設計思路如下圖所示。
圖片
將終端設備的網關節點設計冗余,但終端設備的網關只能指向一個節點,而為了實現高可用性,我們希望的是兩臺網關設備都能夠作為下游終端設備的網關,轉發其網絡間的通信數據。因此,我們將冗余網關設備通過VRRP(Virtual Redundancy Router Protocol)聚合成一臺邏輯的虛擬網關。針對下游的兩個vlan,網關A作為vlan10的活動設備Master,作為vlan20的備份設備Backup。而網關B則正好與之相反。通過這樣的設計,兩臺網關均正常運行的情況下,vlan10的通信流量將由網關A響應處理;vlan20的流量將由網關B響應處理。而當某一臺網關設備不可用時,其所負責的vlan通信數據的轉發任務將切換到另一臺設備上,實現網關的高可用性。對于下游所有vlan整體而言,業務流量分擔在了兩臺網關之上,并且能夠避免單點故障,單設備或單鏈路故障不影響業務的正常運行。
實驗演示拓撲
本文使用華為ensp搭建典型的層次性架構企業網絡環境,在具備冗余的條件下,通過策略設計,搭建出具備高可用性的企業網絡。本文僅講解高可用性設計內容,設備基礎配置不進行贅述和展示,整體拓撲如下圖所示。
圖片
在上述拓撲中,SW3-6為二層接入交換機、SW1與SW2為匯聚層網關交換機、AR1作為匯聚上行方向的核心路由器且作為DHCP Server、FW1為邊界出口,右側是模擬的互聯網環境。
實驗配置詳解
匯聚層網關交換機SW1與SW2 VRRP配置
SW1:
#
interface Vlanif10
ip address 172.16.10.1 255.255.255.0
vrrp vrid 10 virtual-ip 172.16.10.254 #配置vrrp虛擬網關的虛擬ip地址
vrrp vrid 10 priority 110 #手工設置vrrp優先級,操控主備身份選舉
vrrp vrid 10 preempt-mode timer delay 5 #主設備上開啟搶占延時
vrrp vrid 10 track bfd-session 1 reduced 15 #使用bfd監測上行鏈路
dhcp select relay
dhcp relay server-ip 10.1.11.2
#
interface Vlanif11
ip address 10.1.11.1 255.255.255.252
#
interface Vlanif20
ip address 172.16.20.1 255.255.255.0
vrrp vrid 20 virtual-ip 172.16.20.254
vrrp vrid 20 priority 110
vrrp vrid 20 preempt-mode timer delay 5
vrrp vrid 20 track bfd-session 1 reduced 15
dhcp select relay
dhcp relay server-ip 10.1.11.2
#
interface Vlanif30
ip address 172.16.30.1 255.255.255.0
vrrp vrid 30 virtual-ip 172.16.30.254 #備設備上只需要啟用vrrp即可
#
interface Vlanif40
ip address 172.16.40.1 255.255.255.0
vrrp vrid 40 virtual-ip 172.16.40.254
#
SW2:
#
interface Vlanif10
ip address 172.16.10.2 255.255.255.0
vrrp vrid 10 virtual-ip 172.16.10.254
#
interface Vlanif20
ip address 172.16.20.2 255.255.255.0
vrrp vrid 20 virtual-ip 172.16.20.254
#
interface Vlanif30
ip address 172.16.30.2 255.255.255.0
vrrp vrid 30 virtual-ip 172.16.30.254
vrrp vrid 30 priority 110
vrrp vrid 30 preempt-mode timer delay 5
vrrp vrid 30 track bfd-session 2 reduced 15
dhcp select relay
dhcp relay server-ip 10.1.12.2
#
interface Vlanif40
ip address 172.16.40.2 255.255.255.0
vrrp vrid 40 virtual-ip 172.16.40.254
vrrp vrid 40 priority 110
vrrp vrid 40 preempt-mode timer delay 5
vrrp vrid 40 track bfd-session 2 reduced 15
dhcp select relay
dhcp relay server-ip 10.1.12.2
#
SW1與SW2分別作為vlan10、vlan20與vlan30、vlan40的主網關,且彼此互為備份。VRRP是基于三層接口運行的,而不是整個設備。VRRP網關組成員之間會交互組播發送的VRRP Announcement報文來檢查對端活躍狀態,以及比較優先級。如果開啟了搶占,當接收到對端發送過來的Announcement中攜帶的優先級參數字段值如若比本地小,則搶占Master活動身份;如果未開啟搶占,則只有當對端宕機或離線時,本端才會切換活動身份。
圖片
由于VRRP主備身份切換正常情況下是根據本端設備、接口等的狀態變化來決定的。但在實際通信過程中,我們期望的是即使是主設備上行鏈路發生故障,VRRP也要因為端到端通信路徑不完整而實現主備的切換。所以需要使用上行鏈路監測來完成這個需求。上行鏈路監測常用的有接口監測、NQA監測、BFD監測。如果是防火墻設備做雙機熱備,還能選擇IP-link監測。本文將使用BFD監測,實現故障發生時,主備身份毫秒級的切換,盡可能地減小主備切換造成的丟包影響。
匯聚層網關交換機上行監測BFD配置
SW1:
#
bfd 1 bind peer-ip 10.1.11.2 interface Vlanif11 source-ip 10.1.11.1
discriminator local 1 #本地標識符
discriminator remote 11 #對端標識符
commit #激活bfd配置
#
SW2:
#
bfd 2 bind peer-ip 10.1.12.2 interface Vlanif12 source-ip 10.1.12.1
discriminator local 2
discriminator remote 12
commit
#
BFD監測原理與路由協議交互hello包維持鄰居關系類似,通過毫秒級地周期性發送BFD的探針,若發送的探針三個周期時間內均未收到應答,BFD將判定與對端鄰居之間的直連鏈路失效不可用。而用在上行鏈路監測上,則是在VRRP上聯動BFD,一旦BFD監測狀態為DOWN,觸發降低VRRP優先級的配置,當降低后的優先級小于原本的Backup后,將實現主備身份的切換,從而實現端到端通信路徑的切換。本文中采用的是BFD的雙向檢測,上行設備AR1也將監測下行兩臺網關交換機。
AR1:
#
bfd 11 bind peer-ip 10.1.11.1 interface GigabitEthernet0/0/1 source-ip 10.1.11.2
discriminator local 11
discriminator remote 1
commit
#
bfd 12 bind peer-ip 10.1.12.1 interface GigabitEthernet0/0/2 source-ip 10.1.12.2
discriminator local 12
discriminator remote 2
commit
#
VRRP主備身份
SW1:對于vlan10與vlan20,作為活動主設備
圖片
SW2:對于vlan30與vlan40,作為活動主設備
圖片
BFD監測與VRRP聯動
圖片
圖片
交換區塊生成樹配置
在交換區塊里,接入與雙匯聚之間為了實現高可用性,采取的是雙上行連接方式,匯聚之間也有以太信道互聯鏈路。在這樣的連接方式下,顯而易見存在環路問題。如果對應交換機不支持堆疊,但需要保持冗余連接以提供備份鏈路,那么在企業網環境中往往還是會選擇運行生成樹來實現二層環路的避免。除此之外,交換機還能運行一些大二層技術來防環,例如trill。但這種技術往往只有數據中心級別的高端交換機能支持。
由于華為交換機生成樹不論是802.1D,還是802.1W均是全局所有vlan共用一個生成樹進程。這極易造成部分vlan通信路徑為次優路徑,為解決該問題,本文選擇運行802.1S標準的MSTP。需要注意的是,所有交換機必須擁有相同的MSTP配置才能屬于同一個region中,同一個region中的交換機才能一起構建出生成樹。
交換區塊所有交換機MSTP配置
#
stp enable #默認就開啟了,此命令可忽略
stp mode mstp #Huawei設備默認stp模式就是mstp,此命令可忽略
stp region-configuration #進入mstp配置
region-name ha #MSTP域名
instance 12 vlan 10 20 #vlan10和vlan20映射到實例12
instance 34 vlan 30 40 #vlan30和vlan40映射到實例34
active region-configuration #激活mstp配置
交換區塊由于使用生成樹來防環,因此冗余路徑是被阻塞的狀態。具體阻塞哪條路徑如果不去人為干預的話,可能生成樹最終確定的根路徑并不是我們所期望的。由于生成樹根橋選舉是通過比較始發BPDU中ROOT ID字段值誰更小誰為根橋,而ROOT ID字段由生成樹優先級加上交換機MAC地址構成。因此,生成樹選舉的操控一般是通過修改交換機生成樹優先級的方式來實現。默認值是32768,僅需將所期望成為根橋的交換機的該值修改的比32768小即可,但需要注意的是必須以4096的倍數修改,因為ROOT ID字段的Priority值2字節,后12位為vlan id,能動的只有前4位。通常,可以將期望成為根橋的交換機的優先級修改為4096,備份根橋修改為8192。或者直接指定其為主根橋或備份根橋,以保證主備根橋是期望的設備。本文中將采取直接指定的方式進行配置。
主備根橋手工指定為雙匯聚設備
SW1:
#
stp instance 12 root primary #指定SW1為mstp實例12的主根橋
stp instance 34 root secondary #指定SW1為mstp實例34的備份根橋
#
SW2:
#
stp instance 12 root secondary #指定SW2為mstp實例12的備份根橋
stp instance 34 root primary #指定SW2為mstp實例34的主根橋
#
主備根橋身份驗證:
SW1:
圖片
SW2:
圖片
路徑切換測試
生成樹路徑切換
以vlan40為例,上游接入交換機SW6雙上行連接中,連接SW1的端口處于阻塞Discarding狀態,因為vlan40映射到了mstp的instance34中,而instance34的主根橋是SW2,所以連接SW2的端口Gi 0/0/2為根端口。通信路徑如下圖所示。
圖片
圖片
模擬SW6上行根鏈路故障,驗證路徑切換
圖片
通過shutdown SW6上行連接SW2的接口模擬上行根鏈路故障,長ping中途無丟包,路徑立即切換至備份鏈路。查看SW6的端口狀態變化,可以發現原先連接SW1的被阻塞的鏈路變成了根鏈路,生成樹根路徑完成重收斂。
主備網關切換
模擬匯聚層網關上行鏈路故障,驗證網關切換。
以vlan20為例,正常情況下走SW1作實際物理網關轉發去往外部網絡的通信數據
圖片
shutdown SW1上行連接AR1的鏈路,模擬上行鏈路故障。shutdown掉接口后,立即彈出了對應的日志消息。OSPF鄰居中斷,BFD狀態檢測為DOWN,vrrp 10與20從Master切換為Backup
圖片
圖片
主網關從SW1切換至SW2
圖片
在本文中,我們詳細介紹了最簡單最典型的層次性架構企業網絡高可用性的模擬實戰部署。在網絡模型中的二層與三層入手,通過mstp的多實例對應多生成樹完成二層鏈路基于冗余備份的負載均衡策略,mstp高效的收斂速度得以讓終端主機對網絡通信鏈路的變更無感。通過在具備冗余的匯聚交換機上面啟用多個vrrp進程針對下游不同vlan交叉互為主備網關的方式也實現了基于冗余備份的負載均衡策略,通過BFD的監測,主備網關切換能在毫秒級內時間完成,同樣地,對應用戶側的終端設備來說是無感知的。
高可用性的網絡不僅能保障企業生產業務不間斷運行,避免因網絡故障導致的損失。還能提供穩定的網絡性能,以提高用戶使用體驗。另外,高可用性的網絡設計通常更加地靈活,便于應對未來的調整與擴展需求,以適應業務的變化。因此,高可用性網絡的設計搭建逐漸成為當下設計網絡時必須考慮的設計原則,如何通過最小的成本搭建設計出高可用性網絡也是網絡工程師們一直在探索研究的話題。