黃 澎 陳 偉 林阿玲 楊志勇 蔣永成
(1.廈門(mén)市氣象災(zāi)害防御技術(shù)中心,福建 廈門(mén) 361006;2.廈門(mén)市氣象臺(tái),福建 廈門(mén) 361006;3.廈門(mén)海峽氣象開(kāi)放重點(diǎn)實(shí)驗(yàn)室,福建 廈門(mén) 361006)
為了解決VRRP(Virtual Router Redundancy Protocol)架構(gòu)收斂緩慢、管理不便、熱備機(jī)器利用率低等問(wèn)題,近年來(lái),越來(lái)越多的政府機(jī)關(guān)、企事業(yè)單位開(kāi)始逐步采用以H3C公司的IRF(Intelligent Resilient Framework)虛擬化技術(shù)為代表的堆疊架構(gòu)作為其骨干網(wǎng)絡(luò)的核心[1]。
使用IRF虛擬化技術(shù)可將多臺(tái)三層交換機(jī)虛擬化為一臺(tái)“分布式設(shè)備”,形成分布式交換架構(gòu),并作為一個(gè)邏輯交換實(shí)體運(yùn)行[2]。由于從VRRP到堆疊架構(gòu)的改造涉及核心網(wǎng)絡(luò)的調(diào)整,影響范圍較廣,因此實(shí)施人員在項(xiàng)目改造前必須充分考慮特定網(wǎng)絡(luò)中的各種因素。本文討論了在某次項(xiàng)目實(shí)施過(guò)程中,由VRRP到IRF虛擬化改造而引發(fā)的網(wǎng)絡(luò)設(shè)備訪問(wèn)異常問(wèn)題。該問(wèn)題成因較為隱蔽,排查周期長(zhǎng),在類(lèi)似的網(wǎng)絡(luò)改造中需要予以重視。本文首先介紹本次網(wǎng)絡(luò)改造的網(wǎng)絡(luò)概況,然后描述了改造后產(chǎn)生的問(wèn)題現(xiàn)象,接著通過(guò)抓包方式分析了盈高準(zhǔn)入控制器MVG工作模式以及問(wèn)題成因,最后提出了針對(duì)性的解決方案。出于保密需要,下文中涉及到的IP地址皆非真實(shí)網(wǎng)絡(luò)環(huán)境地址,同時(shí)不對(duì)抓包結(jié)果進(jìn)行截圖展示。
本節(jié)主要介紹改造前后核心網(wǎng)絡(luò)概況并簡(jiǎn)要說(shuō)明在準(zhǔn)入控制下的幾種PC入網(wǎng)方式。項(xiàng)目中的核心交換機(jī)、接入交換機(jī)均為H3C的某型號(hào)產(chǎn)品,準(zhǔn)入控制器為盈高科技公司ASM系列類(lèi)型。
如圖1所示,項(xiàng)目改造前,接入交換機(jī)以VRRP方式接入兩臺(tái)核心交換機(jī),準(zhǔn)入設(shè)備旁?huà)煊诤诵慕粨Q機(jī)2上,以MVG(Multi Vendor Virtual Gateway)方式對(duì)設(shè)備進(jìn)行準(zhǔn)入控制(盈高準(zhǔn)入控制器的MVG工作模式將在后續(xù)章節(jié)詳細(xì)介紹)。
在MVG模式下,準(zhǔn)入控制器將以腳本方式登錄到接入交換機(jī)上,對(duì)接入交換機(jī)的端口進(jìn)行管控。對(duì)準(zhǔn)入控制器來(lái)說(shuō),接入交換機(jī)的端口可分為管理端口和非管理端口,非管理端口即不受準(zhǔn)入控制器管控的端口,其下的設(shè)備可不經(jīng)準(zhǔn)入設(shè)備管控而直接入網(wǎng),而管理端口又分為直連設(shè)備的端口和下聯(lián)HUB的端口。管理端口下的PC必須符合準(zhǔn)入條件才能入網(wǎng),入網(wǎng)前,PC訪問(wèn)任意網(wǎng)址均會(huì)由準(zhǔn)入控制器推送準(zhǔn)入認(rèn)證頁(yè)面以提示用戶(hù)進(jìn)行手動(dòng)認(rèn)證,認(rèn)證通過(guò)后,PC即可入網(wǎng)。在圖1中,PC1所屬的交換機(jī)端口在準(zhǔn)入控制器上被配置為非管理端口,因此PC1可不經(jīng)過(guò)準(zhǔn)入直接入網(wǎng)。PC2、PC3、PC4均為管理端口下的PC,需要符合準(zhǔn)入條件才能入網(wǎng)。在實(shí)施改造前,PC3不符合準(zhǔn)入條件,因此無(wú)法入網(wǎng)。PC2以及PC4符合準(zhǔn)入條件,入網(wǎng)狀態(tài)正常。值得一提的是,準(zhǔn)入不通過(guò)的設(shè)備除了能夠訪問(wèn)準(zhǔn)入控制器10.1.13.100外,無(wú)法訪問(wèn)其余跨網(wǎng)段地址。
圖1 改造前的網(wǎng)絡(luò)拓?fù)?/p>
如圖2所示,改造后兩臺(tái)核心交換機(jī)通過(guò)H3C的IRF技術(shù)虛擬化成一臺(tái),實(shí)現(xiàn)設(shè)備之間的冗余,同時(shí)刪除各個(gè)業(yè)務(wù)接口上的VRRP配置并修改相應(yīng)SVI(Switch Virtual Interface)接口IP作為各個(gè)業(yè)務(wù)的網(wǎng)關(guān)。而針對(duì)二層鏈路使用鏈路聚合以增加鏈路之間帶寬并實(shí)現(xiàn)鏈路的冗余。圖2中,虛擬化后的核心交換機(jī)實(shí)際承載著網(wǎng)關(guān)流量的處理與轉(zhuǎn)發(fā),核心交換機(jī)與接入交換機(jī)、準(zhǔn)入等接口的其余配置保持不變。理論上,改造后PC以及其他客戶(hù)端設(shè)備的入網(wǎng)情況應(yīng)與改造前一致。
圖2 改造后的網(wǎng)絡(luò)拓?fù)?/p>
在項(xiàng)目改造完成后,有用戶(hù)反映此前入網(wǎng)狀態(tài)正常的PC2無(wú)法訪問(wèn)內(nèi)網(wǎng),并且無(wú)法彈出準(zhǔn)入認(rèn)證頁(yè)面。經(jīng)現(xiàn)場(chǎng)檢測(cè),此時(shí)PC2無(wú)法訪問(wèn)準(zhǔn)入控制器10.1.13.100,也無(wú)法訪問(wèn)網(wǎng)關(guān)10.1.13.254,而改造前入網(wǎng)狀態(tài)正常的PC1以及PC4改造后仍然可正常上網(wǎng)。經(jīng)確認(rèn),改造前后,用戶(hù)并未做過(guò)任何軟硬件層面的變更,同時(shí)網(wǎng)絡(luò)的物理線(xiàn)路、接口等狀態(tài)皆正常,各級(jí)別的路由交換設(shè)備上也未發(fā)現(xiàn)異常配置。
值得注意的是,在排查故障的過(guò)程中,有PC4類(lèi)型的用戶(hù)由于變更了軟件配置導(dǎo)致其準(zhǔn)入不合格而被斷網(wǎng)。在斷網(wǎng)后用戶(hù)無(wú)法訪問(wèn)準(zhǔn)入認(rèn)證頁(yè)面(正常情況下,因準(zhǔn)入不達(dá)標(biāo)而斷網(wǎng)的用戶(hù),在準(zhǔn)入合格后仍可通過(guò)訪問(wèn)準(zhǔn)入認(rèn)證頁(yè)面來(lái)重新認(rèn)證上網(wǎng))。該現(xiàn)象與PC2無(wú)法上網(wǎng)一致。
根據(jù)以上現(xiàn)象,擴(kuò)大排查面積后對(duì)全網(wǎng)故障初步總結(jié)如下:經(jīng)過(guò)IRF虛擬化改造后,只要接入交換機(jī)的某個(gè)接口下有PC因不符合準(zhǔn)入條件而被斷網(wǎng),那么該接口下的所有PC無(wú)論準(zhǔn)入條件是否合格都將無(wú)法入網(wǎng),同時(shí)無(wú)法訪問(wèn)準(zhǔn)入控制器以及網(wǎng)關(guān)。即便后續(xù)該接口下的所有PC均達(dá)到準(zhǔn)入條件,故障仍將維持。
由于改造前準(zhǔn)入狀況并無(wú)異常,實(shí)施方將網(wǎng)絡(luò)拓?fù)浜团渲没貪L到原來(lái)的狀態(tài)后用戶(hù)能正常入網(wǎng),因此故障原因應(yīng)與準(zhǔn)入控制器本身無(wú)關(guān)。而實(shí)施方將網(wǎng)絡(luò)中的準(zhǔn)入控制器剔除后,改造后的網(wǎng)絡(luò)又能正常運(yùn)行。為此,多方工程師耗時(shí)數(shù)日亦未找出問(wèn)題成因,后來(lái)通過(guò)多個(gè)節(jié)點(diǎn)抓包分析,在剖析了盈高準(zhǔn)入控制器MVG模式原理基礎(chǔ)上,找到了上述問(wèn)題的原因。
準(zhǔn)入控制技術(shù)已經(jīng)在高校、企事業(yè)單位的辦公網(wǎng)中得到了廣泛應(yīng)用。這使得網(wǎng)絡(luò)管理員對(duì)終端設(shè)備的約束力大大增強(qiáng),網(wǎng)絡(luò)的安全性與可控性得到進(jìn)一步提升[3]。雖然不同品牌的準(zhǔn)入控制器在工作原理上存在一定差異,但主流的準(zhǔn)入控制器都是采用介入數(shù)據(jù)轉(zhuǎn)發(fā)流程的方式來(lái)實(shí)現(xiàn)對(duì)終端的準(zhǔn)入控制[4]。因此,為了解決與準(zhǔn)入相關(guān)的網(wǎng)絡(luò)問(wèn)題,必須全面了解其介入數(shù)據(jù)轉(zhuǎn)發(fā)的原理。本次改造環(huán)境中采用的準(zhǔn)入控制方式為盈高準(zhǔn)入控制器的MVG模式,在對(duì)多個(gè)節(jié)點(diǎn)進(jìn)行抓包分析的研究基礎(chǔ)上,本文對(duì)其大致的工作原理簡(jiǎn)述如下:
當(dāng)準(zhǔn)入控制器接入網(wǎng)絡(luò)后,管理員首先在準(zhǔn)入控制器上添加需進(jìn)行管控的交換機(jī)信息,然后在控制器上描述交換機(jī)的哪些端口需要進(jìn)行準(zhǔn)入管控。此外,管理員還要在被準(zhǔn)入控制的交換機(jī)上為每個(gè)業(yè)務(wù)VLAN多設(shè)置一個(gè)隔離VLAN。在圖1中,4臺(tái)PC對(duì)應(yīng)的正常業(yè)務(wù)VLAN為VLAN23,而VLAN123則是為了實(shí)現(xiàn)VLAN23下設(shè)備的準(zhǔn)入控制所額外設(shè)置的隔離VLAN。
準(zhǔn)入系統(tǒng)運(yùn)作后,準(zhǔn)入控制器會(huì)在后臺(tái)以SSH方式登錄到被管控的交換機(jī)上,將這臺(tái)交換機(jī)上需要進(jìn)行管控的端口全部切換到其對(duì)應(yīng)的隔離VLAN下,以此來(lái)實(shí)現(xiàn)對(duì)未進(jìn)行準(zhǔn)入驗(yàn)證的PC的隔離。被切換到隔離VLAN下的PC符合準(zhǔn)入條件后會(huì)被重新切換回正常VLAN,從而實(shí)現(xiàn)入網(wǎng)。
MVG模式下,圖1中的PC1處于非管理端口,其數(shù)據(jù)轉(zhuǎn)發(fā)流程與準(zhǔn)入控制器無(wú)關(guān),而處于管理端口下的PC2、PC3、PC4的數(shù)據(jù)轉(zhuǎn)發(fā)流程則與準(zhǔn)入控制器密切相關(guān)。此外,由于PC2、PC3與接入交換機(jī)之間級(jí)聯(lián)著一臺(tái)HUB,其數(shù)據(jù)轉(zhuǎn)發(fā)方式比PC4更為復(fù)雜。
PC4與接入交換機(jī)之間為直連關(guān)系,當(dāng)其初次接入網(wǎng)絡(luò)時(shí),所在的交換機(jī)端口處于隔離VLAN下,此時(shí)PC4僅能訪問(wèn)準(zhǔn)入控制器的MGMT口(管理口)。不過(guò),經(jīng)過(guò)抓包發(fā)現(xiàn),處于隔離VLAN時(shí),PC4雖然無(wú)法對(duì)其網(wǎng)關(guān)發(fā)起訪問(wèn),但可以通過(guò)ARP協(xié)議獲得其網(wǎng)關(guān)的MAC地址。獲取過(guò)程的數(shù)據(jù)流如圖3中的藍(lán)色箭頭所示。
圖3 改造前的數(shù)據(jù)流向
首先由PC4發(fā)出ARP請(qǐng)求,請(qǐng)求其網(wǎng)關(guān)MAC地址,雖然在隔離VLAN123內(nèi)并無(wú)網(wǎng)關(guān)對(duì)其進(jìn)行響應(yīng),但是此時(shí)數(shù)據(jù)包會(huì)從隔離VLAN經(jīng)過(guò)TRUNK鏈路到達(dá)準(zhǔn)入控制器的UNTRUST口,準(zhǔn)入控制器收到該ARP請(qǐng)求后將該ARP請(qǐng)求重新打上VLAN23的標(biāo)簽,并從TRUST口經(jīng)TRUNK鏈路送至核心交換機(jī),核心交換機(jī)收到后立即進(jìn)行ARP響應(yīng),將網(wǎng)關(guān)的MAC地址發(fā)送給準(zhǔn)入控制器,準(zhǔn)入控制器再沿原路將該ARP請(qǐng)求回送給PC4。通過(guò)這種迂回的方式,PC4最終獲取到其網(wǎng)關(guān)10.1.23.254的MAC地址。當(dāng)PC4準(zhǔn)備訪問(wèn)其他地址時(shí),準(zhǔn)入控制器會(huì)攔截該數(shù)據(jù)包,并沿著隔離VLAN推送認(rèn)證頁(yè)面給PC4,若認(rèn)證通過(guò),則準(zhǔn)入控制器會(huì)將其所在的端口切回正常VLAN23。切回正常VLAN后,PC4的數(shù)據(jù)轉(zhuǎn)發(fā)流程與準(zhǔn)入控制器無(wú)關(guān)。
PC2與 PC3通過(guò)HUB與接入交換機(jī)連接。對(duì)于MVG模式而言,只要HUB下有一臺(tái)PC準(zhǔn)入異常,該HUB的上聯(lián)口將始終處于隔離VLAN下。不過(guò)此時(shí)HUB下準(zhǔn)入通過(guò)的PC仍可經(jīng)準(zhǔn)入控制器的轉(zhuǎn)發(fā)而正常上網(wǎng)。例如,圖3中的PC2,雖然與PC3同處于隔離VLAN下,但是在準(zhǔn)入通過(guò)后,其依然可以正常入網(wǎng)。此時(shí)的數(shù)據(jù)流向與PC4準(zhǔn)入不合格時(shí)通過(guò)ARP請(qǐng)求其網(wǎng)關(guān)MAC地址的流向基本類(lèi)似,也是由準(zhǔn)入控制器做迂回轉(zhuǎn)發(fā)。PC2準(zhǔn)入合格后的數(shù)據(jù)流向見(jiàn)圖3中的黃色箭頭部分。PC3由于準(zhǔn)入不通過(guò),當(dāng)其數(shù)據(jù)包到達(dá)準(zhǔn)入控制器后會(huì)被直接攔截并丟棄。
如上文所述,若將準(zhǔn)入控制器或者核心交換機(jī)上的IRF獨(dú)立配置,二者都不存在配置問(wèn)題。因此推測(cè)可能是進(jìn)行了IRF改造后,某個(gè)環(huán)節(jié)切斷或者改變了準(zhǔn)入系統(tǒng)數(shù)據(jù)流的走向。在對(duì)PC2進(jìn)一步分析后發(fā)現(xiàn),雖然網(wǎng)絡(luò)改造后PC2無(wú)法ping通其網(wǎng)關(guān),但是查看其ARP表,卻發(fā)現(xiàn)PC2上能正常學(xué)習(xí)到網(wǎng)關(guān)MAC地址。隨后,本文在PC2的轉(zhuǎn)發(fā)路徑上設(shè)置了三個(gè)鏡像抓包點(diǎn),分別位于接入交換機(jī)、核心交換機(jī)、準(zhǔn)入控制器UNTRUST口。通過(guò)抓包跟蹤發(fā)現(xiàn):PC2發(fā)往網(wǎng)關(guān)的ICMP數(shù)據(jù)包(ping包)到了核心交換機(jī)后就無(wú)法繼續(xù)向準(zhǔn)入控制器的UNTRUST口進(jìn)行轉(zhuǎn)發(fā),同時(shí)PC2對(duì)外網(wǎng)段數(shù)據(jù)以及準(zhǔn)入控制器10.1.13.100進(jìn)行訪問(wèn)的數(shù)據(jù)包也在核心交換機(jī)處被截?cái)?。正是由于該截?cái)鄤?dòng)作導(dǎo)致了PC2在準(zhǔn)入符合要求的情況下無(wú)法訪問(wèn)網(wǎng)關(guān)和準(zhǔn)入控制器。
為了找出改造后核心交換機(jī)截?cái)喔綦xVLAN內(nèi)數(shù)據(jù)包的原因,本文還原了改造前的網(wǎng)絡(luò)環(huán)境,并在核心交換機(jī)處繼續(xù)進(jìn)行數(shù)據(jù)抓包,然后與改造后同樣節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行比對(duì)分析。通過(guò)對(duì)比,改造前后從PC2發(fā)往外網(wǎng)的數(shù)據(jù)包目的MAC地址(網(wǎng)關(guān)MAC地址)發(fā)生了改變。進(jìn)一步地對(duì)核心交換機(jī)進(jìn)行查看后發(fā)現(xiàn),經(jīng)過(guò)IRF虛擬化改造后,核心交換機(jī)上所有VLAN的MAC地址都統(tǒng)一成一個(gè)地址,而正是這種改變觸發(fā)了核心交換機(jī)對(duì)數(shù)據(jù)包的丟棄。
改造前,由于核心交換機(jī)做了VRRP配置,故業(yè)務(wù)VLAN的網(wǎng)關(guān)MAC地址為VRRP虛擬MAC地址,與對(duì)應(yīng)的隔離VLAN的MAC地址不同。當(dāng)PC2要通過(guò)隔離VLAN發(fā)送去往外網(wǎng)的數(shù)據(jù)包時(shí),會(huì)按IP數(shù)據(jù)包的基本封裝流程將數(shù)據(jù)包中的目的MAC地址封裝為業(yè)務(wù)網(wǎng)關(guān)MAC地址,核心交換機(jī)在隔離VLAN內(nèi)收到數(shù)據(jù)包后檢查其MAC地址,發(fā)現(xiàn)與該隔離VLAN MAC地址不同,因此僅做二層轉(zhuǎn)發(fā)操作而將數(shù)據(jù)包發(fā)往準(zhǔn)入控制器的UNTRUST口,所以數(shù)據(jù)能夠繼續(xù)正常流轉(zhuǎn)。
改造后,由于隔離VLAN的MAC地址與業(yè)務(wù)VLAN相同,因此當(dāng)核心交換機(jī)在隔離VLAN收到帶有業(yè)務(wù)VLAN MAC地址的數(shù)據(jù)包時(shí)會(huì)誤認(rèn)為該數(shù)據(jù)包的目的MAC地址就是此隔離VLAN的MAC地址,于是將數(shù)據(jù)包接收下來(lái)。隨后,由于隔離VLAN并未做相關(guān)的三層地址配置,因此核心交換機(jī)不會(huì)對(duì)該數(shù)據(jù)包做三層轉(zhuǎn)發(fā)而是直接丟棄。所以,最終處于隔離VLAN下的PC無(wú)法將數(shù)據(jù)包發(fā)向準(zhǔn)入控制器,因此造成隔離VLAN下的PC無(wú)法入網(wǎng)也無(wú)法訪問(wèn)準(zhǔn)入控制器。
為了解決上述問(wèn)題,首先可以考慮改變準(zhǔn)入控制器的接入模式,例如從MVG模式改為橋接等其他模式。變更準(zhǔn)入模式后,可以不用在交換機(jī)上設(shè)置隔離VLAN,規(guī)避了改造后隔離VLAN與業(yè)務(wù)VLAN上MAC地址一致的問(wèn)題。但是這種解決方式會(huì)引起較大的網(wǎng)絡(luò)調(diào)整,而且導(dǎo)致無(wú)法利用MVG模式本身的一些優(yōu)點(diǎn)。除此之外,人為調(diào)整改造后的VLAN MAC地址也是一種解決思路。不過(guò),通過(guò)咨詢(xún)H3C原廠得知,無(wú)法在核心交換機(jī)上通過(guò)手動(dòng)配置對(duì)VLAN 的MAC地址做單獨(dú)變更。
基于此,在統(tǒng)籌考慮成本、效率等多方面因素的基礎(chǔ)上,本文提出了另一種解決方案:在已實(shí)施IRF虛擬化的情況下,繼續(xù)在核心交換機(jī)的VLAN接口下保留VRRP的虛擬網(wǎng)關(guān)配置,但不讓VRRP協(xié)議實(shí)際生效。這種做法的目的是為了利用虛擬網(wǎng)關(guān)與隔離VLAN的 MAC地址不同的特點(diǎn)來(lái)解決問(wèn)題,而且從用戶(hù)的角度來(lái)看這種做法是完全透明的。經(jīng)過(guò)測(cè)試,采用該方法后,網(wǎng)絡(luò)故障得到成功解決,并且仍然保留了IRF虛擬化以及準(zhǔn)入控制器MVG模式的優(yōu)勢(shì)。
本文通過(guò)抓包實(shí)驗(yàn)、邏輯分析等方法,解決了工程項(xiàng)目中因IRF虛擬化改造導(dǎo)致的網(wǎng)絡(luò)準(zhǔn)入問(wèn)題。該問(wèn)題成因隱蔽,排查過(guò)程耗費(fèi)了較多人力與時(shí)間。因此,在進(jìn)行網(wǎng)絡(luò)改造前,除了需要注意路由交換設(shè)備的配置以外,還要特別留意網(wǎng)絡(luò)中是否存在其他影響數(shù)據(jù)包轉(zhuǎn)發(fā)的設(shè)備,并弄清其數(shù)據(jù)轉(zhuǎn)發(fā)原理,這樣才能避免在改造后給生產(chǎn)環(huán)境帶來(lái)不必要的影響。