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