linux網卡的vlan配置

   如果服務器上連的交換機端口已經預先設置了TRUNK,並允許特定的VLAN可以通過,那麼服務器的網卡在配置時就必須指定所屬的VLAN,否則就不通了,這種情形在虛擬化部署時較常見。

   例如在一個辦公環境中,辦公所在VLAN爲1020,虛擬化的物理主機上有兩塊萬兆網卡,分屬與3111和3112VLAN,這三個VLAN間可以互通,那麼該如何配置呢?

wKiom1UwlybDrobzAACnGvfptco560.jpg

   

.首先要確認Linux系統內核是否已經支持VLAN功能:

當前使用內核以及操作系統版本:

[root@test ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

首先yum安裝vconfig,如果有就不用裝了 

yum install vconfig

查看核心是否提供VLAN 功能,執行 

dmesg | grep -i 802

[root@test]# dmesg | grep -i 802

802.1Q VLAN Support v1.8 Ben Greear<[email protected]>

[root@test]# modprobe 8021q

[root@test~]#lsmod |grep 8021q         //查看系統內核是否支持802.1q協議

8021q                  18633 0

 

[root@test ~]# lspci       //確認網卡驅動是否已經正常加載

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)

00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)

00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)

00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)

00:0f.0 VGA compatible controller: VMware SVGA II Adapter

00:11.0 PCI bridge: VMware PCI bridge (rev 02)

00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)

 

 

.物理網卡、子網卡、虛擬VLAN網卡的關係:

1.物理網卡:物理網卡這裏指的是服務器上實際的網絡接口設備,在系統中可以看到的,比如2個物理網卡分別對應是eth0eth1這兩個網絡接口。

 

2. 子網卡:子網卡在這裏並不是實際上的網絡接口設備,但是可以作爲網絡接口在系統中出現,如eth0:1eth1:2這種網絡接口。它們必須要依賴於物理網卡,雖然可以與物理網卡的網絡接口同時在系統中存在並使用不同的IP地址,而且也擁有它們自己的網絡接口配置文件。但是當所依賴的物理網卡不啓用時(Down狀態)這些子網卡也將一同不能工作。

 

3.虛擬VLAN網卡:這些虛擬VLAN網卡也不是實際上的網絡接口設備,也可以作爲網絡接口在系統中出現,但是與子網卡不同的是,他們沒有自己的配置文件。他們只是通過將物理網加入不同的VLAN而生成的VLAN虛擬網卡。如果將一個物理網卡添加到多個VLAN當中去的話,就會有多個VLAN虛擬網卡出現,他們的信息以及相關的VLAN信息都是保存在/proc/net/vlan/config這個臨時文件中的,而沒有獨自的配置文件。它們的網絡接口名是eth0.1eth1.2這種名字。

 

注:當需要啓用VLAN虛擬網卡工作的時候,關聯的物理網卡網絡接口上必須沒有IP地址的配置信息。

 

[root@test ~]# vi/etc/sysconfig/network-scripts/ifcfg-eth1

————————————————–

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

設定靜態地址並且不給IP地址設定。

 

三、在Linux配置VLAN Trunk

由於在Linuxeth1要被設定爲Trunk,並且屬於特定的3111VLAN。eth2也要被設定爲Trunk,並且屬於特定的3112VLAN。

1.eth1添加到VLAN 3111中:

[root@test]# vconfig add eth1 3111

WARNING: Could not open/proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe youare not using PROCFS??

Added VLAN with VID == 3111 to IF -:eth1:-

第一次添加VLAN虛擬網卡的時候就一定會出現上面的那句提示,原因是因爲默認下/proc/net/vlan/config這個專門用來保存VLAN信息的文件是沒有的。由於第一次添加VLAN網卡,那麼這個文件也會被自動建立起來。另外,在/proc/目錄下面的文件都是系統的臨時文件,因此重新啓動後必定丟失休息,所以在配置並測試VLAN成功後,可以將一些相關命令添加到rc.local這個啓動腳本當中去。在執行該命令之前可以先到/proc/net/目錄查看下,並不存在vlan文件夾,執行後會創建一個vlan文件夾,並生成config配置文件,以及對應的虛擬vlan網卡配置文件 eth1.3111等.


 

 

2.同樣將eth2添加到VLAN3112中:

[root@test ~]# vconfig add eth2 3112

Added VLAN with VID == 3112 to IF -:eth2:-


 

3.檢查添加的VLAN虛擬網卡信息:

[root@test ~]# cat/proc/net/vlan/config

--------------------------------------------------

VLAN Dev name    | VLAN ID

Name-Type:VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD

eth1.3111         | 3111 |      eth1

eth2.3112         | 3112 |      eth2

可以看到所有的VLAN虛擬網卡以及它們所歸屬的主物理網卡。

(如果只有一個物理網卡,也可配置爲文件ifcfg-eth1.3111ifcfg-eth1.3112)


 

4.VLAN虛擬網卡設定IP地址並且進行啓用:

[root@test ~]# ifconfig eth1.3111 192.168.20.1 up

[root@test ~]# ifconfig eth2.3112 192.168.30.1 up

這是臨時的,可以這樣做

利用cp命令複製接口的ip地址配置 

cp ifcfg-eth1 ifcfg-eth1.3111

cp ifcfg-eth2 ifcfg-eth2.3112

把ifcfg-eth1和ifcfg-eth2中的原有地址去掉,再vi修改ifcfg-eth1.3111和ifcfg-eth2.3112文件,設置IP地址等信息。

 

5.最後重啓network服務,令配置生效。

重新啓動網絡服務

[root@test ~]# service network restart

--------------------------------------------------

Shutting down interface eth1:                            [ OK ]

Shutting down interface eth2:                            [ OK ]

Shutting down loopback interface:                        [ OK ]

Bringing up loopback interface:                          [ OK ]

Bringing up interface eth1:                              [ OK ]

Bringing up interface eth2:                              [ OK ]

--------------------------------------------------

 

6.檢查Linux系統下的所有網絡接口信息:

[root@test ~]# ifconfig |more

到這裏已經基本上將VLAN的主要配置完成了。


7、驗證連通性

[root@test ~]# ping 192.168.20.254

PING 192.168.20.254 (192.168.20.254) 56(84) bytes of data.

64 bytes from 192.168.20.254: icmp_seq=1 ttl=255 time=8.42 ms

64 bytes from 192.168.20.254: icmp_seq=2 ttl=255 time=1.47 ms

64 bytes from 192.168.20.254: icmp_seq=3 ttl=255 time=1.51 ms

64 bytes from 192.168.20.254: icmp_seq=4 ttl=255 time=1.58 ms

^C

--- 192.168.20.254 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 6325ms

rtt min/avg/max/mdev = 1.470/2.550/8.427/2.400 ms


[root@test ~]# ping 192.168.30.254

PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.

64 bytes from 192.168.30.254: icmp_seq=1 ttl=255 time=8.42 ms

64 bytes from 192.168.30.254: icmp_seq=2 ttl=255 time=1.47 ms

64 bytes from 192.168.30.254: icmp_seq=3 ttl=255 time=1.51 ms

64 bytes from 192.168.30.254: icmp_seq=4 ttl=255 time=1.58 ms

^C

--- 192.168.30.254 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 6325ms

rtt min/avg/max/mdev = 1.470/2.550/8.427/2.400 ms 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章