前言
Cisco 專利 Dynamic Trunking Protocol (DTP) 一般用於 Switch 與 Switch 之間建立 Trunk Link,其實蠻簡單的,只要搞得懂 Trunk、Dynamic Desirable、Dynamic Auto 這幾個模式,基本上就學完了。不過還是有一些要點很易被忽略,希望讀者也花點時間看看,溫故知新。
Access 與 Trunk
當我們把任何設備插進 Switch Port,如果沒有做任何設定的話,Switch 都會把這個 Port 設成 Access,即只容許 1 個 VLAN 的 Traffic 傳輸這個 Port。但如果這個 Port 有需要容許多個 VLAN 進出的話,例如用於 Switch 與 Switch 之間的連接,則需設成 Trunk。關於 VLAN 的理論,在 Virtual LAN (VLAN) 一文中已經介紹過,在此不再重覆。
要在 Switch Port 設定 Trunk 或 Access,最簡單的方法就是做一個 Static 的設定,硬性規定該 Port 跑 Access 還是 Trunk。值得一提的是,關於 DTP 的實驗建議用實體 Switch 做,比較準。
我們知道 switchport mode access 可強制把 Port 設成 Access
SW1(config-if)#switchport mode access
而 switchport mode trunk 則可強制把 Port 設成 Trunk,但在此之前必需先設定 trunk 的 encapsulation,否則會有錯誤訊息, encapsulation 可選 isl 或 dot1q,不過 isl 已經過時了,考試都不考了,現在一般都選 dot1q。
SW1(config-if)#switchport mode trunk
Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode.
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
要確認一個 port 是在跑 Access 還是 Trunk,很簡單,用 show interface <port> trunk 就可以。例如想看 FastEthernet 1/0/13 正在搞什麼?可用 show interface FastEthernet 1/0/13 trunk,如顯示 status 為 trunking 則正在跑 Trunk,如顥示 non-trunking,則正在跑 Access。
SW1#show interfaces fastEthernet 1/0/13 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/13 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa1/0/13 1-4094
Port Vlans allowed and active in management domain
Fa1/0/13 1,11-20
Port Vlans in spanning tree forwarding state and not pruned
Fa1/0/13 1,11-20
另外,如果 1 個 port 正在跑 Trunk,在 show vlan 是不會看到該 port 的 VLAN assignment。相反,如果自到,則該 Port 是 Access Port。
SW1#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa1/0/2, Fa1/0/3, Fa1/0/4 Fa1/0/5, Fa1/0/6, Fa1/0/7 Fa1/0/8, Fa1/0/9, Fa1/0/10 Fa1/0/11, Fa1/0/12, Fa1/0/14 Fa1/0/15, Fa1/0/16, Fa1/0/17 Fa1/0/18, Fa1/0/19, Fa1/0/20 Fa1/0/21, Fa1/0/22, Fa1/0/23 Fa1/0/24, Gi1/0/1, Gi1/0/2 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup <--Output Omitted-->
Dynamic Trunking Protocol (DTP)
終於入正題,我們試試用 Dynamic 的方法去建立 Trunk Link,即 Dynamic Trunking Protocol (DTP),DTP 會透過 DTP Message 嘗試著幫 Switch Port 溝通並建立 Trunk Link,DTP 有兩個模式,分別是 Desirable 和 Auto,幻想一下,Desirable 和 Auto 就像一對剛剛有了感覺的男女,就差一方表白便可幸福快樂地在一起 (變成 Trunk)!Desirable 是願意做主動的一方,Auto 是被動的一方,感情這回事,只要一方肯作主動便水到渠成。所以,如果兩個 Port 一端是 Desirable (主動 Send DTP Message),另一端是 Auto (收到 DTP Message 便會回應),則可成 Trunk。如果兩邊都是 Desirable,也可成 Trunk。但若兩邊都是 Auto,不可成 Trunk,回歸 Access,孤獨一生。
設定 DTP 可使用 switchport mode dynamic <desirable/auto> 指令。
SW1#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID Local Intrfce Holdtme Capability Platform Port ID
SW2 Fas 1/0/13 137 S I WS-C3750- Fas 1/0/13
SW1(config-if)#switchport mode dynamic desirable
SW2(config)#int fastEthernet 1/0/13
SW2(config-if)#switchport mode dynamic desirable
SW1#show interfaces fastEthernet 1/0/13 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/13 desirable 802.1q trunking 1
<--Output Omitted-->
當設定 Desirable 後,Switch 會立刻發放 DTP Message,如對方回應後則可成 Trunk,而 Desirable 會每隔 30 秒發放 DTP Message 去維持這一段關係。可以用 show dtp 去確認一下。
SW1#show dtp
Global DTP information
Sending DTP Hello packets every 30 seconds
Dynamic Trunk timeout is 300 seconds
3 interfaces using DTP
如果兩邊都設成 Auto 的話,就變回 Access Port 了。
SW1(config)#int fastEthernet 1/0/13 SW1(config-if)#switchport mode dynamic auto
SW2(config)#int fastEthernet 1/0/13 SW2(config-if)#switchport mode dynamic auto
SW1#show int fastEthernet 1/0/13 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/13 auto 802.1q not-trunking 1
<--Output Omitted-->
SW1(config)#int fastEthernet 1/0/13
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW2(config)#int fastEthernet 1/0/13
SW2(config-if)#switchport mode dynamic desirable
SW1#show interfaces fastEthernet 1/0/13 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/13 desirable 802.1q trunking 1
<--Output Omitted-->
那麽 Trunk Mode 和 Dynamic Desirable Mode 到底有什麼分別?
分別 1
Trunk Mode 可以關掉 DTP Message,但 Dynamic Desirable Mode 不可,如果想把 DTP Message 的 Bandwidth 都省掉的話,大可兩邊 Port 都用 Trunk Mode,然後兩邊都使用指令 switchport nonegotiate 去把 DTP Message 關掉。
分別 2
Dynamic Desirable Mode 如果遇到另一邊是 Access Mode 的話,是會變成 Access 的。但如果 Trunk Mode 遇到 Access Mode 是沒有相量餘地的,會堅持執行 Trunk,於是會出現一邊 Trunk 而另一邊是 Access 的現象,是不合理的。
相信大家都開始有點混亂,現在用以下對照表作一個小小總結。
Access Mode | Trunk Mode ⭐ | Dynamic Desirable | Dynamic Auto | |
---|---|---|---|---|
Access Mode | Access | 不合理 | Access | Access |
Trunk Mode ⭐ | 不合理 | Trunk | Trunk | Trunk |
Dynamic Desirable | Access | Trunk | Trunk | Trunk |
Dynamic Auto | Access | Trunk | Trunk | Access |
⭐不使用 switchport nonegotiate 的情況
DTP 與 VTP Domain
有件事一直很容易被忽略,就是以 Trunk Link 連接的兩隻 Switch 必需有相同的 VTP Domain,否則無論使用 Static 設定還是 Dynamic 設定都不可成 Trunk。關於 VTP 的說明,請參考 VLAN Trunking Protocol (VTP) 一文。
相關主題
Jan Ho 2016-12-18
Posted In: Layer 2 網絡技術
發佈留言