[晁夫君 昃草心 代金鳳 陳本效]
互聯(lián)網(wǎng)數(shù)據(jù)中心(Internet Data Center)簡(jiǎn)稱IDC,是電信部門利用已有的互聯(lián)網(wǎng)通信線路、帶寬資源,建立標(biāo)準(zhǔn)化的電信專業(yè)級(jí)機(jī)房環(huán)境,為企業(yè)、政府提供服務(wù)器托管、租用以及相關(guān)增值等方面的全方位服務(wù)。IDC 網(wǎng)絡(luò)構(gòu)成了網(wǎng)絡(luò)基礎(chǔ)資源的一部分,提供了高速的數(shù)據(jù)傳輸服務(wù)以及高速接入的業(yè)務(wù)。市場(chǎng)規(guī)模保持快速增長(zhǎng)的趨勢(shì),是運(yùn)營(yíng)商業(yè)務(wù)的快速增長(zhǎng)點(diǎn),對(duì)占有市場(chǎng)份額、提升收入,具有重要的作用。
在本案例中,IDC 網(wǎng)絡(luò)與城域網(wǎng)核心設(shè)備之間通過多個(gè)trunk 互通,使用loopback 地址建立EBGP 的鄰居,在鏈路發(fā)生故障的情況下,出現(xiàn)EBGP 鄰居沒有中斷且部分IDC 業(yè)務(wù)地址路由形成環(huán)路的問題。通過對(duì)IDC 網(wǎng)與城域網(wǎng)EBGP 鄰居的問題進(jìn)行研究,最終定位問題并提出解決方案,保障了業(yè)務(wù)的安全性,確保在鏈路發(fā)生故障的情況下,流量按照設(shè)定的路徑傳送,不存在任何安全隱患。
本文通過IDC 網(wǎng)與城域網(wǎng)EBGP 鄰居之間出現(xiàn)的故障,介紹IDC 網(wǎng)絡(luò)存在的問題。
由于光纜故障,IDC 機(jī)房?jī)膳_(tái)核心NE5000E 路由器至城域網(wǎng)核心NE5000E-1 路由器共4 條100G 鏈路(經(jīng)OTN 傳輸)和16 條10G 鏈路(裸纖傳輸)全部中斷。通過檢查,發(fā)現(xiàn)流量自動(dòng)切換至城域網(wǎng)核心NE5000E-2 路由器方向,中繼流量未擁塞;半小時(shí)后,陸續(xù)收到IDC 用戶騰訊、淘寶、百度等申告部分網(wǎng)頁打不開。
維護(hù)人員根據(jù)用戶提供的故障IP 地址查詢路由表信息時(shí),發(fā)現(xiàn)IDC 兩臺(tái)NE5000E 至城域網(wǎng)NE5000E-1 路由器的EBGP 鄰居沒有中斷,仍然是Established(本文所有IP 地址均未采用真實(shí)IP 地址);同時(shí)通過網(wǎng)管發(fā)現(xiàn)城域網(wǎng)NE5000E 兩臺(tái)路由器之間流量異常增加,通過故障現(xiàn)象和網(wǎng)絡(luò)拓?fù)浼軜?gòu)分析,確定故障原因是部分用戶業(yè)務(wù)路由環(huán)路所導(dǎo)致的。
維護(hù)人員手工將IDC 兩臺(tái)NE5000E至城域網(wǎng)NE5000E-1的EBGP 鄰居shutdown,聯(lián)系用戶確認(rèn)業(yè)務(wù)恢復(fù)。
山東省濟(jì)南市某IDC 網(wǎng)絡(luò)NE5000E 路由器與城域網(wǎng)核心NE500OE 路由器通過多條鏈路互通,使用loopback與對(duì)端設(shè)備分別建立EBGP 的鄰居關(guān)系,IDC 網(wǎng)NE5000E之間、城域網(wǎng)NE5000E 之間均建立IBGP 的鄰居關(guān)系。
由于光纜故障,ICD 兩臺(tái)NE5000E 路由器至城域網(wǎng)NE5000E-1 路由器的4 條100G(經(jīng)OTN)和16 條10G中繼(裸纖)全部中斷,如圖1 所示。
圖1 IDC 網(wǎng)絡(luò)與城域網(wǎng)核心網(wǎng)絡(luò)互通拓?fù)鋱D
故障發(fā)生后,省內(nèi)用戶訪問IDC 部分IP 地址段(IDC將最優(yōu)路由發(fā)往城域網(wǎng)NE5000E-1 方向的IP 地址段),用戶訪問城域網(wǎng)NE5000E-2 方向的IP 地址段和省外用戶訪問IDC 業(yè)務(wù)無影響。
(1)IDC 兩臺(tái)NE5000E 與城域網(wǎng)NE5000E-1 之間直連鏈路全部中斷,并且EBGP 鄰居之間已配置ebgp-maxhop=2,EBGP 鄰居為何沒有中斷?
分析:通常情況下,EBGP 對(duì)等體之間通過直連的物理鏈路建立鄰居,如果不滿足這一要求,則必須使用ebgp-max-hop 命令允許它們之間經(jīng)過多跳建立TCP 連接。BGP 使用Loopback 接口建立EBGP 鄰居時(shí),ebgp-maxhop 命令用來配置允許BGP 同非直連網(wǎng)絡(luò)上的對(duì)等體建立EBGP 連接,同時(shí)可以指定允許的最大跳數(shù),否則鄰居無法建立。
故障發(fā)生時(shí),IDC NE5000E-1 與城域網(wǎng)NE5000E-1設(shè)備通過繞行城域網(wǎng)NE5000E-2,保持EBGP 鄰居為Established 狀態(tài),所以EBGP 鄰居沒有中斷,如圖2 所示。
圖2 EBGP 鄰居狀態(tài)示意圖
(2)部分用戶業(yè)務(wù)路由形成環(huán)路
分析:IDC NE5000E 在城域網(wǎng)NE5000E 互聯(lián)的出方向,發(fā)布路由時(shí)配置不同的MED 值,引導(dǎo)省內(nèi)用戶訪問IDC 的業(yè)務(wù)流量從不同的平面進(jìn)入IDC。
MED 屬性相當(dāng)于IGP 使用的度量值,它用于判斷流量進(jìn)入AS 時(shí)的最佳路由。當(dāng)一個(gè)運(yùn)行BGP 的設(shè)備通過不同的EBGP 對(duì)等體得到目的地址相同但下一跳不同的多條路由時(shí),在其它條件相同的情況下,將優(yōu)先選擇MED 值較小者作為最佳路由。
以路由20.1.1.1/32 為例:
IDC NE5000E-1 發(fā)往城域網(wǎng)NE5000E-1 的20.1.1.1/32的路由引用路由策略,設(shè)置MED 為100;發(fā)往城域網(wǎng)NE5000E-2 的20.1.1.1/32 的路由引用路由策略,設(shè)置MED 為200;
在城域網(wǎng)NE5000E-1 查看20.1.1.1/32 的路由,如圖3所示,優(yōu)選IDC-NE5000E-1 轉(zhuǎn)發(fā)流量。
圖3 城域網(wǎng)NE5000E-1 路由信息
城域網(wǎng)NE5000E-2 查看20.1.1.1/32 的路由,從直連的IDC 兩臺(tái)NE5000E 傳過來的路由MED 值為200,從城域網(wǎng)NE5000E-1 傳過來的路由MED 值為100,因此優(yōu)選城域網(wǎng)NE5000E-1 方向轉(zhuǎn)發(fā)流量,如圖4 所示。
圖4 城域網(wǎng)NE5000E-2 路由信息
此時(shí)省內(nèi)用戶訪問20.1.1.1/32 段IDC 的業(yè)務(wù),會(huì)優(yōu)選城域網(wǎng)NE5000E-1 轉(zhuǎn)發(fā)流量至IDC 網(wǎng)絡(luò)。
因?yàn)槌怯蚓W(wǎng)NE5000E-1 未中斷與IDC 的EBGP 鄰居關(guān)系,分流至城域網(wǎng)NE5000E-1 的流量依然優(yōu)選城域網(wǎng)NE5000E-1 做為流量出口。由于城域網(wǎng)NE5000E-1 與IDC互聯(lián)鏈路全部中斷,流量需繞行至城域網(wǎng)NE5000E-2 轉(zhuǎn)發(fā),但MED 值選路原則依然有效,城域網(wǎng)NE5000E-2 依然會(huì)優(yōu)選城域網(wǎng)中MED 值為100 的下一跳,即NE5000E-1,最終流量在城域網(wǎng)兩臺(tái)NE5000E之間不停循環(huán)直至丟棄,如圖5 所示。
圖5 城域網(wǎng)流量繞行示意圖
通過對(duì)IDC 網(wǎng)絡(luò)與城域網(wǎng)之間EBGP 鄰居存在的問題進(jìn)行研究,可以得出如下結(jié)論。
BGP 使用Loopback 接口建立EBGP 鄰居時(shí),必須使用ebgp-max-hop 命令允許它們之間經(jīng)過多跳建立TCP 連接,同時(shí)可以指定允許的最大跳數(shù),否則鄰居無法建立。在IDC 網(wǎng)絡(luò)與城域網(wǎng)的網(wǎng)絡(luò)拓?fù)渲?,IDC 兩臺(tái)NE5000E與城域網(wǎng)NE5000E-1 共4 個(gè)100G、16 個(gè)10G 互聯(lián)鏈路全部中斷。雖然IDC NE5000E 配置了ebgp-max-hop=2,但鏈路中斷后,IDC NE5000E 仍可以通過繞行城域網(wǎng)NE5000E-2 保持EBGP 鄰居為Established 狀態(tài)。分流至城域網(wǎng)NE5000E-1 的流量依然優(yōu)選城域網(wǎng)NE5000E-1 做為流量出口,由于城域網(wǎng)NE5000E-1 與IDC 互聯(lián)鏈路全部中斷,流量需繞行至城域網(wǎng)NE5000E-2 轉(zhuǎn)發(fā);但MED 值選路原則依然有效,城域網(wǎng)NE5000E-2 仍然會(huì)優(yōu)選城域網(wǎng)中MED 值為100 的下一跳,即NE5000E-1,最終流量在城域網(wǎng)兩臺(tái)NE5000E 之間不停循環(huán)直至丟棄。由此導(dǎo)致部分IDC 業(yè)務(wù)地址路由形成路由環(huán)路,省內(nèi)用戶訪問部分IDC 業(yè)務(wù)異常。
IDC NE5000E 與城域網(wǎng)NE5000E 之間配置的EBGP鄰居使用了ebgp-max-hop=2 的方式,來指定允許的最大跳數(shù)為2 跳,當(dāng)ebgp 最大跳數(shù)為2 時(shí),通過一臺(tái)設(shè)備轉(zhuǎn)接建立EBGP 鄰居也能夠滿足。所以在本案例中,IDC 兩臺(tái)NE5000E 與城域網(wǎng)NE5000E-1 的互聯(lián)鏈路全部中斷,但EBGP 鄰居仍然為Established 狀態(tài)。使用ebgp-maxhop=2 無法限制EBGP 的鄰居的狀態(tài)。
通用TTL安全保護(hù)機(jī)制GTSM(Generalized TTL Security Mechanism)通過對(duì)TTL 的檢測(cè)來達(dá)到防止攻擊的目的,如果攻擊者模擬真實(shí)的BGP 協(xié)議報(bào)文,對(duì)一臺(tái)路由器不斷的發(fā)送攻擊報(bào)文,路由器收到這些報(bào)文后,發(fā)現(xiàn)是發(fā)送給本機(jī)的報(bào)文,則直接上送控制層面的BGP 協(xié)議處理,而不加辨別其“合法性”,這樣導(dǎo)致路由器控制層面因?yàn)樘幚磉@些“合法”的報(bào)文,系統(tǒng)異常繁忙,CPU 占用率高。GTSM 通過檢測(cè)IP 報(bào)文頭中的TTL 值是否在一個(gè)預(yù)先定義好的特定范圍內(nèi),對(duì)IP 層以上的業(yè)務(wù)進(jìn)行保護(hù),對(duì)于不符合TTL 值范圍的報(bào)文,將其丟棄,增強(qiáng)系統(tǒng)的安全性。這樣就避免了網(wǎng)絡(luò)攻擊者模擬的“合法”BGP 報(bào)文占用CPU,也可以避免故障發(fā)生時(shí)NE5000E 繞行其他設(shè)備建立EBGP 鄰居。
針對(duì)NE5000E做配置整改:刪除ebgp-max-hop 2命令,修改配置為:peer x.x.x.x valid-ttl-hops 1,可以避免類似故障發(fā)生時(shí)NE5000E 繞行其他設(shè)備成功建立EBGP 鄰居。
方案實(shí)施后,經(jīng)過對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的各條鏈路進(jìn)行中斷測(cè)試,對(duì)各種故障場(chǎng)景進(jìn)行模擬,分析路由發(fā)布及業(yè)務(wù)流向,流量模型均按照設(shè)定的路徑傳送,保障了網(wǎng)絡(luò)業(yè)務(wù)承載的安全可靠性。
對(duì)具有相同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的EBGP 鄰居進(jìn)行檢查,逐一梳理,消除網(wǎng)絡(luò)中存在的安全隱患,將IDC 網(wǎng)與城域網(wǎng)打造成高質(zhì)量的精品網(wǎng)絡(luò)。
通過對(duì)現(xiàn)網(wǎng)使用loopback 地址建立EBGP 鄰居存在的問題進(jìn)行研究,分析網(wǎng)絡(luò)中存在的安全隱患,提出改進(jìn)的措施,提高了網(wǎng)絡(luò)的自愈能力,確保網(wǎng)絡(luò)的健壯性。本方案簡(jiǎn)單易行,具有創(chuàng)新性,對(duì)于保障網(wǎng)絡(luò)安全、提高網(wǎng)絡(luò)的穩(wěn)定性具有重要的意義,值得借鑒。