發布時間:2020-05-28

“運維實戰家”專欄,從技術到實踐,和您聊聊運維的那些事兒,講述運維人的“昨天、今天和明天”
作者:過嗨濤 田小楊
在進行無線網絡部署時,如果AP VLAN和STA VLAN使用相同VLAN時為何會出現無線用戶會獲取不到IP地址?如果STA VLAN為1而上聯交換機配置的Native VLAN不是1時為何無線用戶會獲取到錯誤的IP地址?
在無線本地轉發的環境下會有小伙伴遇到上述的問題,卻不太清楚如何處理,今天為大家剖析下以上兩個場景下會出現無線用戶無法獲取IP地址或獲取到錯誤的IP地址的原因,以及如何解決以上問題。
交換機接口模式:

圖1:Trunk接口收發幀處理方式
場景一:AP VLAN與STA VLAN不同場景
首先我們先來看下在AP VLAN與STA VLAN不同場景下,正常無線報文轉發流程。在該場景下AP默認Native VLAN 1,上聯交換機配置的Native VLAN是AP的VLAN為VLAN 10,無線用戶的VLAN是20。用戶發送802.11幀達到AP后,AP 將802.11幀轉換成以太網幀并插入用戶VLAN的TAG,交換機收到數據包后透傳TAG 20的數據包向上層交換機轉發。

圖2:AP VLAN和STA VLAN不同場景下無線上行報文轉發流程
數據包返回后,TAG 20的數據包通過交換機轉發到AP,AP把帶有TAG 20的以太網數據包封裝成802.11數據幀轉發給用戶,該場景下用戶收發數據包正常。

圖3:AP VLAN和STA VLAN不同場景下無線下行報文轉發流程
場景二:AP VLAN和STA VLAN相同場景
接下來我們看下在AP VLAN和STA VLAN相同的場景下數據包轉發會出現什么問題。在該場景下AP默認Native VLAN 1,上聯交換機配置的Native VLAN是AP的VLAN為VLAN10,無線用戶的VLAN也是10。用戶發送802.11幀報文達到AP后,AP 將802.11幀轉換成以太網幀并插入用戶VLAN的TAG上送交換機,交換機正常接收帶有TAG 10的幀,并通過上聯正常轉發TAG 10的幀(上聯默認Native VLAN是1,保留原TAG標簽轉發)。

圖4:AP VLAN和STA VLAN相同場景下無線上行報文轉發流程
數據包返回后,交換機正常接收帶有TAG 10的幀,由于該TAG是下聯Native VLAN,所以交換機將會剝離TAG進行轉發,將不帶標簽的下行數據包轉發給AP,由于AP的默認Native VLAN是1,所以不帶TAG的幀就打上TAG 1的標簽,AP查找用戶的VLAN信息無VLAN 1將報文丟棄,導致無線用戶無法收到回包,導致用戶出現無法獲取IP地址、無法上網的的現象。

圖5:AP VLAN和STA VLAN相同場景下無線下行報文轉發流程
該場景下根據報文轉發流程我們找到了問題所在,那該如何解決呢?有兩個解決辦法,第一個方法是修改AP的Native VLAN為10,修改后下行數據被交換機剝離TAG返回AP時,不帶TAG的幀會被AP打上TAG 10的標簽轉發給用戶,讓用戶正常獲取到 VLAN 10所在的IP地址。
Ruijie(config)# ap-config ap-name
Ruijie(config-ap)# ap-vlan 10

圖6:AP VLAN和STA VLAN相同場景下修改AP Native VLAN后無線下行報文轉發流程
第二個方法是將用戶的 VLAN改為1,修改后上行數據AP以UNTAG 1標簽轉發,到達交換機后,交換機對不帶TAG的幀,打上Native VLAN 10的標簽,然后正常轉發。
下行數據交換機正常接收帶有TAG 10的幀,由于該TAG是下聯Native VLAN,所以交換機將會剝離TAG后轉發給AP,AP將不帶TAG的幀打上Native VLAN 1的標簽轉發,匹配到用戶映射的VLAN 1,,這樣用戶實際也能獲得VLAN 10所在的IP地址。

圖7:AP VLAN和STA VLAN相同場景下修改用戶VLAN后無線上行報文轉發流程

圖8:AP VLAN和STA VLAN相同場景下修改用戶VLAN后無線下行報文轉發流程
場景三:STA VLAN為1而上聯交換機Native VLAN不是1場景
最后我們看下在STA VLAN為1而上聯交換機Native VLAN不是1的場景下會出現什么問題。在該場景下AP默認Native VLAN 1,上聯POE交換機配置的Native VLAN是AP的VLAN為VLAN10,無線用戶的VLAN也是1。用戶發送802.11幀報文達到AP后,由于AP上行口默認Native VLAN是1,導致AP 解封裝成802.3幀上送到接入交換機數據是UNTAG 1的標簽,交換機對不帶TAG的幀打上Native VLAN 10的標簽進行轉發,導致用戶獲取到AP所屬的VLAN 10的IP地址,而不是所屬的VLAN 1的IP地址。

圖9:STA VLAN是1而上聯交換機Native VLAN不是1場景無線上行報文轉發流程
與場景二相同,我們同樣可以通過修改AP的Native VLAN解決該問題。將AP的Native VLAN修改為非VLAN 1后(根據習慣一般可選用 AP的VLAN),用戶上下行數據包在網絡中均以TAG 1的標簽進行轉發,用戶可正常獲取VLAN 1的IP地址。
Ruijie(config)# ap-config ap-name
Ruijie(config-ap)# ap-vlan 10

圖10:STA VLAN是1而上聯交換機Native VLAN不是1場景修改AP Native VLAN后無線上行報文轉發流程

圖11:STA VLAN是1而上聯交換機Native VLAN不是1場景修改AP Native VLAN后無線下行報文轉發流程
本文作者與大家聊了銳捷AP缺省VLAN和用戶VLAN那些事兒,在實際項目作者不建議將用戶VLAN 與AP VLAN規劃在同一個網段中。如果較多AP都部署在同一個VLAN中,則一個AP和其STA的ARP廣播報文將會發送給另一個AP,造成AP收到大量的廣播報文沖擊AP的CPU,甚至可能導致AP網關的ARP報文湮沒在其他AP的ARP報文中造成ARP老化,使得AP通訊異常。因此部署該功能時也需要注意不要將大量的AP部署在同一個VLAN內(建議不要超過2個C類地址)。
最后作者給大家留一個小問題可以結合本文所講進行思考:在一個無線網絡中,規劃的無線用戶VLAN是10,但網絡中使用的POE交換機是不可網管的交換機不可劃分VLAN,那配置無線用戶的VLAN時候,無線用戶的VLAN配置成多少?為什么?
