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