如何將VLAN1調整成其他VLAN

這是一個歷史議題,VLAN1給人一種隨插即用即通,因此一直用,當不夠用時,才開始使用VLAN TAG,造出其他VLAN。

如果在碰上其他的用途需求,如兩區的網路要做實體隔離,那就可能會發生兩區的網路都有VLAN1。

透過VLAN,本身也是實體隔離,因此我更傾向去合併網路,並用VLAN區分。

合併網路可以達到「節省設備」以及「減少維運學習成本」,架構越簡單的網路越好維護,合併網路也能讓設備更換成更高速率時是普及所有區網。

因此,碰到了兩區的VLAN1整合的議題,其實也就是要將某一區的VLAN1改成其他VLAN,本文會講述更多關於整合要注意的事項,以及如何操作。

假想環境

兩區分別為A區、B區,各自都有VLAN1,以下為兩區核心交換器的IP。
A區的VLAN1網段為192.168.1.254/24。
B區的VLAN1網段為192.168.2.254/24。
目前兩區單線接至防火牆,並透過防火牆溝通,防火牆的IP是隨介面設定L3 。

B區的VLAN1到時要要以VLAN101接入A區,作為網路整併。

可成長環境

除了上述所說的合併網路,簡化設備與設定複雜度。

辦公室網路要到Servers、DMZ或是外網,通常都會經過防火牆。通常到外網速度不會增加,不過到Servers的速度會急遽增加,要加大頻寬的話,會發現在防火牆設定單介面是無法直接改成鏈路聚合,也可能無法直接改至其他速率更高的介面。

因此,建議簡化架構並保留成長空間,核心交換器接至防火牆時,皆使用鏈路聚合去作為設定。

設定成鏈路聚合,可以透過更改Member換到速率更高的介面。
設定成鏈路聚合,可以透過增加Member再加大頻寬。

預先部署可以方便未來因應需求成長時,減少調整所帶來的代價。

合併網路還要留意防火牆

不論是A併入B,還是B併入A,都會有一區的網路消失,連帶影響Firewall Policy。

而後會從A或B的上行鏈路導入流量。

當然此時可以再造一條新的鏈路聚合上行鏈路作為合併時供另外被併的區域使用。

VLAN1調整前的注意事項

除了Firewall Policy外,還有很大量的交換器要設定,這取決於客戶環境。

再合併時,除了VLAN1會消滅,設備管理VLAN也會一併調整,建議造新的管理VLAN,並且先在兩區設定。合併之後,就能使用新的管理VLAN去控制所有網路設備。

我時常說:網路工程師的設定時最優先的考量「要先讓自己保有的存取控制的權限與能力」。

如果原本兩區的設備管理IP放在VLAN1的話,那,造新的管理VLAN就會變成是必須的。

階梯式修改 vs 跳躍式修改

完成」是指「網路打通」的話。

階梯式修改是一小階、一小階的調整:像是一次改一台交換器就能完成,然後再改下一台交換器。

跳躍式修改是一次大量調整:像是一次全部交換器都進行調整才能完成。

如果一鍵能讓某區交換器的VLAN1都變成VLAN101,那麼就能很順暢修改。但是現實沒有,不是邊際交換器的所有介面都是VLAN1,這變成要一台一台去看。使用Trunk的話,還要確保新VLAN有打通。

跳躍式修改因為一台一台都要去看,安排,設定,修改,拉大修改時長與工作量,難免疏漏,就會造成不通。

階梯式修改是把目標對象放在一台,這能讓操作時間大幅減少,由於網路調整會影響使用者,所以,這樣的方式更適合「人」去操作。尤其是網管人員數目不多,單兵作戰,時間與戰力有限。

Per VLAN Spanning Tree帶來的狀況

在做兩區實體隔離網路時,不免俗,總有需要部分VLAN打通到隔壁去。

在STP、RSTP是沒有VLAN的概念,因此在這樣的環境使用雙線,一個Access VLAN 100,另一個Access VLAN 101,就會其中有一條線被STP Block掉。

PVST多了VLAN的概念,因此雙線只要彼此VLAN不相同,就不會被STP Block掉。

由於PVST的這個性質,因此,使用者下次可能就會為了新的VLAN能通而長出更多的線。

當然,這不是好事,那會出狀況的。
如果整併成單一網路區域,這為了通兩區特定VLAN的需求不會發生,也不會有串新線的可能。

由於PVST有VLAN TAG的特性,因此會去交換器檢查BPDU的VLAN ID是否一樣,可以避免一台Native VLAN 1,另一台Native VLAN 101時,避免VLAN Mismatch卻意外打通,導致STP的運算出現意想不到的結果。

如果使用RSTP等沒有VLAN概念的,就沒有問題了。

無痕轉換VLAN1的方法設計

假如VLAN1要改成VLAN101,一種簡易的作法:

讓上遊的Switch將沒有VLAN Tag的流量視作VLAN 101,讓下游Switch將沒有VLAN Tag的流量視作VLAN 1。

交換器間的介面設定為Trunk的話就改Native VLAN,Access就直接改到對應的去。

上一段提到PVST,如果使用Trunk的話,兩台交換器的PVST就會Block掉VLAN Mismatch的兩個VLAN,也就是VLAN 1跟VLAN 101都會被Block。

因此,每次修改都要檢查STP的Block的狀況,避免介面有通但PVST阻擋掉,自己沒即時發現,然後被使用者發現到。

如何避免PVST讓VLAN Mismatch時被Block掉?

PVST Block的機制是基於算法,因此方法就是讓兩邊的STP分隔不通。

對應到的指令是「bpdufilter」,這要在兩台Switch連通的介面都下。

至於「portfast」,功能是強制讓STP狀態變成forwarding,但是VLAN Mismatch block的效力更大,是作為錯誤處理,因此不一定能作用。

合併VLAN1的階梯式修改流程

假設被併入的VLAN1要改成VLAN101。

假設Firewall Policy與兩區域設備的新管理VLAN IP已經設定好。

我們要將被併入區域的VLAN1逐步被視成VLAN101,並且由中心擴散。

網路整併

  • 上游Switch設定介面Trunk,Native VLAN101,BpduFilter。
  • 下游Switch設定介面Trunk,Native VLAN1,BpduFilter。
  • 兩者接通
  • 測試新管理VLAN與IP是否能連通

以下皆使用新管理IP進行設備設定。

被併入區域網路交換器逐台調整

由「最邊緣的Switch」開始設定,由下而上,逐步往Core調整。

  • 上游Switch設定Downlink介面Trunk,Native VLAN1,BpduFilter,PortFast。
  • 整理指令先在記事本:下游Switch將VLAN1改成VLAN101的設定規劃,將Access VLAN 1介面改成 Access VLAN 101,將Trunk介面,Native VLAN101,BpduFilter,PortFast。
  • 部署指令在下游Switch。

透過Portfast,能確保STP是直接Forwarding,當然Cisco交換器會跳告警,也是需要讓自己不要拖延太久。

最後會調整到被併入區域的核心交換器,到此,已經把原先的VLAN1都改成VLAN101了!

恢復STP為正常設定

把Switch間介接介面的bpdufilter先拿掉,然後兩台再拿掉Portfast。

由於portfast的關係,STP可以跳過Learning狀態,然後兩台交換器就會收到各自的BPDU重新計算STP拓樸。

關於Spanning Tree應該如何設計?

PVST有優點,也有缺點。他的缺點就是因為優點可能造成未來的不明白為何如此介接的風險。

現今網路管理人員的負荷也越來越多,也不見得能在基礎網路有充足時間學習與練習,因此降低維運難度與成本,簡單才是王道。

因此除了特殊需求之外,我建議使用MSTP與RSTP,讓架構變簡單。

Core Switch的STP Priority數值要最低,數值最低意味著會成為STP的Root,

結論

這樣的調整經本人在現場臨時測試過是可行的,也可以讓調整變成逐台進行,實現所謂的階梯式修改。

當核心交換器被調整時,客戶與使用者都會擔心網路連線能力是不是被影響?

藉此,可以只先調整核心交換器,然後專注於網路連線測試,確保都正常之後。

就能慢慢改動其他影響較小的交換器,避免公告停機時間內,無法完成跳躍式修改,飛到一半停住摔下來又回到原點。