<b>Trunking</b>
多個相同vlan跨越交換機通信,可以通過為交換機間的連接配接端口配置trunk來實作。
廢話不說,直接上指令(下面的實驗都是在Packet Tracer5.0上完成的,使用的指令也是基于IOS的)
<b>Switchport mode {trunk | nonegotiate | dynamic{atuo | desirable | }}</b>
<b>Trunk</b><b>:</b> <b>啟用</b><b>trunk,</b><b>也發送</b><b>DTP</b><b>(</b><b>dynamic trunk protocol</b><b>)信号,比較特殊的指令</b>
<b>Nonegotiate</b><b>:</b> <b>啟用</b><b>trunkkng</b><b>,但是禁用</b><b>DTP</b><b>,故隻能和</b><b>trunk</b><b>與</b><b>nonegotiate</b><b>組建</b><b>trunking</b>
<b>Dynamic desirable</b>:<b>主動協商建立</b><b>trunking</b><b>,發送并接收</b><b>DTP</b><b>信号</b>
<b>Dynamic auto</b>: <b>被動協商建立</b><b>trunking</b><b>,隻接收不發送</b><b>DTP</b><b>信号</b>
<b>No switchport mode trunk </b><b>:關閉</b><b>trunking</b>
實驗拓撲如下:
如上圖所示,上下pc在同一個vlan裡,共有四個(1,2,3,4)
配置如下:
首先在各交換機上建立VLAN,并為vlan1配置管理位址。
Vlan data
Vlan 1 name 001
Vlan 2 name 002
Vlan 3 name 003
Vlan 4 name 004
Int vlna 1
Ip add 10.1.1.1 255.255.255.0
No sh
下面進入正題
(Swit10)
<b>Conf t </b>
<b>Int fa0/1</b>
<b>Swit mod acc </b><b>!!!</b><b>将端口模式配置為</b><b>access</b>
<b>Swit acc vlan 1 </b><b>!!!</b><b>将端口劃分到</b><b>vlan 1</b>
<b>No ip add</b>
<b>No sh</b>
<b>Exit</b>
Int fa0/2
Swit mod acc
Swit acc vlan 2
No ip add
Exit
Int fa0/3
Siwt mod add
Swit acc vlan 3
Int fa0/4
Swit acc vlan 4
(将四個端口劃分到四個vlan下)
<b>Int g1/1</b>
<b>Swit mod trunk </b><b>!!!</b><b>将端口模式設定為</b><b>trunk</b><b> </b>
<b>Swit trunk allow vlan 1-4 </b><b>!!!</b><b>允許通信的</b><b>vlan</b><b>為</b><b>1-4</b><b></b>
<b>Swit trunk native vlan 1 </b><b>!!!</b><b>本地</b><b>vlan</b><b>設為</b><b>vlan 1</b><b>,這也是預設設定</b><b></b>
(配置trunk端口)
另一個接入2950交換機作類似配置。
下面是2960交換機的配置:
Conf t
Int g1/1
Swit mod trunk
Swit trunk all vlan 1-4
Swit trunk native 1
另外兩個端口做類似配置
下面是路由器的配置,使用邏輯連接配接方式,配置子接口
<b>Int g1/1.1 </b><b>!!!</b><b>建立第一個子接口</b><b></b>
<b>Encap dot1q 1 native </b><b>!!!</b><b>封裝模式為</b><b>dot1q</b><b>,本地</b><b>vlan</b><b>為</b><b>vlan1</b><b>(很重要!)</b><b></b>
<b>Ip add 192.168.10.1 255.255.255.0 </b><b>!!!</b><b>為該接口下的</b><b>vlan</b><b>設定網關</b><b></b>
Int g1/1.2
Encap dot1q 2
Ip add 192.168.20.1 255.255.255.0
Int g1/1.3
Encap dot1q 3
Ip add 192.168.30.1 255.255.255.0
Int g1/1.4
Encap dot1q 4
Ip add 192.168.40.1 255.255.255.0
如此這般,注意些細節問題一個簡單的vlan實驗差不多就可以完成了。vlan間可以互相通信,如果去掉路由的話,vlan間無法通信,但是vlan内可通信。
下面是幾個需要注意的問題:
1. 某些交換機不支援DTP,如CISCO的2950和3500XL,他們總是處于nonegotiate狀态,是以他不會和對方的端口協商,隻有對方的端口為trunk或者nonegotiate狀态時才可能形成trunk
2. 選擇一條trunk鍊路的時候還要注意其封裝模式,不同的裝置封裝情況也差異。配置封裝模式的指令為:
<b>Swit trunk encap {isl | dot1q | negotiate}</b>
ISL是在802.Q标準出現之前的許多年就被Cisco制定了并專門用于Cisco裝置的一種标準。所有一些比較老的裝置隻支援ISL。但是這些年一些新的交換機也開始支援802.Q了,對自家的ISL反而不支援了,如2960交換機。2900XL和2500XL的trunk預設為ISL,2950和一些4000交換機則隻支援802.1q,在配置的時候我們注意這點就可以了,敲幾個指令試試看可否配置,不可配置的依預設的就可以了。本實驗的幾台機器都不支援此指令,是以無法使用。
3. native vlan 在兩台相連的裝置之間必須要設定相同,否則将有非預期的結果,在另一篇轉載文章中有說明。因尚未試驗驗證,故不敢妄下斷言。
4.特别注意使用以下指令含義:
switch trunk allow vlan 10
此時的含義是隻允許通過VLAN 10
所有當我們連續敲上這樣的兩條指令的時候
switch trunk allow vlan 20
他的結果并不是允許vlan 10 和vlan 20 通過,而是隻允許vlan 20 通過。這一點要注意!正确的輸入指令如下:
switch trunk allow vlan add 10
switch trunk allow vlan add 20
當我們對通過的vlan沒有限制要求時,可以直接使用這一句:
switch trunk allow vlan all