連接AP的VLAN配置:PVID與Trunk詳解)
晚上九點(diǎn)多接到電話說分公司新裝的室內(nèi) AP 全部上線但無線終端連著 Wi-Fi 卻拿不到 IP 地址。趕到現(xiàn)場一看VLAN 都建了配置也照著模板敲了AP 的管理地址也通了可業(yè)務(wù)就是不通。最后排查出一個很典型的問題接入層交換機(jī)連接 AP 的端口被配成了普通 Access 口只允許一個 VLAN 通過而 AP 上來的業(yè)務(wù)流量帶著另一個 VLAN 的標(biāo)簽還沒走進(jìn)交換機(jī)就被攔了下來。類似的問題在現(xiàn)網(wǎng)里出現(xiàn)的頻率比想象中高得多。很多工程師一聽到“給 AP 配 VLAN”第一反應(yīng)就是把連接 AP 的端口劃進(jìn)某個 VLAN。這個思路用在電腦、打印機(jī)上沒問題放在 AP 上就錯了。AP 端口不是普通終端端口它同時承載兩部分流量AP 自身的管理流量以及無線用戶的業(yè)務(wù)流量。這兩部分的標(biāo)簽規(guī)則完全不同配置時不能混為一談。下面從接入層交換機(jī)的 VLAN 基礎(chǔ)講起重點(diǎn)說清楚三件事AP 端口為什么不能按 Access 口來配PVID、Tagged 列表、轉(zhuǎn)發(fā)模式到底是什么關(guān)系以及配完之后如何逐跳驗證、如何排查。1. 接入層交換機(jī)的 VLAN 配置本質(zhì)是給流量“定規(guī)則”1.1 為什么 VLAN 問題總是先在接入層暴露接入層交換機(jī)是離終端最近的一道設(shè)備也是過去最容易“隨便配”的一道設(shè)備。早期網(wǎng)絡(luò)規(guī)模小一臺傻瓜交換機(jī)把所有人接在一個網(wǎng)段談不上 VLAN。后來規(guī)模變大需要隔離廣播域、區(qū)分訪客和辦公、給不同部門劃分網(wǎng)段接入層才開始全面支持 VLAN。但接入層也有它特殊的一面它面對的是身份各異的終端。打印機(jī)要在一個 VLAN辦公電腦在另一個 VLAN攝像頭可能又要單拉一個 VLAN。單個端口配錯了影響只是一個點(diǎn)可接入層往往同時是無線 AP 的匯聚點(diǎn)一個 AP 端口背后是幾十個無線用戶這個端口錯了影響面就是一片。我見過不少這樣的案例交換機(jī)所有 VLAN 都建了接口也劃了但無線終端一上來就斷網(wǎng)排查到最后發(fā)現(xiàn)問題既不在 AC 上也不在 AP 上而是接入層到匯聚層的 Trunk 漏放行了業(yè)務(wù) VLAN。接入層的 VLAN 配置看起來簡單實際上要求你同時理解端口類型、標(biāo)簽語義、以及上游鏈路是否放行了對應(yīng) VLAN。1.2 Access、Trunk、Hybrid 三種端口先分清楚再動手交換機(jī)上所有 VLAN 配置最終都落在端口類型和端口規(guī)則上。最常見的三種端口類型是 Access、Trunk 和 Hybrid。Access 端口只屬于一個 VLAN。從接口收到未打標(biāo)簽的普通幀時交換機(jī)會給它打上這個 VLAN 的標(biāo)簽發(fā)出去時再把標(biāo)簽剝掉。它適合接電腦、打印機(jī)這種只屬于一個 VLAN 的終端。Trunk 端口可以在一條鏈路上傳輸多個 VLAN 的幀幀在鏈路上以帶標(biāo)簽形式傳遞。它適合交換機(jī)之間的級聯(lián)也適合需要同時傳輸多個 VLAN 的場景。Hybrid 端口是華為設(shè)備上比較靈活的端口類型可以分別指定哪些 VLAN 帶標(biāo)簽、哪些 VLAN 不帶標(biāo)簽。它本質(zhì)上是對 Access 和 Trunk 的擴(kuò)展運(yùn)用得當(dāng)可以少用很多物理鏈路但配置思路也更容易亂。這三種端口解決的是同一個問題這條鏈路上哪些幀需要帶標(biāo)簽走哪些幀需要不帶標(biāo)簽走。很多人配 VLAN 時只記命令不理解這個語義于是到了 AP 這種“特殊終端”面前就會卡住。注意判斷一個端口用 Access 還是 Trunk不要只看“對端是不是一臺設(shè)備”要看“這條鏈路上需要傳輸幾種 VLAN 的流量”。2. AP 連接口為什么不能當(dāng)成普通電腦口來配2.1 AP 的流量天然分成管理面和業(yè)務(wù)面一臺企業(yè)級 AP 上線之后它自身和無線控制器之間需要通信這部分被稱為管理面。在瘦 AP 架構(gòu)里管理面通常走 CAPWAP 隧道或廠商私有協(xié)議。無線終端訪問網(wǎng)絡(luò)的流量被稱為業(yè)務(wù)面。業(yè)務(wù)面的轉(zhuǎn)發(fā)方式不同接入交換機(jī)的端口要求也不同。以最常見的本地轉(zhuǎn)發(fā)也叫直接轉(zhuǎn)發(fā)模式為例AP 收到無線終端的業(yè)務(wù)幀之后會從有線口直接發(fā)出去此時業(yè)務(wù)幀帶著無線 SSID 對應(yīng)的 VLAN 標(biāo)簽。而 AP 自身的管理流量通常是未打標(biāo)簽的由交換機(jī)端口的 PVID 決定它屬于哪個 VLAN。于是連接 AP 的這條鏈路上同時出現(xiàn)了兩種標(biāo)簽規(guī)則管理流量一般不打標(biāo)簽由交換機(jī)端口上的 PVID 決定歸屬。業(yè)務(wù)流量按 SSID 規(guī)劃打上對應(yīng)的 VLAN 標(biāo)簽由交換機(jī)端口檢查是否允許該 VLAN 通過。如果將連接 AP 的端口配成 Access交換機(jī)只接收和發(fā)送 PVID 對應(yīng) VLAN 的未打標(biāo)簽幀AP 發(fā)出來的那些帶標(biāo)簽的業(yè)務(wù)幀會被交換機(jī)當(dāng)成非法幀處理無線用戶自然無法獲取地址。這就是“AP 已上線、無線連上但無法上網(wǎng)”的常見原因之一。2.2 瘦 AP、胖 AP以及轉(zhuǎn)發(fā)模式對端口配置的影響很多人容易把瘦 AP 和胖 AP 的差異理解成“配置方式不同”其實更重要的是它們對 VLAN 的處理方式不同。胖 AP 本身具備完整的無線接入功能業(yè)務(wù)流量通常由 AP 直接橋接轉(zhuǎn)發(fā)接入交換機(jī)上需要按業(yè)務(wù) VLAN 規(guī)劃放行。瘦 AP 上線后要注冊到 AC這時要看 AC 上配置的轉(zhuǎn)發(fā)模式本地轉(zhuǎn)發(fā)無線業(yè)務(wù)流量從 AP 的有線口進(jìn)入接入交換機(jī)連接 AP 的端口必須放行業(yè)務(wù) VLAN。隧道轉(zhuǎn)發(fā)無線業(yè)務(wù)流量被 CAPWAP 隧道封裝回傳到 AC 后再進(jìn)入有線網(wǎng)絡(luò)連接 AP 的交換機(jī)端口只需要保證管理 VLAN 能到達(dá) AC業(yè)務(wù) VLAN 不一定需要在 AP 端口放行。很多現(xiàn)網(wǎng)故障就是這兩種模式搞混了。隧道轉(zhuǎn)發(fā)模式的設(shè)備有人在 AP 端口把所有業(yè)務(wù) VLAN 都放行結(jié)果業(yè)務(wù)流量既走隧道又走本地出現(xiàn)環(huán)路或地址沖突本地轉(zhuǎn)發(fā)模式的設(shè)備有人把業(yè)務(wù) VLAN 從端口允許列表里漏掉無線用戶始終拿不到 IP。所以配置交換機(jī)之前先確認(rèn) AC 上這臺 AP 的轉(zhuǎn)發(fā)模式這比背任何命令都重要。2.3 用“PVID Tagged 列表”來理解 AP 端口的轉(zhuǎn)發(fā)要求如果要把 AP 端口的 VLAN 配置總結(jié)成一句話我建議用這個模型PVID 決定的是“未打標(biāo)簽的幀進(jìn)入端口后被劃分到哪個 VLAN”通常用來承載 AP 管理流量。Tagged 列表決定的是“哪些帶標(biāo)簽的幀可以通過這個端口”通常用來承載無線業(yè)務(wù)流量。也就是說一個 AP 端口需要同時扮演兩個角色對管理流量來說它像 Access 口對業(yè)務(wù)流量來說它像 Trunk 口。華為交換機(jī)上的做法就是把端口設(shè)為 Trunk 或 Hybrid再分別配置 PVID 和允許列表。理解了這一點(diǎn)不管面對哪個廠商的設(shè)備你都能找到對應(yīng)的配置項。注意改變端口類型前一定要確認(rèn)會不會影響正在運(yùn)行的業(yè)務(wù)。接入層一旦出現(xiàn)管理地址或默認(rèn) VLAN 的瞬斷受影響的不只是無線還包括同一臺交換機(jī)下掛的所有有線終端。3. 接入層交換機(jī)連接 AP 的配置示例3.1 配之前先確認(rèn)四個信息不要急著敲命令先確認(rèn)四件事AP 管理 VLAN 是幾通常在 DHCP 地址規(guī)劃里有明確答案。AC 管理網(wǎng)段和 AP 管理網(wǎng)段是否相同不同則要考慮三層路由或通過 DHCP option 43 下發(fā) AC 地址。無線業(yè)務(wù)規(guī)劃了幾個 SSID每個 SSID 對應(yīng)哪個業(yè)務(wù) VLAN。AP 上線后的業(yè)務(wù)轉(zhuǎn)發(fā)模式是本地轉(zhuǎn)發(fā)還是隧道轉(zhuǎn)發(fā)。這四個信息只要有任何一個沒確認(rèn)配完都會留下尾巴。尤其是轉(zhuǎn)發(fā)模式最容易被忽略但影響最大。3.2 華為交換機(jī)示例單業(yè)務(wù) VLAN 場景假設(shè) AP 管理 VLAN 是 10無線業(yè)務(wù) VLAN 是 20只有員工辦公一個 SSID。接入層交換機(jī)的上行口已經(jīng)放行了 10 和 20。先創(chuàng)建 VLANvlan batch 10 20再配置連接 AP 的端口interface GigabitEthernet0/0/1 port link-type trunk port trunk pvid vlan 10 port trunk allow-pass vlan 10 20 undo port trunk allow-pass vlan 1把管理 VLAN 10 設(shè)為 PVID把 10 和 20 都加入允許列表。這樣AP 管理流量未打標(biāo)簽會進(jìn)入 VLAN 10無線業(yè)務(wù)流量打 VLAN 20 標(biāo)簽也能通過。3.3 華為交換機(jī)示例多 SSID 多業(yè)務(wù) VLAN 場景如果無線規(guī)劃了員工、訪客、物聯(lián)網(wǎng)三套業(yè)務(wù)分別對應(yīng) VLAN 20、30、40管理 VLAN 仍是 10則配置如下vlan batch 10 20 30 40 interface GigabitEthernet0/0/1 port link-type trunk port trunk pvid vlan 10 port trunk allow-pass vlan 10 20 30 40 undo port trunk allow-pass vlan 1這里要額外提醒一點(diǎn)訪客 VLAN 通常不應(yīng)該與辦公網(wǎng)絡(luò)互通。如果交換機(jī)是三層設(shè)備要在三層 VLANIF 接口上做訪問控制如果接入層只是二層需要在匯聚或核心層的三層接口上控制。AP 端口本身不需要做 ACL它只負(fù)責(zé)讓帶標(biāo)簽的幀能到達(dá)上游三層設(shè)備。3.4 思科、銳捷等設(shè)備的對應(yīng)寫法命令可不一樣但檢查點(diǎn)完全相同。思科交換機(jī)的典型寫法是interface GigabitEthernet0/1 switchport mode trunk switchport trunk native vlan 10 switchport trunk allowed vlan 10,20,30,40 no shutdown銳捷的命令風(fēng)格接近思科interface GigabitEthernet 0/1 switchport mode trunk switchport trunk native vlan 10 switchport trunk allowed vlan 10,20,30,40這里的 native vlan 等同于華為的 PVID含義是“這條 Trunk 上不打標(biāo)簽的幀歸屬哪個 VLAN”。我一般建議寫配置前先把兩行字寫在紙上管理 VLAN 是幾業(yè)務(wù) VLAN 是幾。寫完后逐條對照比敲完命令再反復(fù)查看更高效。注意不同廠商、不同系列交換機(jī)對默認(rèn)允許列表的處理不同。部分華為交換機(jī)默認(rèn)允許 VLAN 1部分版本對新建 Trunk 端口的默認(rèn)行為也有差異。配置前先確認(rèn)默認(rèn)行為把不必要的默認(rèn)放行項顯式去掉能少踩很多坑。4. 配完 AP 端口還要檢查整條鏈路4.1 VLAN 要能從 AP 一路走到網(wǎng)關(guān)和 DHCP 服務(wù)器很多人配好了 AP 端口卻漏了上游。接入層交換機(jī)連接 AP 的端口放行了 10 和 20但接入層到匯聚層的 Trunk 只放行了 10那么業(yè)務(wù) VLAN 20 在上行口就被丟掉了無線用戶照樣無法上網(wǎng)。檢查時要把兩條路徑分別走一遍管理 VLAN 10AP → 接入交換機(jī) AP 端口 → 接入上行口 → 匯聚/核心 → DHCP 服務(wù)器或 AC。業(yè)務(wù) VLAN 20無線終端 → AP → 接入交換機(jī) AP 端口 → 接入上行口 → 匯聚/核心 → VLANIF 網(wǎng)關(guān)和 DHCP 服務(wù)器。任一層 Trunk 沒有放行或者三層路由沒有配好流量都會中斷。這類問題通常不是 AP 硬件的問題而是 VLAN 在鏈路逐跳傳遞時斷在了某一層。4.2 網(wǎng)關(guān)和 DHCP 位置決定要不要配 VLANIF 或 DHCP Relay如果業(yè)務(wù) VLAN 的網(wǎng)關(guān)在三層交換機(jī)上需要創(chuàng)建對應(yīng)的 VLANIF 并配置 IP 地址同時開啟 DHCP 服務(wù)。interface Vlanif20 ip address 192.168.20.1 255.255.255.0 dhcp select interface如果 DHCP 服務(wù)器在其他網(wǎng)段則需要在 VLANIF 下配置中繼interface Vlanif20 ip address 192.168.20.1 255.255.255.0 dhcp relay server-ip 192.168.100.10這一步經(jīng)常被忽略。很多現(xiàn)場 AP 能上線、無線也能關(guān)聯(lián)但終端拿不到地址排查到最后就是網(wǎng)關(guān)已經(jīng)收到了 DHCP 請求卻沒有中繼到真正的 DHCP 服務(wù)器。4.3 常見現(xiàn)象、可能原因與排查順序接入層排查 AP 端口 VLAN 問題時我一般按這個順序走看現(xiàn)象AP 是否上線無線是否能關(guān)聯(lián)終端能不能獲取 IP獲取的 IP 是不是規(guī)劃的網(wǎng)段看 AP 端口在交換機(jī)上執(zhí)行display port vlan確認(rèn)端口類型、PVID、Tagged 列表是否符合規(guī)劃??瓷闲锌诖_認(rèn)接入層到匯聚層的 Trunk 是否放行了所有業(yè)務(wù) VLAN??慈龑訕I(yè)務(wù) VLAN 的 VLANIF 是否存在、網(wǎng)關(guān) IP 是否正確、DHCP 是否在正確的接口范圍內(nèi)??窗踩呗远丝诎踩?、DHCP Snooping、ACL 是否攔截了帶標(biāo)簽的幀或 DHCP 報文。華為設(shè)備上常用的查看命令是display vlan display port vlan display interface GigabitEthernet0/0/1思科設(shè)備對應(yīng)show vlan brief show interface trunk最容易誤判的是“AP 能上線但無線終端上不了網(wǎng)”。很多人會先去查無線控制器配置而實際上很可能是接入交換機(jī) AP 端口只放行了管理 VLAN漏了業(yè)務(wù) VLAN。先看接入層端口往往能省下大量時間。5. 配置 VLAN 時容易忽略的邊界條件5.1 本地轉(zhuǎn)發(fā)和隧道轉(zhuǎn)發(fā)下的放行差異隧道轉(zhuǎn)發(fā)模式下AP 與 AC 建立 CAPWAP 隧道終端業(yè)務(wù)流量被封裝在隧道內(nèi)部接入交換機(jī)不需要在 AP 端口放行業(yè)務(wù) VLAN。如果仍然按本地轉(zhuǎn)發(fā)的思路把所有業(yè)務(wù) VLAN 都放行短期內(nèi)可能不報錯但會增加故障判斷難度甚至讓業(yè)務(wù)流量出現(xiàn)意料之外的路徑。確認(rèn)方法很簡單看 AC 上該 AP 或該 SSID 的轉(zhuǎn)發(fā)模式。拿不準(zhǔn)的時候先用最小放行驗證再逐步放開業(yè)務(wù) VLAN。這種“先收緊、再放開”的做法比一次性把所有可能相關(guān)的 VLAN 都放進(jìn)去要安全得多。5.2 AP 管理 VLAN 和業(yè)務(wù) VLAN 混用時的取舍小型網(wǎng)絡(luò)里為了省事有人把 AP 管理 VLAN 和無線業(yè)務(wù) VLAN 放在同一個 VLAN。這樣 AP 端口可以配成 Access配置最簡單。代價是無線用戶和 AP 管理地址在同一網(wǎng)段廣播域變大安全隔離和故障隔離都更弱。如果只是臨時辦公或小型項目這樣配沒問題。如果是企業(yè)生產(chǎn)網(wǎng)絡(luò)我更建議至少把管理 VLAN 獨(dú)立出來。這不是“必須”而是長期運(yùn)維時隔離成本更低。管理 VLAN 獨(dú)立之后即使無線業(yè)務(wù)出現(xiàn)廣播風(fēng)暴至少不會直接波及其他辦公終端。5.3 多廠商設(shè)備混用時的標(biāo)簽一致性現(xiàn)實中經(jīng)常出現(xiàn)接入層華為、匯聚層銳捷、核心層思科的情況??鐝S商時最典型的問題是native VLAN / PVID 不一致同一根 Trunk 兩端 PVID 不同未打標(biāo)簽的幀可能被劃進(jìn)不同的 VLAN導(dǎo)致管理地址或默認(rèn) VLAN 通斷不穩(wěn)。Trunk 允許列表不對稱一端允許的 VLAN 列表包含對方?jīng)]有創(chuàng)建的 VLAN配置不報錯但流量到對端后可能被丟棄或進(jìn)入錯誤 VLAN。建議在多廠商場景下維護(hù)一張 VLAN 對照表把設(shè)備、端口、PVID、Tagged 列表逐條記錄。配置完成后用display vlan和show vlan id逐臺核對不要只憑記憶。尤其是機(jī)房改造或設(shè)備替換后舊配置里那些“看起來沒用到”的 VLAN 放行項往往就是下一次故障的源頭。6. 把接入層 VLAN 配置沉淀成一個可用流程6.1 三步法先分流量再定標(biāo)簽最后寫配置把前面所有經(jīng)驗收束成三步第一步分流量。列出這條鏈路上的所有流量類型至少包括 AP 管理流量、各類無線業(yè)務(wù)流量。如果是 IP 電話、視頻監(jiān)控、門禁控制器等特殊終端也要一并列進(jìn)去。第二步定標(biāo)簽。明確每種流量的轉(zhuǎn)發(fā)模式、是否需要打標(biāo)簽、最終屬于哪個 VLAN。在這個階段確定 PVID 和 Tagged 列表不要直接跳到命令。第三步寫配置。根據(jù)標(biāo)簽規(guī)則選擇端口類型設(shè)置 PVID 和允許列表再檢查鏈路每一跳的放行情況和三層網(wǎng)關(guān)位置。這套流程不只在 AP 端口上適用。對任何“設(shè)備本身屬于管理 VLAN、業(yè)務(wù)流量屬于另一個 VLAN”的終端比如 IP 電話和監(jiān)控攝像頭思路完全一樣。6.2 最小驗證清單配置完成后按下面的清單驗證AP 是否正常上線AC 上 AP 狀態(tài)是否為正常。無線終端能否獲取到正確網(wǎng)段的 IP 地址。無線終端能否 ping 通網(wǎng)關(guān)。在接入交換機(jī) AP 端口檢查標(biāo)簽行為確認(rèn) PVID 和 Tagged 列表與規(guī)劃一致??鐝S商設(shè)備逐臺核對 PVID 和允許列表。這五項都通過AP 端口的 VLAN 配置基本可以認(rèn)為過關(guān)。如果第五項暫時沒有跨廠商設(shè)備至少也要把同廠商鏈路上的 VLAN 放行情況核對一遍避免以后出問題再返工。6.3 什么時候仍然可以用 Access不是所有 AP 端口都必須配 Trunk。以下情況用 Access 更簡單AP 管理 VLAN 與無線業(yè)務(wù) VLAN 相同AP 工作在隧道轉(zhuǎn)發(fā)模式業(yè)務(wù)流量不需要在接入交換機(jī)本地放行當(dāng)前只有一套 SSID并且明確要求所有無線終端屬于同一個 VLAN。只要存在管理 VLAN 和業(yè)務(wù) VLAN 分離、多個 SSID 對應(yīng)多個業(yè)務(wù) VLAN、或者未來有擴(kuò)展業(yè)務(wù)網(wǎng)段的可能就應(yīng)該從第一天開始用 Trunk 來配按“PVID 指向管理 VLAN Tagged 列表包含業(yè)務(wù) VLAN”的方式落地。接入層交換機(jī)的 VLAN 配置真正決定成敗的不是命令敲得熟不熟而是你能否在動手之前把鏈路上的流量類型和標(biāo)簽規(guī)則想清楚。AP 端口只是這個問題最典型的一個例子。把“先分流量、再定標(biāo)簽、最后寫配置”的習(xí)慣養(yǎng)好以后再遇到監(jiān)控、電話、物聯(lián)網(wǎng)設(shè)備你都不用慌。