Howto: Configure Linux Virtual Local Area Network (VLAN)
情境 : 我想組態某台 Linux 的 eth0 網路介面可以帶 VLAN100 and VLAN500 的 tags.
解決方案 :
在 Cisco Switch 上要先設定該 Linux Port.
interface GigabitEthernet1/0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100,500
switchport mode trunk
!
如果要自動載入 VLAN 模組, 可於 /etc/sysconfig/network 檔案內加入下列參數 :
VLAN=yes
而在 Linux 上的 /etc/sysconfig/network-scripts, /etc/sysconfig/networking/devices 和 /etc/sysconfig/networking/profiles/default 目錄內各複製一份 ifcfg-eth0 為 ifcfg-eth0.100 與 ifcfg-eth0.500 檔案
編輯 ifcfg-eth0.100
DEVICE=eth1.100
BOOTPROTO=none
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=10.1.1.100
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=10.1.1.254
TYPE=Ethernet
VLAN=yes
再編輯 ifcfg-eth0.500
DEVICE=eth1.500
BOOTPROTO=none
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=10.2.2.100
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
VLAN=yes
然後重新起動網路
# /etc/rc.d/init.d/network restart
或是你想用 vconfig 指令設定也是可以, 只是每次重新開機都要再下一次指令. 請注意在使用 VLAN 前不要忘記把 802.1q module掛上去. 用下列指令載入 802.1q module
# modprobe 8021q
然後用下列指令加入 vlan tags :
# vconfig add eth0 100
# vconfig add eth0 500
下列指令設定ip :
# ifconfig eth0.100 10.1.1.100 netmask 255.255.255.0 broadcast 10.1.1.255 up
# ifconfig eth0.500 10.2.2.100 netmask 255.255.255.0 broadcast 10.2.2.255 up
記得下 route 指令查看是否有正確的預設閘道器 :
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.1.0 * 255.255.255.0 U 0 0 0 eth0.100
10.1.1.0 * 255.255.255.0 U 0 0 0 eth0
10.2.2.0 * 255.255.255.0 U 0 0 0 eth0.500
169.254.0.0 * 255.255.255.0 U 0 0 0 eth0
default 10.1.1.254 0.0.0.0 UG 0 0 0 eth0.100
這樣就完成了. 🙂
如果要移除 VLAN100 & VLAN500就用下列命令
# ifconfig eth0.100 down
# ifconfig eth0.500 down
# vconfig rem eth0.100
# vconfig rem eth0.500
參考 :