http://www.babyface.idv.tw/NetAdmin/202007093com4500/
3Com 4500 Switch 設定與 Linux MRTG、VLAN Tag 應用
作者:徐秉義(Albert Hsu)
此款 3Com 4500 Switch 共有 26 埠可供使用,其中第 01~24 埠是 10/100 Mbps
介面、第25、26這兩個是光纖埠(需加購 GBIC 才能使用)第27、28埠則是 Gigabit RJ45 接頭的
Port,比較需要注意到的是,第25~28埠是採兩、兩 combo 方式,意思是 25~27 二選一使用、26~28 也是二選一使用。
這款 Switch 可以堆疊(Stack)至多八台,也因此就介紹堆疊此款 Switch 相關指令與概念;另外本文也將介紹 Linux
應用 MRTG 繪製 switch 的流量圖表;以及 Linux 上使用 vconfig 指令與載入 802.1q 模組,使 Linux 懂得
VLAN Tagged 與 Switch 不同的 VLAN 做溝通等等。
連接 Com Port
此款使用的 Com Port 連接方式與一般預設值的 9600-8-N-1 稍有不同,而是 19200-8-N-1,連接上的預設帳號 admin 密碼則是空的,馬上就可以開始管理囉!
溫馨提示:在 Windows 除了「超級終端機」以外,下載 putty.exe 也可以用來連接 Com Port。
![Com Port 連線](http://www.babyface.idv.tw/NetAdmin/202007093com4500/19200.jpg)
設定 IP 與遮罩
設定 IP 方式請先使用「system-view」切到系統顯示模式,使用「interface Vlan-interface 1」切換到預設的 vlan 1,使用「ip address X.X.X.X 遮罩」來設定 IP 與遮罩。
圖為設定情形快照,許多行都有按下 TAB 鍵來補齊指令,也可以按下「?」來看接下來要輸入甚麼資訊。
![設定 IP](http://www.babyface.idv.tw/NetAdmin/202007093com4500/configIP.jpg)
上圖中 ip 172.18.63.66 後面的 18 指的是遮罩 255.255.192.0,使用 display interface Vlan-interface 1 觀察設定好的 IP。
溫馨提示:3Com 的 display 指令像是 Cisco 的 show 指令。
設定好之後就可以使用 telnet 遠端登入 switch 做設定,也就是可以不用 Com Port 來連線了。
若要存檔請使用 save 指令,請記得要使用 quit 指令退到最上層(提示符號 <sysname>才可以使用 save 指令儲存設定)
設定密碼
可以遠端登入後,還是設定一下密碼比較安全,先至「system-view」後,輸入「local-user admin」到本地使用者 admin 層級,再使用「password simple passwd」設定密碼,本範例將密碼設定成『passwd』
溫馨提示:筆者在用 Linux telnet 設定時,遇到 Backspace 無法使用的問題,都是使用 Ctrl-h 來使用倒退鍵的功能。
![設定密碼](http://www.babyface.idv.tw/NetAdmin/202007093com4500/setPasswd.png)
除了 Tab 鍵用來補齊命令以外,上圖中的『?』問號鍵也是一個好幫手,能夠提示接下來的該輸入怎樣的資料與資訊。
顯示 Port 狀態
3com 4500 這台 Port 模式大概有三種:預設所有的埠皆是 access Port;若要做 VLAN trunk 就將埠設定成 trunk 模式;最後一種是 hybrid 模式,此模式應用方式較特殊,本文也就沒有提到。
25 到 28 那四個 Gigabit 埠,是採用二選一 Combo 的方式,也就是 25 與 27 一組;26 與 28 一組,每一組只能啟動一個埠號,預設值是啟用 25、26 這兩個光纖埠。
![顯示 Port 狀態](http://www.babyface.idv.tw/NetAdmin/202007093com4500/displayPort.png)
VLAN 相關設定指令
在本刊第十四期中,筆者曾經介紹過 VLAN 在一般中小企業應用概況,以及 802.1Q VLAN 概念原理等等,所以這次設定 VLAN
的部份,就只介紹 3com 這個型號(4500)VLAN 相關設定指令就可以了,至於較 3com 較低階的產品採用
menu(選單模式)使用介面,本刊第十四期已經提過就不在重複。
新增、顯示、刪除 vlan
顯示有那些 VLAN:display vlan
顯示某個 VLAN Tag/Untag 埠:display vlan VLANID
新增某個 VLAN:vlan VLANID
刪除某個 VLAN:undo vlan VLANID
溫馨提示:這裡的 undo 指令類似 cisco 之 no 指令
下圖是以 VLAN 2 為範本的操作情形。
![vlan 範本](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vlan.png)
將某個 access 埠設定屬於某個 vlan 且 Untag
先使用 vlan VLANID 進入此 vlan 等級
port Ethernet或GigabitEthernet 埠號(可以單獨一個埠或連續埠)
同樣的 undo port Ethernet或GigabitEthernet 埠號,則可復原成原狀。
下圖是將第 23 埠屬與 VLAN 2 且 Untag 操作情形。
![vlan2 範本](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vlan2.png)
下圖是將第 20 埠到 22 埠屬與 VLAN 2 且 Untag 操作情形。
![vlan3 範本](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vlan3.png)
溫馨提示:Untag 埠可在此層級或是在某個埠的 interface 設定(隨後介紹)但若要設定 Tagged 埠,需要進入某個埠的 Interface 層級才能設定。
例如:interface ethernet 2/0/3
port access vlan 4
「port link-type access」是用來變換 link-type 用的,type 有 access 與 trunk 比較用的到。
設定 vlan 介面 IP
若您要設定其他 vlan(例如 vlan 2)的 IP 位址,可不是在 vlan 2 模式下設定,而是要在 interface
Vlan-interface 2 模式下,像類似 interface Vlan-interface 1 的動作,來設定 IP,設定完畢後使用
display interface Vlan-interface VLANID 來顯示設定,下圖為將 Vlan-interface 2 設定
IP 成 1.2.3.4 遮罩 255.255.255.0
溫馨提示:這台 4500 是 Layer 3 switch,所以每個 VLAN 介面都可設定 IP 位址。
![vlan 2 設定 IP 範本](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vlan2setIP.png)
設定 trunk 埠及 Tagged VLAN
概念上要先將某個埠定義成 trunk 埠,接著設定允許那些 VLAN 的 Tagged,底下以將第 19 埠定義成 trunk 埠,並允許傳輸 VLAN 2 Tagged,至於對接的那台 Switch 也要這樣設定才會正常。
使用指令 interface Ethernet 1/0/19 切到第 19 埠介面
使用指令 port link-type trunk 將埠類型改成 trunk port
使用指令 port trunk permit vlan ? 看是要允許所有 VLAN(ALL)或是特定 VLAN(例如 2)
圖為只允許 VLAN 2 trunk 埠的設定快照
![trunk](http://www.babyface.idv.tw/NetAdmin/202007093com4500/trunk.png)
使用指令 display vlan 2 看到的情況,請注意第 19 埠 Tagged。
![vlan Tagged](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vlan2Tag.png)
網路介面硬體位址(Mac)相關指令介紹
使用指令 display mac-address 可以顯示此 switch 所學到(Learned)的 Mac Address,他採用 more 做分頁,所以使用「 / 」可向下搜尋關鍵字來快速找到目標 Mac Address。
![display mac](http://www.babyface.idv.tw/NetAdmin/202007093com4500/displayMac.png)
在企業環境中主機一多,難免有中毒、不小架設或啟用了 DHCP 伺服器,都會造成 IT/MIS 不小的負擔,而這些搗蛋主機,最常暴露出的就是 IP 位址,由 IP 位址查出 Mac Address 也不難(利用 arp 指令)
找到搗蛋主機位於 switch 那個 Port 後,就不難處理了,看是要關掉那個 Port,還是直接去找主機(或是主機的主人)都可以快速的解決問題,也避免災難(中毒)擴大。
堆疊(Stack)相關指令介紹
這款(4500)能夠堆疊至多八台,而有做堆疊與沒做堆疊的 Switch 在管理方面是相差很大,假設有四台 4500 switch 有堆疊與沒堆疊差異比較表如下:
尚未堆疊 | 堆疊之後 |
switch 管理IP四個 | switch 管理IP一個 |
VLAN trunk 埠需手動管理 | 由堆疊埠自行處理 VLAN trunk |
四台獨立的 switch | 一大台 switch 有四個單位 |
堆疊概念圖
![stack](http://www.babyface.idv.tw/NetAdmin/202007093com4500/stack.png)
筆者已經有一組堆疊好了三台,將要堆疊第四台的情形敘述如下:
概念上來說,堆疊的 switch sysname 要一樣,並且左邊的 Gigabit Port 連到上一台、右邊的 Gigabit Port 連到下一台,預設 3com 會自行調整 Unit(單位號碼)所以不一定要手動調整。
筆者是採用 Gigabit Ethernet(RJ45)接頭埠(也就是 g1/0/27 與 g1/0/28)來做堆疊,所以第一步就是將 combo Port 切換至 27 與 28(而不是預設的 25 與 26)
第一步:連至上部的 switch 使用指令 interface GigabitEthernet
3/0/28(筆者的是第三台接第四台,所以是 3/0/28)使用 undo shutdown 指令來切換啟用第 28 埠(需要重開
switch)display port combo 可顯示 combo port 在用與沒在用的是那些。
![switch combo](http://www.babyface.idv.tw/NetAdmin/202007093com4500/switchcombo.png)
第二步:確認 sysname 之後(筆者的是 sw01),使用指令 fabric-port GigabitEthernet 3/0/28 enable 來啟用堆疊埠。
![fabric](http://www.babyface.idv.tw/NetAdmin/202007093com4500/fabric.png)
第三步:連至下部的 switch 使用指令 interface GigabitEthernet 1/0/27 使用 undo shutdown 指令來切換啟用第 27 埠(需要重開 switch)。
![undo shutdown](http://www.babyface.idv.tw/NetAdmin/202007093com4500/undoshutdown.png)
第四步:使用指令 fabric-port GigabitEthernet 1/0/27 enable 來啟用堆疊埠,sysname sw01,將 sysname 改成與上部 switch 一樣的 sw01。
![sysname sw01](http://www.babyface.idv.tw/NetAdmin/202007093com4500/sysnamesw01.png)
完成後就可以使用單獨一個管控介面來控制兩台以上的 switch。
使用 Linux 做 switch 網路介面 mrtg 流量圖表
3Com 4500 預設已經開啟 snmp 所以我們可以使用 Linux 做 mrtg 流量圖表,顯示這部份的相關設定在 system-view 後 display th 即可觀察到 snmp 相關設定。
![snmp](http://www.babyface.idv.tw/NetAdmin/202007093com4500/snmp.png)
第一步:我們以 RHEL5 為例,在安裝了 mrtg 套件後,使用 cfgmaker switch_IP位置 來製作 mrtg 設定檔,筆者經過多次測試後,所使用的指令與選項簡介如下:
cfgmaker --ifref=name --global 'WorkDir: /var/www/mrtg' --global
'Options[_]: bits,growright' --global 'RunAsDaemon: Yes'
--zero-speed=100000000 --show-op-down '--if-filter=$default &&
$if_type!=1 && $if_type!=23' --output /etc/mrtg/test.cfg
172.18.63.1
--ifref=name 使用介面名稱(例 e1/0/1)來顯示
WorkDir: /var/www/mrtg 放網頁的資料在 /var/www/mrtg
bits 單位使用 bits,growright 圖形的單位走向右邊
RunAsDaemon: Yes 使用 Daemon 方式跑(不然就要使用 crontab 五分鐘跑一次)
--show-op-down 介面的狀態是 down 的依然顯示(需搭配 --zero-speed=100000000 選項)
--if-filter 那一些設定使得某些介面的流量不顯示(例如 Management Port)
--output /etc/mrtg/test.cfg 設定輸出至 /etc/mrtg/test.cfg
向 172.18.63.1 這台 switch 要到的 snmp 資訊寫成 /etc/mrtg/test.cfg 設定檔
![mrtg](http://www.babyface.idv.tw/NetAdmin/202007093com4500/mrtg.png)
第二步:使用如上圖的指令 indexmaker /etc/mrtg/test.cfg --output=/var/www/mrtg/index.html 輸出網頁索引檔案於 /var/www/mrtg/index.html
第三步:使用指令 mrtg /etc/mrtg/test.cfg 暨 env LANG=C /usr/bin/mrtg /etc/mrtg/test.cfg 實際開始抓取資料繪製成圖表(Daemonizing 運作方式)
![mrtg2](http://www.babyface.idv.tw/NetAdmin/202007093com4500/mrtg2.png)
第四步:若是本機瀏覽使用 firefox /var/www/mrtg/index.html 即可;若是透過 Apache 則需要啟動 httpd 服務後,使用 http://主機名稱或IP/mrtg 即可看到流量網頁。
下圖是啟動不久後的 mrtg ,顯示出少部份流量的圖表,每個圖表還可以在點進去觀看詳細資料。
溫馨提示:RHEL5 Apache 預設將 http://hostname/mrtg 使用 alias 指向到 /var/www/mrtg/
![graph](http://www.babyface.idv.tw/NetAdmin/202007093com4500/graph.png)
Layer2 Switch+Linux 搖身一變 Layer3 Switch
雖然現在 Layer3 Switch 在價格上已經漸漸的平價化,但若是 Layer2 Switch+Linux 也可以實現「單臂路由」,也不失為一個好的變通方式。
單臂路由
這個「單臂路由」名詞,是從大陸聽來的(網路上),以底下的圖為例,Layer 2 Switch 上存在多個 VLAN(假設有 VLAN
1、VLAN 2、VLAN 3)分別是 10.0.0.0/8、172.16.0.0/16、192.168.2.0/24 這三個網段。
![layer 3](http://www.babyface.idv.tw/NetAdmin/202007093com4500/l3.png)
因為 Layer 2 Switch 沒有 routing 功能,所以我們只好借助 router 某一埠與 Switch 某一埠做
Trunk(假設 VLAN 1 untag、VLAN2 與 VLAN 3 都 tagged)之後分別在 router interface
VLAN 1、2、3 上設定各自網段 IP 位址後,VLAN 之間就可透過「單臂」(就是 Router 那個埠分屬於三個 VLAN 的三個
IP)來做路由。
當我們設定 Linux 聽的懂 802.1Q VLAN Tag 後(並且記得啟動路由功能 ip_forward),功能之一是用
Linux 當路由器,就可以取代上圖那個 Router 的地位。功能二是末端節點 Linux 主機(接在 Switch Edge
Port)應用此 Linux 帶 802.1Q Tag 設定方式即可同時存取兩個以上不同的 VLAN 這對於做網路管理的人員來說會是相當地方便。
溫馨提示:3Com 4500 本身就是 Layer 3 Switch ,筆者玩這個純粹是以 PC 做 Trunk 來存取不同 VLAN。
設定範例
第一步:先將接到 Linux 主機的 Switch Port 模式設定成 Trunk。
筆者是以另一台 switch 為例,下圖是設定將 g3/0/2 埠,設定成 Trunk Port,並允許 VLAN 3 Tagged
溫馨提示:指令 display th 的「th」是 this 之意,顯示的資訊精簡且效果好。
![sw7750](http://www.babyface.idv.tw/NetAdmin/202007093com4500/sw7750.png)
第二步:Linux 使用 vconfig 指令來使一個網路介面(例 eth0)存取兩個以上的 VLAN
使用指令 vconfig add eth0 3 使 Linux 懂得 VLAN 3 Tagged,此時 Linux 應該會自動加掛 8021q 模組,若沒有自動載入,請自行手動使用指令 modprobe 8021q 載入此模組。
溫馨提示:SuSE 的 vconfig 指令,在套件 vlan 內。
圖為測試快照,在成功連接 VLAN 3 Tagged 後,使用 dhclient eth0.3 抓 VLAN 3 內 DHCP 伺服器取得網路設定情形(也可以設定靜態 IP 位址來連接)
![vconfig](http://www.babyface.idv.tw/NetAdmin/202007093com4500/vconfig.png)
使用 ifconfig -a 可以看到此時 Linux 跨越兩個 Broadcast Domain(在此也就是 VLAN 1 與 VLAN 3)
![eth0.3](http://www.babyface.idv.tw/NetAdmin/202007093com4500/eth0.3.png)
溫馨提示:若 Linux 要當 router 使用則記得要開啟 ip_forward 功能。