天天看點

linux 怎麼更新 8021q子產品,Linux 下 802.1Q VLAN 實作配置工具

如果要使vlan之間進行通信,我們通常會使用三層交換機或者路由器子接口模式來做。Linux上關于VLAN與Cisco交換機中繼連接配接,也是可以實作其互相之間的通信的。

環境:RHEL 5.2 最小化安裝,實體網卡eth1,作為VLAN交換機連接配接的Trunk口連接配接到2960的GigabitEthernet0/1。而另外一張實體網卡eth0作為上行口,連接配接其他網絡。

Cisco 2960,啟用VLAN,VLAN的網段規劃入下:

VLAN 1:fa0/1 - fa0/6 192.168.1.0/24

VLAN 2:fa0/7 - fa0/12 192.168.2.0/24

VLAN 3:fa0/13 - fa0/18 192.168.3.0/24

VLAN 4:fa0/19 - fa0/24 192.168.4.0/24

由于2960支援的802.1q trunk協定對于本征vlan 1 的資料流是不會增加vlan标記的,以及交換機的配置過程,具體可以見本站點其他關于交換機配置介紹

可以用 Show interfaces trunk指令檢視本征vlan 規劃:對于本征vlan我們不增加子接口,直接在實體網卡eth1上綁定IP即可,其他vlan都使用vconfig建立子接口即可。

一.首先要确認Linux系統核心是否已經支援VLAN功能:

目前使用核心以及作業系統版本:

[ro[email protected] ~]# # lsmod |grep 8021q         //檢視系統核心是否支援802.1q協定

8021q                  18633 0

[[email protected] ~]# lspci       //确認網卡驅動是否已經正常加載

一般來說RH9以後的Linux發行版本,諸如RHEL4、RHEL5、CentOS4、CentOS5都已經預設支援了VLAN的功能。

二.實體網卡、子網卡、虛拟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下。

三.規劃網絡:

1.VLAN的劃分:

Cisco交換機2960上交換機配置不在贅述。

RHEL 5.2預設核心支援VLAN,并且預設隻支援802.1q的中繼封裝。我們需要對連接配接Cisco交換機2960的中繼接口的eth1進行配置,在上面已經說明,對于vlan1本征vlan直接用實體eth1即可。另外,由于網絡當中要使用3個VLAN,是以,中繼網卡eth1也必須要添加虛拟網卡以及IP位址。規劃如下:

eth1:192.168.1.1/24

eth1.2:192.168.2.1/24

eth1.3:192.168.3.1/24

eth1.4:192.168.4.1/24

2.Linux網關轉發部分:

VLAN功能網卡eth1上除其本身外,将被劃分成3個VLAN虛拟網卡,通過中繼網卡eth1與Cisco交換機2950的VLAN中繼端口連接配接,另外一個實體網卡eth0作為上行網絡接口。而Linux伺服器将在eth1與eth0之間做流量轉發,這樣VLAN與VLAN之間也實作了資料流的轉發,如果不希望VLAN之間轉發的話,可以通過iptables來進行設定,這裡就不再展開iptables了。

四.在Linux配置VLAN Trunk:

由于在Linux上eth1要被設定為Trunk與Cisco交換機2960中繼連接配接,是以,網絡中有幾個VLAN的話,那麼中繼網卡上也必須要加入多個VLAN才能支援到(本征vlan不需要添加,屬于本征vlan的端口設定IP同該實體網卡網段,并将網關指向eth1即可,關于eth0和eth1的配置,可以直接編輯配置檔案 /etc/sysconfig/network-scripts/ifcfg-eth0和ifcfg-eth1,或用setup來配置等文本圖形工具配置)。

1.将eth1添加到VLAN 2中:

[[email protected] 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中:

[[email protected] ~]# vconfig add eth1 3

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

[[email protected] ~]# vconfig add eth1 4

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

4.檢查添加的VLAN虛拟網卡資訊:

[[email protected] ~]# 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位址并且進行啟用:

[[email protected] ~]# ifconfig eth1.2 192.168.2.1 up

[[email protected] ~]# ifconfig eth1.3 192.168.3.1 up

[[email protected] ~]# ifconfig eth1.4 192.168.4.1 up

六.确認Linux系統下的所有網絡接口配置:

1.重新啟動網絡服務

[[email protected] ~]# 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系統下的所有網絡接口資訊:

[[email protected] ~]# ifconfig |more

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

七.簡單測試:

測試從各個vlan 之間的連通性,可以直接在屬于各個vlan的交換機端口上連接配接一台PC,設定其屬于對應網段IP,并将網關指向到對應vlan虛拟網卡的IP,會發現與網關之間的通信正常,但是vlan之間無法通信,那時因為linux預設不會轉發資料,具體介紹可以參考,直接修改ip_forward值為1即可使vlan之間正常通信

後續可以:配置iptables進行NAT各個網絡接口間轉發;配置iptables來限制指定VLAN之間的轉發以實作安全性以及優化處理。

在上面說過,這些配置資訊是寫到系統臨時檔案的,系統重新開機将會導緻配置丢失,我們可以在/etc/rc.local中增加以下語句即可

vconfig add eth1 2

vconfig add eth1 3

vconfig add eth1 4

ifconfig eth1.2 192.168.2.1 up

ifconfig eth1.3 192.168.3.1 up

ifconfig eth1.4 192.168.4.1 up

echo '1' > /proc/sys/net/ipv4/ip_forward

Vconfig指令的簡要說明:

vconfig - VLAN 802.1q 配置程式。

說明

Vconfig程式能夠建立VLAN虛拟網卡并且與遠端的VLAN裝置對接,但是前提是核心首先必須支援VLAN功能。VLAN虛拟網卡是以太網卡上虛拟出來的、為了能夠在一個實體網絡上支援VLAN虛拟網絡的虛拟網卡。

選項

add 實體網卡 VLAN-ID号

在指定的實體網卡上虛拟出指定VLAN号的VLAN虛拟網卡。VLAN虛拟網卡名将記錄在/proc/net/vlan/config檔案中。

rem VLAN虛拟網卡

删除指定的VLAN虛拟網卡,如果不清楚VLAN虛拟網卡名的話可以到/proc/net/vlan/config檔案中檢視VLAN虛拟網卡名。

相關檔案

/proc/net/vlan/config

/proc/net/vlan/VLAN虛拟網卡