centos下網口vlan設定

來源:互聯網
上載者:User

標籤:

如果要使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功能:
當前使用核心以及作業系統版本:
[[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預設不會轉寄資料,具體介紹可以參考http://www.happyboy.net.cn/article.asp?id=19,直接修改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虛擬網卡

centos下網口vlan設定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.