在linux下配置trunk的主要作用是服務器與交換機相連時,一個網卡上配置多個IP/VLAN ID來通信。這時就要用到trunk 了
一.首先要確認Linux系統內核是否已經支持VLAN功能:
當前使用內核以及操作系統版本:
[root@happyboy ~]# # lsmod |grep 8021q //查看系統內核是否支持802.1q協議
8021q 18633 0
[root@happyboy ~]# lspci //確認網卡驅動是否已經正常加載
二.物理網卡、子網卡、虛擬VLAN網卡的關系:
1.物理網卡:物理網卡這里指的是服務器上實際的網絡接口設備,這里我服務器上雙網卡,在系統中看到的2個物理網卡分別對應是eth0和eth1這兩個網絡接口。
2. 子網卡:子網卡在這里並不是實際上的網絡接口設備,但是可以作為網絡接口在系統中出現,如eth0:1、eth1:2這種網絡接口。它們必須要依賴於物理網卡,雖然可以與物理網卡的網絡接口同時在系統中存在並使用不同的IP地址,而且也擁有它們自己的網絡接口配置文件。但是當所依賴的物理網卡不啟用時(Down狀態)這些子網卡也將一同不能工作。
3.虛擬VLAN網卡:這些虛擬VLAN網卡也不是實際上的網絡接口設備,也可以作為網絡接口在系統中出現,但是與子網卡不同的是,他們沒有自己的配置文件。他們只是通過將物理網加入不同的VLAN而生成的VLAN虛擬網卡。如果將一個物理網卡添加到多個VLAN當中去的話,就會有多個VLAN虛擬網卡出現,他們的信息以及相關的VLAN信息都是保存在/proc/net /vlan/config這個臨時文件中的,而沒有獨自的配置文件。它們的網絡接口名是eth0.1、eth1.2這種名字。
當需要啟用VLAN虛擬網卡工作的時候,關聯的物理網卡網絡接口上必須沒有IP地址的配置信息,並且,這些主物理網卡的子網卡也必須不能被啟用和必須不能有IP地址配置信息。這個在網上看到的結論根據我的實際測試結果來看是不准確的,物理網卡本身可以綁定IP,並且給本征vlan提供通信網關的功能,但必須是在802.1q下.
[root@VlanLinux ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
————————————————–
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
設定靜態地址並且不給IP地址設定。
三、在Linux配置VLAN Trunk:
由於在Linux上eth1要被設定為Trunk,因此,網絡中有幾個VLAN的話,那么中繼網卡上也必須要加入多個VLAN才能支持到(本征vlan不需要添加,屬於本征vlan的端口設置IP同該物理網卡網段,並將網關指向eth1即可,關於eth0和eth1的配置,可以直接編輯配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0和ifcfg-eth1,或用setup來配置等文本圖形工具配置)。
1.將eth1添加到VLAN 2中:
[root@happyboy net]# vconfig add eth1 2
WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS??
Added VLAN with VID == 2 to IF -:eth1:-
第一次添加VLAN虛擬網卡的時候就一定會出現上面的那句提示,原因是因為默認下/proc/net/vlan/config這個專門用來保存VLAN信息的文件是沒有的。由於第一次添加VLAN網卡,那么這個文件也會被自動建立起來。另外,在/proc/目錄下面的文件都是系統的臨時文件,因此重新啟動后必定丟失休息,所以在配置並測試VLAN成功后,可以將一些相關命令添加到rc.local這個啟動腳本當中去了。在執行該命令之前可以先到/proc /net/目錄查看下,並不存在vlan文件夾,執行后會創建一個vlan文件夾,並生成config配置文件,以及對應的虛擬vlan網卡配置文件 eth1.2等
后面的一句
Added VLAN with VID == 2 to IF -:eth1:-
這里表示已經將eth1網卡添加到了VLAN 2中,並且它在VLAN中的虛擬網卡是eth1.2。
2.同樣將eth1添加到VLAN 3、4中:
[root@happyboy ~]# vconfig add eth1 3
Added VLAN with VID == 3 to IF -:eth1:-
[root@happyboy ~]# vconfig add eth1 4
Added VLAN with VID == 4 to IF -:eth1:-
4.檢查添加的VLAN虛擬網卡信息:
[root@happyboy ~]# cat /proc/net/vlan/config
--------------------------------------------------
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth1.2 | 2 | eth1
eth1.3 | 3 | eth1
eth1.4 | 4 | eth1
虛擬網卡 VLANID 歸屬的主網卡
--------------------------------------------------
可以看到所有的VLAN虛擬網卡以及它們所歸屬的主物理網卡。
五.為VLAN虛擬網卡設定IP地址並且進行啟用:
[root@happyboy ~]# ifconfig eth1.2 192.168.2.1 up
[root@happyboy ~]# ifconfig eth1.3 192.168.3.1 up
[root@happyboy ~]# ifconfig eth1.4 192.168.4.1 up
六.確認Linux系統下的所有網絡接口配置:
1.重新啟動網絡服務
[root@happyboy ~]# service network restart
--------------------------------------------------
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]
--------------------------------------------------
2.檢查Linux系統下的所有網絡接口信息:
[root@happyboy ~]# ifconfig |more
到這里已經基本上將VLAN的主要配置完成了。