實(shí)驗(yàn)詳解:從交換機(jī)配置到路由器子接口實(shí)戰(zhàn))
做網(wǎng)絡(luò)實(shí)驗(yàn)的時(shí)候最怕的不是設(shè)備不會(huì)用而是“感覺(jué)自己配得都對(duì)但數(shù)據(jù)就是不通”。路由器交換與配置綜合實(shí)驗(yàn)一內(nèi)網(wǎng)配置就是一個(gè)非常典型、也非常容易在這種困惑里翻車的實(shí)驗(yàn)。它的目標(biāo)其實(shí)很直白在一臺(tái)路由器和兩臺(tái)交換機(jī)組網(wǎng)的小型內(nèi)網(wǎng)里完成VLAN劃分、交換機(jī)級(jí)聯(lián)、路由器子接口配置最終讓不同VLAN的PC在同一個(gè)內(nèi)網(wǎng)中能正?;ネ?。這篇文章是我在模擬網(wǎng)絡(luò)環(huán)境里完整跑完這個(gè)實(shí)驗(yàn)后的復(fù)盤記錄。我會(huì)把從拓?fù)湓O(shè)計(jì)、IP規(guī)劃到交換機(jī)配置、路由器子接口配置再到連通性驗(yàn)證和排錯(cuò)的全過(guò)程寫出來(lái)。如果你正在做網(wǎng)絡(luò)課程實(shí)驗(yàn)、準(zhǔn)備實(shí)操考核或者剛開始接觸企業(yè)內(nèi)網(wǎng)搭建這篇內(nèi)容可以省掉你大量查資料的時(shí)間。下面開始每一步都可以直接照著操作也可以替換成你自己的IP段和設(shè)備編號(hào)。1. 實(shí)驗(yàn)場(chǎng)景與網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)1.1 先搞清楚內(nèi)網(wǎng)配置要解決什么問(wèn)題很多人在做這個(gè)實(shí)驗(yàn)時(shí)一上來(lái)就開始敲命令結(jié)果敲了一半發(fā)現(xiàn)網(wǎng)段、VLAN、端口全對(duì)不上又回頭重新看拓?fù)洹_@個(gè)實(shí)驗(yàn)最核心的邏輯不是“把設(shè)備配置到能亮燈”而是搞清楚內(nèi)網(wǎng)里廣播域和三層轉(zhuǎn)發(fā)的關(guān)系。先看需求。假設(shè)某個(gè)小型公司要搭建內(nèi)部網(wǎng)絡(luò)里面有研發(fā)部和財(cái)務(wù)部?jī)蓚€(gè)部門。這兩個(gè)部門不能直接處在同一個(gè)廣播域里否則部門之間的廣播流量互相干擾也沒(méi)有任何訪問(wèn)控制邊界。所以常規(guī)做法是劃分VLAN研發(fā)部放在VLAN 10財(cái)務(wù)部放在VLAN 20。但VLAN一劃分問(wèn)題也跟著來(lái)了二層交換機(jī)天然不能跨VLAN轉(zhuǎn)發(fā)數(shù)據(jù)同一個(gè)VLAN內(nèi)的PC能互訪不同VLAN的PC之間卻互相看不到。要讓它們能通信就必須引入三層設(shè)備也就是路由器。換句話說(shuō)這個(gè)實(shí)驗(yàn)的本質(zhì)是先用VLAN把內(nèi)網(wǎng)切成多個(gè)隔離的二層廣播域再用路由器把這些廣播域在邏輯上重新連通。整個(gè)過(guò)程必須按“先二層、后三層”的思路推進(jìn)先讓交換機(jī)側(cè)把VLAN和Trunk理清楚再讓路由器側(cè)終結(jié)VLAN、提供網(wǎng)關(guān)最終整張內(nèi)網(wǎng)才能轉(zhuǎn)起來(lái)。1.2 拓?fù)浣泳€與設(shè)備選型思路實(shí)驗(yàn)環(huán)境中不必追求花哨的機(jī)型關(guān)鍵是把角色分清楚。我用了一臺(tái)路由器、兩臺(tái)交換機(jī)、四臺(tái)PC下面按“三層核心、二層接入、終端接入”三個(gè)層級(jí)來(lái)規(guī)劃。連接關(guān)系如下┌──────────┐ │ R1 │ └────┬─────────┘ │ GE0/0/0Trunk │ ┌───────┴────────┐ │ SW1 │ └──┬───┬───┬────┘ │ │ │ PC1 PC2 │ GE0/0/4Trunk 級(jí)聯(lián) │ ┌───────┴──────┐ │ SW2 │ └──┬───┬───────┘ │ │ PC3 PC4具體接線方式為R1的GE0/0/0連接SW1的GE0/0/24SW1的GE0/0/1連接PC1GE0/0/2連接PC2GE0/0/4連接SW2的GE0/0/24SW2的GE0/0/1連接PC3GE0/0/2連接PC4。為什么要用兩臺(tái)交換機(jī)而不是一臺(tái)這個(gè)設(shè)計(jì)不是多此一舉。如果只有一臺(tái)交換機(jī)VLAN和Trunk的驗(yàn)證范圍只局限在單設(shè)備內(nèi)很多人在真實(shí)項(xiàng)目里遇到的“交換機(jī)級(jí)聯(lián)后數(shù)據(jù)不通”的問(wèn)題根本暴露不出來(lái)。加一臺(tái)交換機(jī)之后PC1到PC3要跨交換機(jī)通信PC2到PC4也要跨交換機(jī)通信Trunk鏈路是實(shí)驗(yàn)里很重要的一環(huán)必須練到。1.3 IP 與 VLAN 規(guī)劃表把規(guī)劃寫清楚再動(dòng)手是整個(gè)實(shí)驗(yàn)里最值的習(xí)慣。我按部門、網(wǎng)段、VLAN、網(wǎng)關(guān)、設(shè)備接口五個(gè)維度做了下面這張表部門網(wǎng)段VLAN網(wǎng)關(guān)接入交換機(jī)端口對(duì)應(yīng)PC研發(fā)部192.168.10.0/24VLAN 10192.168.10.1SW1 GE0/0/1、SW2 GE0/0/1PC1、PC3財(cái)務(wù)部192.168.20.0/24VLAN 20192.168.20.1SW1 GE0/0/2、SW2 GE0/0/2PC2、PC4PC的IP地址分配如下終端IP地址子網(wǎng)掩碼網(wǎng)關(guān)PC1192.168.10.10255.255.255.0192.168.10.1PC2192.168.10.20255.255.255.0192.168.10.1PC3192.168.20.10255.255.255.0192.168.20.1PC4192.168.20.20255.255.255.0192.168.20.1這里解釋一下規(guī)劃的思路內(nèi)網(wǎng)地址選用192.168.0.0/16這個(gè)私有地址段不會(huì)與公網(wǎng)沖突適合實(shí)驗(yàn)每個(gè)部門單獨(dú)用一段/24子網(wǎng)能容納254臺(tái)主機(jī)規(guī)模上完全夠用網(wǎng)關(guān)統(tǒng)一取每個(gè)子網(wǎng)的第一個(gè)地址也就是.1這是業(yè)界約定俗成的習(xí)慣便于記憶和排查。VLAN號(hào)取10和20也只是為了讓網(wǎng)段和VLAN之間有一個(gè)直觀的對(duì)應(yīng)關(guān)系實(shí)際項(xiàng)目中自然可以根據(jù)部門結(jié)構(gòu)靈活調(diào)整。2. 交換機(jī)側(cè)配置VLAN 劃分與 Trunk 級(jí)聯(lián)2.1 交換機(jī)基礎(chǔ)初始化拿到一臺(tái)交換機(jī)第一件事不是急著配VLAN而是把設(shè)備基礎(chǔ)環(huán)境理干凈。我建議按“改設(shè)備名、關(guān)日志提示、批量建VLAN”這個(gè)順序來(lái)。下面以SW1為例整體配置流程如下Device system-view [Device] sysname SW1 [SW1] undo info-center enable [SW1] vlan batch 10 20 [SW1] quit這里每一句都有它存在的意義。sysname SW1是把設(shè)備重命名否則多臺(tái)交換機(jī)同時(shí)開起來(lái)幾個(gè)命令行窗口全是默認(rèn)設(shè)備名你根本分不清自己在操作哪臺(tái)設(shè)備。undo info-center enable用來(lái)關(guān)閉系統(tǒng)日志和告警信息彈出這個(gè)操作在實(shí)際調(diào)試時(shí)非常實(shí)用否則設(shè)備一旦有接口up、down或者協(xié)議狀態(tài)變化信息就會(huì)不停打印在命令行界面上直接干擾輸入。vlan batch 10 20則是一次性創(chuàng)建VLAN 10和VLAN 20不用進(jìn)入VLAN視圖一個(gè)個(gè)創(chuàng)建效率更高。SW2的初始化與SW1完全相同只需要把sysname換成SW2。所有設(shè)備建議都做同樣的基礎(chǔ)初始化這也是職業(yè)習(xí)慣一個(gè)連設(shè)備名都不改的網(wǎng)絡(luò)工程師在真實(shí)項(xiàng)目里很難讓人放心。2.2 把 PC 接入端口劃分到對(duì)應(yīng) VLAN交換機(jī)上連接PC、打印機(jī)、服務(wù)器這類終端設(shè)備的端口通常配置為Access模式。Access端口的特點(diǎn)是只屬于一個(gè)VLAN發(fā)出的幀不帶802.1Q標(biāo)簽這正好符合終端設(shè)備“不感知VLAN標(biāo)簽”的特性。SW1的端口劃分如下[SW1] interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1-GigabitEthernet0/0/1] quit [SW1] interface GigabitEthernet 0/0/2 [SW1-GigabitEthernet0/0/2] port link-type access [SW1-GigabitEthernet0/0/2] port default vlan 20 [SW1-GigabitEthernet0/0/2] quitSW2也一樣處理把GE0/0/1劃入VLAN 10GE0/0/2劃入VLAN 20。操作中有個(gè)細(xì)節(jié)必須注意在多數(shù)廠商交換機(jī)上第一步一定要先把端口鏈路類型改成access然后再設(shè)置default vlan。如果順序反了部分設(shè)備會(huì)報(bào)錯(cuò)或者說(shuō)端口當(dāng)前是Hybrid類型不允許直接設(shè)置PVID。這一點(diǎn)是很多人第一次做實(shí)驗(yàn)被卡住的地方而且報(bào)錯(cuò)信息往往一閃而過(guò)很容易漏看。劃分完成后用display vlan命令檢查一下確認(rèn)VLAN 10下已經(jīng)有GE0/0/1VLAN 20下已經(jīng)有GE0/0/2。這一步雖然簡(jiǎn)單但能避免后面連通性測(cè)試時(shí)返工。2.3 級(jí)聯(lián)口與上聯(lián)口的 Trunk 配置Trunk端口承擔(dān)的是“交換機(jī)之間互聯(lián)”和“交換機(jī)與路由器上聯(lián)”的職責(zé)。Trunk鏈路與Access鏈路最大的區(qū)別在于Trunk鏈路上傳輸?shù)膸瑫?huì)打上VLAN標(biāo)簽這樣交換機(jī)收到一個(gè)幀時(shí)能立刻識(shí)別它屬于哪個(gè)VLAN。SW1上有兩個(gè)口需要配置Trunk。一個(gè)是連接路由器的GE0/0/24另一個(gè)是級(jí)聯(lián)SW2的GE0/0/4。配置如下[SW1] interface GigabitEthernet 0/0/24 [SW1-GigabitEthernet0/0/24] port link-type trunk [SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/24] quit [SW1] interface GigabitEthernet 0/0/4 [SW1-GigabitEthernet0/0/4] port link-type trunk [SW1-GigabitEthernet0/0/4] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/4] quitSW2上連接SW1的GE0/0/24也做同樣配置[SW2] interface GigabitEthernet 0/0/24 [SW2-GigabitEthernet0/0/24] port link-type trunk [SW2-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW2-GigabitEthernet0/0/24] quitTrunk配置里有幾個(gè)隱藏的坑。第一個(gè)是allow-pass vlan后面到底寫哪些VLAN。很多教材會(huì)寫成permit vlan all但這實(shí)際上是個(gè)容易埋雷的習(xí)慣。實(shí)驗(yàn)中明確只放行VLAN 10和20就夠了都放行反而掩蓋了真實(shí)項(xiàng)目里“VLAN放行不精確”的問(wèn)題。第二個(gè)坑是兩端Trunk的放行列表必須一致。SW1上GE0/0/4放行了VLAN 10和20SW2的GE0/0/24也必須放行同樣的VLAN一旦某一端漏配跨交換機(jī)的VLAN通信就會(huì)中斷。第三個(gè)坑是配置好Trunk之后最好用display port vlan命令確認(rèn)一下端口類型、PVID和允許通過(guò)的VLAN列表而不是想當(dāng)然認(rèn)為命令輸對(duì)了就萬(wàn)事大吉。3. 路由器側(cè)配置子接口終結(jié) VLAN 實(shí)現(xiàn)三層互通3.1 為什么需要路由器為什么選“單臂路由”交換機(jī)配置到目前為止只解決了“同一VLAN內(nèi)的PC能互訪”因?yàn)槎咏粨Q機(jī)的轉(zhuǎn)發(fā)機(jī)制只認(rèn)MAC地址和VLAN標(biāo)簽它沒(méi)法在一個(gè)幀的目的地是另一個(gè)VLAN時(shí)把這個(gè)幀正確地轉(zhuǎn)發(fā)出去。要讓VLAN 10里的PC1去訪問(wèn)VLAN 20里的PC3就必須有一個(gè)三層設(shè)備來(lái)根據(jù)目標(biāo)IP地址做路由決策這個(gè)設(shè)備通常就是路由器。但要路由器接進(jìn)這個(gè)內(nèi)網(wǎng)有一個(gè)設(shè)計(jì)問(wèn)題要處理。交換機(jī)把PC分成了VLAN 10和VLAN 20路由器得有辦法同時(shí)接觸到這兩個(gè)VLAN。最簡(jiǎn)單的思路是用兩個(gè)物理接口分別接交換機(jī)的兩個(gè)Access口一個(gè)進(jìn)VLAN 10一個(gè)進(jìn)VLAN 20相當(dāng)于用兩個(gè)“網(wǎng)口”各自帶一個(gè)部門網(wǎng)關(guān)。這個(gè)方案在小型實(shí)驗(yàn)里可行但代價(jià)是占用了路由器的兩個(gè)物理端口和交換機(jī)的兩個(gè)上聯(lián)口如果以后部門擴(kuò)到五個(gè)甚至十個(gè)物理接口根本不夠用。更合理的方案是“單臂路由”也就是子接口方式。讓交換機(jī)的上聯(lián)口配置成Trunk把VLAN 10和VLAN 20的幀都通過(guò)802.1Q標(biāo)簽標(biāo)記后送到路由器的同一個(gè)物理接口上路由器在這個(gè)物理接口下創(chuàng)建多個(gè)邏輯子接口每個(gè)子接口負(fù)責(zé)終結(jié)一個(gè)VLAN、配置一個(gè)網(wǎng)關(guān)地址。物理接口只有一個(gè)邏輯接口卻可以掛很多個(gè)這種設(shè)計(jì)更貼近真實(shí)企業(yè)網(wǎng)絡(luò)中用三層設(shè)備做網(wǎng)關(guān)的做法。3.2 子接口配置全過(guò)程路由器側(cè)的操作核心是子接口。這里需要逐條看因?yàn)橛腥龡l命令缺一不可。配置步驟如下Device system-view [Device] sysname R1 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] undo shutdown [R1-GigabitEthernet0/0/0] quit [R1] interface GigabitEthernet 0/0/0.10 [R1-GigabitEthernet0/0/0.10] dot1q termination vid 10 [R1-GigabitEthernet0/0/0.10] ip address 192.168.10.1 255.255.255.0 [R1-GigabitEthernet0/0/0.10] arp broadcast enable [R1-GigabitEthernet0/0/0.10] quit [R1] interface GigabitEthernet 0/0/0.20 [R1-GigabitEthernet0/0/0.20] dot1q termination vid 20 [R1-GigabitEthernet0/0/0.20] ip address 192.168.20.1 255.255.255.0 [R1-GigabitEthernet0/0/0.20] arp broadcast enable [R1-GigabitEthernet0/0/0.20] quitGE0/0/0.10的命名意思是“物理口GE0/0/0上的第10號(hào)邏輯子接口”編號(hào)可以隨便寫但建議和VLAN ID對(duì)應(yīng)起來(lái)便于識(shí)別。dot1q termination vid 10的含義是告訴子接口只處理帶有VLAN 10標(biāo)簽的幀這是子接口能夠區(qū)分不同VLAN的關(guān)鍵。ip address命令則是給這個(gè)子接口配置IP地址同時(shí)也就定義了對(duì)應(yīng)VLAN的網(wǎng)關(guān)地址。arp broadcast enable這條命令在實(shí)驗(yàn)環(huán)境中尤其重要。子接口默認(rèn)不處理廣播幀如果不開這個(gè)功能PC發(fā)出“誰(shuí)是這個(gè)網(wǎng)段的網(wǎng)關(guān)”的ARP請(qǐng)求時(shí)路由器不會(huì)響應(yīng)PC就會(huì)一直認(rèn)為網(wǎng)關(guān)不可達(dá)表現(xiàn)出來(lái)就是“網(wǎng)關(guān)配了卻ping不通”。很多新手配置單臂路由失敗90%的問(wèn)題就出在這里。三條命令的配置順序不能亂。先要進(jìn)入子接口視圖再配置VLAN終結(jié)再配IP最后打開ARP廣播處理。如果先配了IP再配置dot1q部分設(shè)備的配置不會(huì)報(bào)錯(cuò)但邏輯上顯得很混亂排錯(cuò)時(shí)也不容易理清思路。3.3 檢查路由表和接口狀態(tài)子接口配置完之后不要急著去PC上ping先做靜態(tài)檢查。在R1上執(zhí)行display ip routing-table這個(gè)時(shí)候路由表里應(yīng)該出現(xiàn)兩條直連路由192.168.10.0/24 Direct GE0/0/0.10 192.168.20.0/24 Direct GE0/0/0.20看到這兩條條目說(shuō)明路由器的兩個(gè)子接口都已經(jīng)配好IP并且處于up狀態(tài)路由器已經(jīng)知道自己連接了哪個(gè)網(wǎng)段。通過(guò)display current-configuration interface GigabitEthernet 0/0/0.20可以進(jìn)一步確認(rèn)dot1q termination vid和IP地址沒(méi)有寫錯(cuò)。這里還要檢查一個(gè)容易被忽略的點(diǎn)物理接口GE0/0/0本身不能被配置IP地址。一旦物理口上配置了一個(gè)普通IP它的子接口可能不會(huì)正常工作邏輯上會(huì)造成干擾。所以在我的配置里只對(duì)物理接口執(zhí)行undo shutdown將它激活然后直接把所有IP都放在子接口上。4. 終端配置與連通性測(cè)試4.1 PC 端 IP 和網(wǎng)關(guān)配置模擬器的圖形界面里配置PC非常簡(jiǎn)單雙擊PC圖標(biāo)在網(wǎng)卡配置頁(yè)填上IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)就行。關(guān)鍵是網(wǎng)關(guān)地址必須填對(duì)PC1和PC2屬于VLAN 10網(wǎng)關(guān)填192.168.10.1PC3和PC4屬于VLAN 20網(wǎng)關(guān)填192.168.20.1。判斷一個(gè)主機(jī)是否需要走網(wǎng)關(guān)就看目標(biāo)IP和本機(jī)IP是否在同一個(gè)網(wǎng)段。PC1要訪問(wèn)PC3目標(biāo)IP是192.168.20.10和本機(jī)192.168.10.10不在一個(gè)網(wǎng)段所以PC1先把數(shù)據(jù)包發(fā)給網(wǎng)關(guān)192.168.10.1由路由器決定下一步往哪走。這個(gè)流程是整個(gè)實(shí)驗(yàn)的“題眼”不理解它后面測(cè)連通性的時(shí)候就會(huì)瞎猜。4.2 分層次做連通性測(cè)試配置完成后測(cè)試順序很重要。我的習(xí)慣是由近到遠(yuǎn)逐層驗(yàn)證不要一上來(lái)就想著跨VLAN兩通。第一步測(cè)試網(wǎng)關(guān)。PC1上ping 192.168.10.1如果能通說(shuō)明PC到網(wǎng)關(guān)的二層鏈路和路由器的VLAN終結(jié)都是正常的。第二步測(cè)試同VLAN互通。PC1上ping 192.168.10.20也就是PC2。這兩個(gè)PC都在VLAN 10數(shù)據(jù)包由SW1直接二層轉(zhuǎn)發(fā)不經(jīng)過(guò)路由器。通了說(shuō)明交換機(jī)的Access端口劃分正確。第三步測(cè)試跨VLAN互通。PC1上ping 192.168.20.10也就是PC3。注意PC3掛在SW2下面數(shù)據(jù)包要經(jīng)過(guò)SW1到SW2的Trunk級(jí)聯(lián)鏈路再?gòu)腟W2的Access口出去最終到達(dá)PC3。這個(gè)測(cè)試通了說(shuō)明交換機(jī)級(jí)聯(lián)Trunk和路由器子接口三層轉(zhuǎn)發(fā)都正確。第四步測(cè)試跨交換機(jī)跨VLAN用PC2去ping PC4也就是192.168.20.20。這一步把鏈路中的每一個(gè)環(huán)節(jié)都再壓了一遍基本可以把內(nèi)網(wǎng)的連通性完整覆蓋。下面是完整的測(cè)試用例表測(cè)試對(duì)象執(zhí)行命令預(yù)期結(jié)果PC1 → 網(wǎng)關(guān)ping 192.168.10.1通PC1 → PC2同VLAN同交換機(jī)ping 192.168.10.20通PC1 → PC3跨VLAN跨交換機(jī)ping 192.168.20.10通PC2 → PC4跨VLAN跨交換機(jī)ping 192.168.20.20通PC3 → PC1反向跨VLANping 192.168.10.10通測(cè)試時(shí)注意一個(gè)現(xiàn)象首次ping一個(gè)目標(biāo)第一個(gè)包經(jīng)常出現(xiàn)超時(shí)然后才通。這是正?,F(xiàn)象因?yàn)榈谝淮蝡ing之前PC要先發(fā)送ARP請(qǐng)求解析目標(biāo)或網(wǎng)關(guān)的MAC地址解析完成后ICMP包才能發(fā)出。如果看到“第一包超時(shí)、后續(xù)包全通”不要誤以為配置有問(wèn)題。4.3 觀察 802.1Q 標(biāo)簽與 ARP 交互如果只滿足于“能通就行”會(huì)錯(cuò)過(guò)這個(gè)實(shí)驗(yàn)最有價(jià)值的部分。我強(qiáng)烈建議在SW1與R1相連的鏈路上抓包觀察一下模擬器一般自帶抓包功能。在PC1上ping PC3然后在抓包里觀察從PC1發(fā)出的幀到達(dá)R1之前在Trunk鏈路上會(huì)帶有一個(gè)802.1Q標(biāo)簽標(biāo)簽里的VLAN ID應(yīng)該是10R1響應(yīng)的幀同樣也帶802.1Q標(biāo)簽。而在連PC1的Access口上抓包能看到幀是干凈的沒(méi)有802.1Q標(biāo)簽。這就是Access端口剝離標(biāo)簽、Trunk端口保留標(biāo)簽的直觀證據(jù)。再看ARP交互跨VLAN通信的第一個(gè)包往往是ARP請(qǐng)求這個(gè)請(qǐng)求不是發(fā)給目標(biāo)PC而是發(fā)給網(wǎng)關(guān)。觀察ARP請(qǐng)求的目標(biāo)MAC會(huì)發(fā)現(xiàn)它是PC1所在網(wǎng)段網(wǎng)關(guān)192.168.10.1的MAC請(qǐng)求幀的源MAC是PC1的MAC。真正到PC3的ICMP包是路由器通過(guò)子接口GE0/0/0.20重新封裝后發(fā)出的源MAC已經(jīng)換成了路由器的MAC。這個(gè)細(xì)節(jié)能幫你徹底理解“網(wǎng)關(guān)”在三層通信里的角色。5. 常見問(wèn)題與排錯(cuò)實(shí)錄5.1 子接口配了還是 ping 不通網(wǎng)關(guān)我見過(guò)太多人卡在這個(gè)問(wèn)題上。拓?fù)?、IP、VLAN看起來(lái)都對(duì)但PC ping網(wǎng)關(guān)就是不同。按經(jīng)驗(yàn)優(yōu)先查下面幾個(gè)點(diǎn)。第一子接口狀態(tài)。在路由器上用display ip interface brief查看GE0/0/0.10和GE0/0/0.20有沒(méi)有處于up狀態(tài)。如果子接口down可能是物理口沒(méi)激活或者dot1q配置有問(wèn)題。第二ARP是否響應(yīng)。在R1上執(zhí)行display arp看看有沒(méi)有學(xué)習(xí)到PC1的IP和MAC映射。如果路由器的ARP表里能看到PC1說(shuō)明PC發(fā)出的ARP請(qǐng)求已經(jīng)到達(dá)路由器如果看不到問(wèn)題大概率出在鏈路或交換機(jī)Trunk配置。第三檢查常被遺忘的arp broadcast enable。如果子接口配置里漏了這條命令PC發(fā)ARP請(qǐng)求路由器收到后不會(huì)回應(yīng)PC會(huì)一直顯示“請(qǐng)求超時(shí)”。添加命令后立刻能通。第四檢查交換機(jī)上連路由器的那個(gè)口是不是真的Trunk。如果這個(gè)口配成了Access那么只有一個(gè)VLAN的幀能到達(dá)路由器另一個(gè)VLAN的PC自然ping不通網(wǎng)關(guān)。5.2 同 VLAN 能通跨 VLAN 不通這個(gè)現(xiàn)象說(shuō)明二層鏈路問(wèn)題不大因?yàn)橥籚LAN的包走的是交換機(jī)轉(zhuǎn)發(fā)能通就表示Access口配置正確、級(jí)聯(lián)鏈路正常。問(wèn)題集中在三層。按以下順序排查。先看R1路由表確認(rèn)192.168.10.0/24和192.168.20.0/24兩條直連路由都在。再看PC的網(wǎng)關(guān)配置PC1網(wǎng)關(guān)是不是192.168.10.1可別配成了192.168.20.1。還有一個(gè)很容易踩的坑子接口的dot1q termination vid和交換機(jī)上對(duì)應(yīng)VLAN不匹配。比如交換機(jī)上PC1在VLAN 10路由器子接口卻配了dot1q termination vid 20VLAN標(biāo)簽對(duì)不上路由器不認(rèn)賬數(shù)據(jù)包自然就丟了。5.3 兩臺(tái)交換機(jī)級(jí)聯(lián)后“一邊通一邊不通”PC1和PC2都接在SW1上雙方通信正常PC3接在SW2上PC1去ping PC3就是不通。這種“一側(cè)通一側(cè)不通”的現(xiàn)象十有八九是SW2的上聯(lián)Trunk口放行VLAN沒(méi)配全。很多人只配了SW1的GE0/0/4為Trunk忘了同步配置SW2的GE0/0/24或者SW2只放行了VLAN 10沒(méi)放行VLAN 20。使用display port vlan命令查看SW2的GE0/0/24如果Trunk口顯示的allowed VLAN列表里沒(méi)有VLAN 20馬上就能定位問(wèn)題。記住一個(gè)原則兩端Trunk的放行列表必須一致這不是可選項(xiàng)是必選項(xiàng)。5.4 常用排錯(cuò)命令速查表排錯(cuò)的時(shí)候與其一句一句猜不如把命令形成條件反射。下表是我做這類實(shí)驗(yàn)時(shí)最常用的一組合法檢查命令場(chǎng)景檢查命令關(guān)鍵看什么交換機(jī)VLAN劃分display vlan端口是否在對(duì)應(yīng)VLAN下Trunk放行檢查display port vlan端口類型、允許通過(guò)的VLAN列表路由器接口狀態(tài)display ip interface brief子接口是否up路由器路由表display ip routing-table兩個(gè)VLAN網(wǎng)段是否有直連路由路由器ARP表display arp是否學(xué)習(xí)到各PC的MAC地址單接口配置回查display current-configuration interface GigabitEthernet 0/0/0.20dot1q termination、IP、arp broadcast是否齊全熟練用好這張表基本的二層三層鏈路問(wèn)題十分鐘內(nèi)都能定位。6. 實(shí)驗(yàn)完成后的幾點(diǎn)體會(huì)與后續(xù)延伸6.1 做這個(gè)實(shí)驗(yàn)最容易漏掉的三件事第一規(guī)劃永遠(yuǎn)先行。我在完成實(shí)驗(yàn)后最大的體會(huì)是所有看起來(lái)“莫名其妙”的問(wèn)題幾乎都源于IP規(guī)劃表和實(shí)際配置不一致。先畫拓?fù)湓倭斜砀褡詈蟛胚M(jìn)命令行這個(gè)順序一旦養(yǎng)成習(xí)慣效率會(huì)高很多。第二子接口必須開arp broadcast enable。這是模擬器環(huán)境中單臂路由配置的最高頻坑點(diǎn)。命令本身很簡(jiǎn)單但因?yàn)樗粚儆凇暗刂放渲谩边@個(gè)直觀步驟很多初學(xué)者根本意識(shí)不到要配。這里也提醒一下不同版本的模擬器行為可能有差異但無(wú)論如何配上這行命令都不會(huì)錯(cuò)。第三配置完一定要保存。實(shí)驗(yàn)環(huán)境里很多人敲完命令就關(guān)了軟件下次打開發(fā)現(xiàn)所有配置都沒(méi)了。交換機(jī)、路由器都要執(zhí)行save命令保存配置PC端的IP配置在模擬器里也要確認(rèn)已經(jīng)寫入各PC的配置文件中。這個(gè)習(xí)慣帶到真實(shí)設(shè)備上更是必須的。6.2 從這個(gè)實(shí)驗(yàn)到真實(shí)內(nèi)網(wǎng)還差什么別看這個(gè)實(shí)驗(yàn)規(guī)模不大它已經(jīng)把企業(yè)內(nèi)網(wǎng)的核心鏈路摸了一遍。真實(shí)環(huán)境里可能還會(huì)在這個(gè)基礎(chǔ)上增加DHCP服務(wù)讓PC自動(dòng)獲取地址增加ACL限制研發(fā)部和財(cái)務(wù)部之間的互相訪問(wèn)增加VLAN間策略路由控制不同業(yè)務(wù)流量的走向或者把路由器替換成三層交換機(jī)用VLANIF方式來(lái)承擔(dān)網(wǎng)關(guān)。這些擴(kuò)展最終都建立在今天這個(gè)實(shí)驗(yàn)基礎(chǔ)上——VLAN劃分、Trunk透?jìng)?、三層終結(jié)。只要這幾個(gè)底層概念扎實(shí)后面學(xué)習(xí)其他網(wǎng)絡(luò)技術(shù)就會(huì)順很多。這個(gè)實(shí)驗(yàn)做完你再去理解“外網(wǎng)配置”或者“路由協(xié)議配置”時(shí)就不會(huì)再被內(nèi)網(wǎng)底子拖后腿了。希望這份記錄能讓你少走一點(diǎn)我走過(guò)的彎路。