前言
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 2021-07-22
Posted In: Layer 2 网络技术
发表回复