免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3864 | 回复: 3

利用VLAN protocol技術建立Linux和Cisco設備之間的完善互動[轉貼] [复制链接]

论坛徽章:
0
发表于 2007-07-20 10:07 |显示全部楼层





        對於一個剛進 IT
的領域的初學者 (rookies) ,其所學習的領域可以概括網路、系統、以及程式設計,每一個領域都需要相當的時間去熟悉,並且在 IT
業界中的面試分類通常也是根據這三類來應徵人員,因此,在業界十幾年的我們,往往看到非常熟悉網路的工程師不熟系統及程式設計,非常熟悉系統的工程師不熟網路及程式設計,非常熟悉程式設計的工程師不熟網路及系統;原因是當一頭栽進去一個領域的時候,如果要轉換到另一個領域時,幾乎就是重新開始,有多少人有辦法承受原本的高薪變為低薪,原本受人尊重的經驗變成一文不值,因此,轉換跑道的機率就漸漸降低了。
總而言之,如果在 IT 業界要往上爬的話,對網路、系統、程式設計此三項領域深入了解,是不可或缺的條件。 有鑒於在台灣對於網路以及 LINUX
深度結合的文章並不多,因此 Ben 哥以及奇科電腦教育的學員們特別就 VLAN 在 LINUX
設備上的運用,以上課內容為基礎並輔以圖文表現的方式,務求各位讀者能夠完全了解其設定方式,以及與 CISCO
設備的連結方式與技巧。

本技術文件實驗所需的設備清單如下 ( 見下附圖 ) :


  LINUX 機器乙台 ( 需要有乙太網路卡 100Mb/s 以上 ) 。


CISCO 2950 系列第二層交換器。


  乙太網路線乙條。

何謂 VLAN( 虛擬區域網路 )

         VLAN 就是能夠在乙太網路交換器、第三層交換器 (Layer 3 Switch)
、路由器、或是其他支援 VLAN 的設備中,區隔區域網路的一種方式。如果我們以 IEEE 的定義來解釋 VLAN
或許過於生硬及不易了解,所以,我們使用較為生活化的方式來解釋 VLAN 的意義;我想早期讀者們要做網路連結,都用過集線器 (HUB)
,集線器的功能就是傳遞或是加強電氣訊號,也就是以 OSI 七層定義中的第一層 ( 物理層 )
為基礎所用的設備,現在已經鮮少出現在市面上了,取而代之的是所謂的集線交換器 (SWITCH HUB) ,也就是最基本的交換器,那為什麼要稱為 SWITCH
HUB 呢?原因無它,跟科技一點關係也沒有,純粹是在行銷上的一種名詞定義,在此不多作贅述,在我上課的時候常常遇到學生問道,那麼 SWITCH 跟 HUB
有什麼差異呢? 剛剛我們已經對 HUB 做了一個最簡單的定義了, SWITCH 的定義就是它可以了解 OSI 七層中第二層 ( 資料鏈結層 )
的資料,簡單來說,也就是它能夠學習及記憶連接機器的 MAC(Media Access Control) 位址,根據 MAC 位址來過濾封包的目的
(Forwarding/Filtering)
,進而提升連接機器們之間的傳輸效率。
         那麼各位讀者如果有使用過以上所提的產品,有沒有發現到每個連接的機器必須要在同一個區域網路
(network) 下,才能進行資料交換,因此,當我們想要在一台 HUB 或是 SWITCH HUB
能夠擁有兩個或是兩個以上完全獨立的區域網路時,是沒有辦法達成的,一般的解決方案是使用兩個或是兩個以上的 HUB 或是 SWITCH HUB 來解決;因此,支援
VLAN 的交換器便提供了以一台設備區隔多個區域網路的功能了。
         舉例來說, CISCO 的小型交換器: 2950 、 3550
、 3650 、 3750 等系列的交換器,一台最多可以超過 50 個連接埠,而每個連接埠都可以被設定為不同的區域網路,在這個例子裡就表示有 50 個以上的
VLAN 存在於此交換器裡,並且可以藉由 VLAN 的標準與不同廠牌的交換器,透過 trunk 達成資料交換。

認識 802.1Q

         IEEE Standards
for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks
文件編號為 802.1Q-1998 ,於西元 1998 年 12 月 8 日
定稿,明確地定義了 ” 虛擬橋接區域網路 ”(Virtual Bridged LANs) 的架構,及其所提供的服務,也詳細說明了服務所需要的其它協定
(protocols) 和演算法 (algorithms) 。 因此,在 IT 業界裡,常常使用專有名詞 802.1Q 以及 VLAN 協定,來代表 VLAN
的功能。因此,當有人談到 802.1Q 就等於在說 VLAN ,談到 VLAN 就等於在說 802.1Q ,基本上 802.1Q 最大的用處是在乙太網路框架
(Frame) 的表頭上加上一個標記 (Tag) ,用來分辨來自不同 VLAN 的封包。

準備 LINUX 的設備

          VLAN
在 IT 業界的應用極廣,幾乎所有中高級網路或是電腦設備都具有此項功能,除了使用硬體 ASIC ( A pplication-
S pecific I ntegrated C
ircuit) 支援 VLAN 功能的設備以外, VLAN 亦可以透過軟體的方式安裝於作業系統,進而提供不同的作業系統擁有 VLAN
的功能,例如在微軟視窗系統上, Intel 網路卡的驅動程式即支援 VLA N ,在 LINUX 的系統中,只要所使用的 Linux 系統核心支援 VLAN
的話,則是哪一種網路卡都可以使用,現在讓我們來看看 VLAN 的功能位於核心選項的哪個位置,以下是使用 LINUX 核心 2.4.31 版的 make
xconfig 的選項畫面。






/proc/net/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 的目錄是否存在。
•  命令
dmesg 搭配 grep 所得出的輸出訊息。 在核心沒有提供 VLAN 功能的時候, 〝
dmesg | grep –i 802 〞是不會出現任何有關 802.1Q 的輸出。 在核心有支援 VLAN 功能的時候,應該會出現類似以下畫面的輸出訊息。

在核心沒有提供 VLAN 功能的情狀下,目錄 /proc/net/vlan
是不會存在的,如左圖所示。




  


  /proc/net/vlan 的存在與否。
在核心沒有提供 VLAN
功能的情狀下,目錄 /proc/net/vlan 是不會存在的,如下圖所示。




在核心有支援 VLAN 功能的狀況下,應該出現以下的輸出訊息。





截至目前為止,我們已經學習了如何判斷核心是否支援 VLAN
的功能,接下來我們看看如何把 802.1Q 的模組給載入核心:使用模組命令 modprobe 來載入〝 802.1q.o 〞模組,並且用命令 lsmod
確認模組已經被載入核心,如下圖所示。





確定我們現在所使用的 Linux 核心已經有支援 VLAN
功能的話,接下來就是設定的時候了,一般我們安裝 LINUX 的過程中,都會安裝 VLAN 相關的命令〝 vconfig 〞,如果沒有的話,可以安裝相關的 rpm
套件 ( 套件名稱通常以 vconfig 開頭,例如: vconfig-1.6-2.i386.rpm)。
另外,我們可以從 http://www.candelatech.com/~greear/vlan.html
下載原始碼使用,目前最新的版本為 1.9 版。現在我們來看看 vconfig
的設定選項以及其使用方法為何, 讀者們只需先執行 vconfig 即可,如下圖。


         VLAN 是以數字作為編號的,也就是所謂的 VLAN ID
,使用的方法也非常的簡單,只需一行命令就可以建立一個 VLAN 。 VLAN 介面的形式為  ‧  
,這裡請特別注意網路卡介面與 VLAN ID 之間是一個句點,有別於 IP Alias 的冒號 ( : ) ,假設我們要在 eth0 的介面卡上設立 VLAN
介面的話,有以下兩點須特別注意:

介面卡 eth0 必須是 up 的狀態,也就是說當我們執行 ifconfig 時可以看到 eth0 ,如果沒有的話,亦可以使用命令行
”/sbin/ifconfig eth0 up” 達成目的。 •


特別重要的是,介面卡 eth0 不能? IP 位址,
只有 VLAN 介面卡可以被設定 IP
位址,等一下,我們會詳細的介紹如何對 VLAN 介面設定 IP 位址。



請看以下圖示,說明了如何在 LINUX 的介面卡上設定 VLAN ,首先我們啟動 eth0 界面卡,然後觀察 eth0 是否有 IP
位址,請特別注意,介面卡 eth0 並沒有 IP 位址,接下來就使用命令 vconfig 建立一個 VLAN ,其 VLAN ID 為 6 ,看看
/proc/net/vlan 目錄下有何變化,我們可以看到多出了一個檔案名為 eth0.6 ,並且可使用命令 ifconfig 來確定 VLAN 介面是否存在。





一個實體介面卡上可以建立相當多的 VLAN 介面,我們現在來試試看如何配合 command script 來建立其它的 VLAN






接下來的步驟就是對每一個 VLAN 的介面設定 IP 位址,同樣的,也是使用 command script 來加速設定的過程。





增加了 VLAN 介面之後,接下來我們就談談如何移除 VLAN 介面,以下的圖示顯示了移除 VLAN 6 所需的命令,也就是使用命令
vconfig 的 rem 選項,再以 VLAN 介面為其引數即可。
以上就是在Linux設備中設定VLAN時所需的操作步驟。




CISCO Catalyst 2950/3550/3650/3750 交換器的設定
剛剛在 LINUX 的設備上建立了九個 VLAN ,其 ID 分別為 10 、 20 、
30 、 40 、 50 、 60 、 70 、 80 、 90 ,所以在網路設備上,我們也必須建立相同的 VLAN ID 才可以跟 LINUX
的設備作界接,此次我們實驗所使用的設備為 CISCO 2950T-24 的第二層交換器,以下為其所使用的版本別。



在這裡順道跟各位讀者說明一下, CISCO 絕大部分的交換器及路由器所使用的作業系統稱為 IOS(Internetwork Operating System) ,為 CISCO
設備的核心價值所在, CISCO 所生產的設備之所以能在市場佔有率高達 85% 以上, IOS
功不可沒,這也告訴了各位讀者,程式設計及系統調教的重要性。接下來我們來看看如何在 IOS 中建立 VLAN ,首先我們必須進入 enable 的模式,在
enable 的模式下才會有設定的基本權限,看看目前這個交換器有哪些既有的 VLAN ,然後進入 vlan database 建立我們想要的 VLAN
,請看以下圖示。





我們可以看到在上面的 IOS 命令的輸出訊息中,並沒有看到我們在 LINUX 設備上發現我們所建立的 VLAN ID ,所以,我們必須先進
IOS 的 vlan database 來建立這些 VLAN ,然後離開 vlan database ,如下圖所示。





我們要讓 CISCO 交換器與 LINUX 設備作界接,必須先選定一個連接埠,在這個交換器上, FastEthernet 0/22
並未被使用,我們可以利用這個連接埠來跟 LINUX 設備上的介面卡作界接;先來看看 FastEthernet 0/22
的狀態如何,各位應該沒想到一個簡單的連接埠竟然有如此多的屬性及資訊可供參考,這也正反映了一般規格和高規格的網路設備之間,為什麼會有如此之大的價差的原因之一;如下圖所示。





現在讓我們進入設定模式,可以於 enable 模式下使用 IOS 的〝 configure terminal
〞命令來進入設定模式,接下來可以經由〝 interface FastEthernet 0/22 〞命令進入 FastEthernet 0/22
的介面設定模式,這裡我們又可以看到單一連接埠可以設定的命令何其之多,一整頁都列不完;如下圖所示。





接下來我們就要設定此連接埠為 802.1Q 的模式,如下圖所示。





以上就是在 CISCO 2950 交換器中所需要的設定以及設定方法。
如果將剛剛的設定以流程圖表示,內容如下:




結論
         經過上面分別對 LINUX 與
CISCO 設備的設定過程,我們成功的讓 CISCO 2950 交換器的 FathEthernet 0/22 連接埠,可以正式的跟 LINUX 的介面卡
(eth0) 連接,並且以 802.1Q 的通訊協定進行資料傳輸了。由以上的練習,我們不難看出 CISCO 有 UNIX 的陰影存在, Ben
哥接觸過的知名設備不下百種,所有高階設備的作業系統皆以 UNIX 架構為基礎,為的就是穩定及效能, UNIX
就好像是科學界中的物理一樣,為一切科學的發展基礎,網路設備的衍生,就如同電機學科是從物理的理論基礎出發,再按其應用方向 ( 電路和機械 )
深度發展成為一門單獨的學科一樣;再者,按現在的社會發展趨勢方向,未來的幾年十分需要具有跨領域多項思維能力的人才來處理更深層且更多元化的問題。因此, Ben
哥強烈建議系統已經熟悉的人,你們已經比大多數的人成功了一半,但絕不要因此而停滯不前,趕緊配合原有的優勢拓展你未來的發展空間,向網路邁進吧 !!
Ben 哥非常高興有 LINUX GUIDE 這本雜誌的出現,提供了一個舞台讓很多有技術的人可以發揮,藉由 LINUX GUIDE 把一些
LINUX 技術及發展,秉持著 Linux 固有「自由軟體共有,知識智慧共享」的發展宗旨,即時的與 LINUX 的愛好者和廠商無私分享,相信會為台灣的
LINUX 發展注入一股活力氣息,相信長久持續下去之後,必然會匯集廣大的 Linux 群眾,成為 Linux 未來在台灣深耕發展一股不可抗拒的助力。
最後, Ben 哥也要感謝奇科電腦教育中協助這篇文章成稿的 CCNA 和 Linux
的學員及老師,感謝他們在文章撰寫的過程中,將兩邊的學生集結合作,將這篇文章內所有的設定步驟援用成課堂內操作練習的主題,並將測試後修正的結果提供給 Ben
哥作撰寫的重要參考資料 !!
如果您有任何技術上的問題,歡迎您隨時跟奇科電腦教育連絡,聯絡方式為: E-mail :
ask@geego.com.tw

網址 : http://
www.geego.com.tw
│免費專線: 0800296296 。 │ 地址:
台北市朱崙街60號3樓



               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34948/showart_343373.html

论坛徽章:
0
发表于 2012-02-23 16:02 |显示全部楼层
論壇管理員您們好:
可否協助刪除這篇文章,因為文章中的圖片連結皆以消失,
會造成本公司有Missing Links的情形發生。
所以想請您們協助移除這篇文章或重新刊登(有正確連結的文章和圖片)。

非常歡迎各位多加分享及引用。
奇科電腦 行銷部 http://www.geego.com.tw

论坛徽章:
0
发表于 2012-02-23 16:41 |显示全部楼层
論壇/部落格 版主你好:
可否協助刪除這篇文章,因為文章中的圖片連結皆以消失,
會造成本公司有Missing Links的情形發生。
所以想請您們協助移除這篇文章或重新刊登(有正確連結的文章和圖片)。

非常歡迎各位多加分享及引用。
奇科電腦 行銷部 http://www.geego.com.tw

论坛徽章:
0
发表于 2012-02-23 17:31 |显示全部楼层
本帖最后由 GeeGo 于 2012-02-23 17:33 编辑

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP