Linux 設定 Vlan

Loading

  • VLAN
    透過 VLan 的功能能將一個實體的 switch 將他切割成多個 logical broadcast domain (所有的廣播封包 broadcast package 只會在此 doamin 中傳送).
  • Trunk
    如果要讓不同交換機上的 VLAN 主機相通,必須要設定一個網路埠為共用的 trunk ,但如果是不同 VLAN 的主機之間要互通,這要透過路由功能 Routing.
    switch 上的埠可以設定成為 Trunk Port 或是 Access Port ,一般設定為 Access Port(直接接到主機),剛剛說的 Trunk Port 就是指 Switch 與 Switch 之間讓彼此的 Vlan 相互溝通的.

在 Linux 下設定 VLAN 也很簡單就是在原先的訊框 (Frame) 指定 tag 而這 tag 的數字即是 VLAN ID. VLAN 已經被 IEEE 列為標准協定的一員 802.1q ,且一開始沒設定任何 VLAN 的 switch 其所有的網路埠的 VLAN ID 皆為 1.
vlan01
Linux 的核心也是有支援 VLAN 功能,主要就是在網路埠上的訊框加上指定的 VLAN Tag .設定使用上很簡單.
目前 RedHat 是將 VLAN 編譯成模組的方式來支援,所以先看看你的 Linux 是否已經掛載了 802.1q(VALN) 的模組.

[root@benjr ~]# modprobe 8021q
[root@benjr ~]# lsmod |grep -i 8021q

指令 #vconfig

開始設定 VLAN ID .我們透過指令 #vconfig add [interface-name] [vlan_id] 這邊要注意的一點是要設定網路裝置 [interface-name] 必須是 active 的,可以透過 #ifconfig 查詢到的.[vlan_id] 可以為 0-4095.

[root@benjr ~]# vconfig add eth1 10
Added VLAN with VID == 10 to IF -:eth1:-
[root@benjr ~]# ifconfig -a |grep -i eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:06:A1:03
eth1.10   Link encap:Ethernet  HWaddr 00:0C:29:06:A1:03

這樣系統就會多出一組 eth1.10 的裝置出來,這裝置將只接受含有 VLAN ID =10 的訊框.所有設定好的 VLAN 網路埠都可以透過 /proc/net/vlan/config 來查詢到.如果是要立即移除時可使用 #vconfig rem [vlan-name] 來移除.

[root@benjr ~]# vconfig rem eth1.10
Removed VLAN -:eth1.10:-

不過就算沒有刪除,這樣的設定下次重新開機就會失效(消失)了.必須要再設定一次.

eth1.X Interfaces

剛剛設定的是暫時的,所以要長久使用還是把它寫到設定檔中 /etc/sysconfig/network-scripts/ifcfg-eth1.10

[root@benjr ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1.10
VLAN=yes
DEVICE=eth1.10
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.254.5.254
NETMASK=255.255.255.0

主要的設定就是下面兩行.
VLAN=yes DEVICE=eth1.10

vlanX Interfaces

我們可以設定成你想要的 VLAN 名稱,下面的 VLAN 名稱為 vlan5

[root@benjr ~]# vi /etc/sysconfig/network-scripts/ifcfg-vlan5
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan5
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.254.5.254
NETMASK=255.255.255.0

主要的不同就是下面的設定.
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan5
不過我在使用設定檔的時候會遇到一些奇怪問題,比如裝置起不來,或是裝置設定跑到其他裝置上面.因為現在在 Linux 下面網路裝置都是透過 NetworkManager 在設定與啟動.

NetworkManager

在 Linux 的桌面系統可以找到 NetworkManager icon ,按右鍵點選 Edit connections…
vlan01
Add 新增裝置 , 選擇 VLAN
vlan02
奇怪有錯誤訊息 Bonding, bridging, and VLANs are disabled in NetworkManager. 點選 Help 查看一下,預設這幾項功能沒有開啟須要到 /etc/sysconfig/network 設定
vlan04

[root@benjr ~]# vi /etc/sysconfig/network
NM_BOND_BRIDGE_VLAN_ENABLED=yes

[root@benjr ~]# service NetworkManager restart

回到剛剛的設定跟剛剛文字模式的設定一樣需要填寫 Parent interface ,VLAN id ,VLAN interface name 以及 IP 等資料.
vlan05
vlan06
關於詳細 NetworkManager 請參考 – https://benjr.tw/94970

沒有解決問題,試試搜尋本站其他內容

2 thoughts on “Linux 設定 Vlan

  1. 自動引用通知: Linux – Vlan | Benjr.tw

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料