[轉載]
認識 802.1Q
IEEE Standards for Local and Metropolitan AreaNetworks: Virtual Bridged Local Area Networks 文件編號為 802.1Q-1998 ,於西元 1998 年 12 月 8 日定稿,明確地定義了「虛擬橋接區域網路」(Virtual BridgedLANs)的架構以及所提供的服務,同時詳細說明了服務所需要的其他協定(protocols)和演算法(algo-rithms)。在 IT 業界裡,經常使用專有名詞 802.1Q 和 VLAN 協定,來代表 VLAN 的功能。因此,當有人談到 802.1Q時指的是 VLAN ,提到 VLAN 就代表 802.1Q 。基本上, 802.1Q 最大的作用是,在乙太網路框架(Frame)的表頭上加上一個標記(Tag),藉此分辨來自不同VLAN 的封包。VLAN 的設定選項位於〔Networking options〕控制項目內,點選進入後,將捲軸往下拉,就可以看到802.1Q VLAN 選項。請在實驗之前先點選〔Help〕,概略了解一下 VLAN 的相關訊息來源,以及設定 VLAN 時所需的命令設定。接著,將 VLAN 功能設定成為模組。有一點必須注意的是,如果 VLAN 模組沒有載入核心,就無法由「dmesg」指令的輸出訊息,或是從「/var/log/messages」檔案的內容得知該核心是否能夠支援 VLAN 功能。當核心模組編譯完成之後, 802.1Q 模組的檔案名稱是「8021q.o」。說到這裡,各位已經了解使用 VLAN 之前,首先必須確定目前的系統核心是否支援 VLAN 功能,這可以經由兩種方式查證:一是使用「dmesg」命令,二是查看「/proc/net/vlan」目錄是否存在。準備 Linux 的設備VLAN 在 IT 業界的應用極為廣泛,幾乎所有中高級網路或是電腦設備都提供該項功能。除了使用硬體 ASIC(Application-Specific IntegratedCircuit)支援 VLAN 功能的設備以外, VLAN 亦可以透過軟體的方式安裝在作業系統內,讓不同的作業系統都能擁有 VLAN 的功能。例如,在微軟視窗系統上, Intel網路卡的驅動程式就可以支援 VLAN ,如果是 Linux 系統,只要使用的 Linux 系統核心支援 VLAN ,那麼任何一款網路卡都可以使用。接下來,讓我們看看 VLAN 的功能位於系統核心選項的何處。以下是在 Linux 核心 2.4.31 版本下執行「makexconfig」命令後的選項畫面。VLAN protocol 與 Cisco 設備的介接關係與設定
--------------------------------------------------------------------------------
Page 4
20Linux guide February 2006Special Report 特別企劃檢查「/proc/net/vlan」檔案是否存在:核心如果沒有提供 VLAN 功能,「/proc/net/vlan」目錄是不存在的,如圖所示。若核心支援 VLAN 功能,將會出現下列的輸出訊息。截至目前為止,我們已經學會了如何判斷核心是否支援 VLAN 的功能。接下來,看看該如何將 802.1Q 模組載入核心:使用「 modpr obe 」模組命令載入「802.1q.o」模組,並且利用「lsmod」命令確認模組是否已經載入到核心內,如圖所示。dmesg 命令搭配 grep 所得的輸出訊息:在核心不提供 VLAN 功能的情況下,執行「dmesg |grep -i 802」命令是不會出現任何與 802.1Q 相關的輸出。而當核心支援 VLAN 功能時,則會出現類似以下畫面的輸出訊息。確定目前使用的 Linux 核心已經支援 VLAN 功能之後,接下來開始設定。一般安裝 Linux 的過程中,都會安裝 VLAN 相關的命令「vconfig」。如果沒有的話,可以安裝相關的 rpm 套件,套件名稱通常以「vconfig」開頭,例如「vconfig-1.6-2.i386.rpm」。此外,也可以從「http://www.candelatech.com/greear/vlan.html」或「http://rpm.pbone.net/」下載原始碼安裝,目前最新的版本是 1.9 版。緊接著,介紹vconfig 的設定選項和使用方法,只須執行「vconfig」命令即可顯示相關的解說畫面。VLAN 以數字來做編號,也就是所謂的 VLAN ID ,使用的方法非常的簡單,只需一行命令就可以建立一個VLAN 。VLAN 介面的形式為「< 網路卡介面 > ‧
--------------------------------------------------------------------------------
Page 5
February 2006 Linux guide21一個實體介面卡上可以建立相當多的 VLAN 介面。接著,配合 command script 建立其他的 VLAN 。緊接著,設定每一個 VLAN 介面的 IP 位址。同樣地,使用 command script 來加快設定過程。以上就是在 Linux 設備中設定 VLAN 時所需的操作步驟。確認目前使用的核心是否具備 VLAN 的功能選定 Linux 設備上的介面卡啟動實體介面卡,並確認未設定 IP 位址建立並啟動 VLAN 介面卡在每一個 VLAN 介面卡上設定 IP 位址準備完成Cisco Catalyst 2950/3550/3650/3750 交換器的設定剛剛在 Linux 設備上建立了 9 個 VLAN ,其 ID 分別是10 、 20 、 30 、 40 、 50 、 60 、 70 、 80 、 90 ,所以在網路設備上,也必須建立相同的 VLAN ID 才可以和Linux 的設備作介接,此次實驗採用的設備是Cisco 2950T-24 的第二層交換器,下頁圖中顯示的是其使用的版本。藉由以下圖片說明如何在 Linux 的介面卡上設定VLAN 。首先執行「ifconfig eth0 up」命令啟動 eth0 介面卡,然後使用「ifconfig eth0」命令觀察 eth0 是否已經設定 IP 位址。圖中的 eth0 介面卡資訊內沒有出現 IP位址,接下來使用「vconfig add eth0 6」命令建立一個VLAN , VLAN ID 設為 6 。然後,利用 ls 指令查看「/proc/net/vlan」目錄下有何變化,發現多了一個名為「eth0.6」的檔案,並且可使用「ifconfig eth0.6」命令來確定 VLAN 介面是否存在。增加 VLAN 介面之後,接著介紹如何移除 VLAN 介面。以「vconfig」命令搭配「rem」選項,再以 VLAN 介面為其引數即可移除,完整命令為「vconfig rem eth0.6」。VLAN protocol 與 Cisco 設備的介接關係與設定
--------------------------------------------------------------------------------
Page 6
22Linux guide February 2006Special Report 特別企劃在這裡順道說明一下, Cisco 絕大部分的交換器和路由器所使用的作業系統稱為 IOS(InternetworkOperating System),此為 Cisco 設備的核心價值所在,Cisco 生產的設備之所以能在市場擁有高達 85% 以上的佔有率, IOS 功不可沒,這也清楚說明了程式設計和系統調校的確非常重要。接下來示範如何在 IOS 中建立 VLAN 。首先必須進入「enable」模式,在「enable」模式下才能取得設定的基本權限。先查看目前這個交換器內有哪些既有的VLAN ,然後進入 vlan database 建立想要的 VLAN 。想要讓 Cisco 交換器與 Linux 設備作介接,必須先選定一個連接埠。在目前這個交換器上, FastEthernet0/22 並未被使用,所以就利用這個連接埠與 Linux 設備上的介面卡作介接。先看看 FastEthernet 0/22 的狀態如何。各位應該沒想到一個簡單的連接埠竟然有如此多的屬性和資訊可以參考,這也正反映了普通和高規格的網路設備之間,為何有驚人價差的原因了。以上顯示的 IOS 命令輸出訊息中,並沒有發現在Linux 設備上所建立的 VLAN ID ,所以必須進入 IOS 的vlan database 建立這些 VLAN ,然後執行「exit」命令離開 vlan database ,如下圖所示。
--------------------------------------------------------------------------------
Page 7
Febrary 2006 Linux guide23最後,將此連接埠設定為 802.1Q 的模式,如下圖所示。以上就是在 Cisco 2950 交換器中所做的全部設定。如果將剛剛的設定以流程圖表示,內容如下:先於 vlan database 中建立所需的 VLAN選定交換器上的連接埠設定連接埠的屬性為 trunk 並且指定 VLAN設定完成經過以上分別針對 Linux 與 Cisco 設備的設定示範,我們讓 Cisco 2950 交換器的 FathEthernet 0/22 連接埠和Linux 的介面卡(eth0)連接,並且以 802.1Q 的通訊協定進行資料傳輸,我們不難看出 Cisco 有 UNIX 的影子存在,筆者接觸過的知名設備不下百種,所有高階設備的作業系統皆以 UNIX 架構為基礎,為的就是穩定和效能。 UNIX 好比是科學界中的物理一樣,為一切科學的發展基礎。網路設備的衍生,就如同電機學科是從物理的理論基礎出發,再按其應用方向(電路和機械)深度發展成為一門單獨的學科一樣。再者,分析目前社會發展的趨勢方向,可以想見未來幾年必定迫切需要具備跨領域多項思維能力的人才來處理更深層且更多元化的問題。因此,強烈建議已經熟悉系統的人,雖然你們已經比大多數的人成功了一半,但絕不要因此而停滯不前,趕緊配合原有的優勢拓展個人未來的發展空間,向網路邁進吧!現在,進入設定模式。可以在 enable 模式下執行 IOS的「configure terminal」命令來進入設定模式。然後使用「interface FastEthernet 0/22」命令進入 FastEthernet0/22 的介面設定模式,這裡又可以看到單一連接埠可以設定的眾多命令,一整頁都顯示不完。筆記欄VLAN protocol 與 Cisco 設備的介接關係與設定
沒有留言:
張貼留言