DTP 的作用与代价
DTP 是思科的私有链路协商协议,接口处在 dynamic auto 或 dynamic desirable 时,双方通过 DTP 报文协商是否把链路变成 Trunk。代价有两个:协商带来额外的收敛延迟,且 DTP 报文本身构成攻击面。生产网因此倾向于把上行与互联口显式配成 trunk,再用 nonegotiate 把协商关掉,让链路状态完全由配置决定。
基本信息
| 适用设备 | 思科 IOS/IOS-XE 交换机 |
|---|---|
| 模式取值 | access、trunk、dynamic auto、dynamic desirable |
| 关闭协商 | switchport nonegotiate,仅在接口已是 trunk 时可用 |
| 查看命令 | show dtp interface |
| 排查提示 | 协商结果与 native VLAN、VLAN 允许列表需一起核对 |
典型使用场景
- 接入交换机上联口:显式 trunk 加 nonegotiate,避免协商引入的收敛时间
- 对接非思科设备(服务器网卡、异构交换机)时关闭协商,避免报文被误处理
- 安全加固:减少 DTP 相关攻击面,防止链路被协商成预期之外的形态
- 排障:确认链路是被协商还是被静态指定为 trunk
- 交付验收:检查是否存在只有一端配 trunk、另一端靠协商的临时配置
- 对接服务器网卡聚合时关闭协商:网卡侧不跑 DTP,链路形态应由两端静态配置决定
关闭协商
关闭协商
interface GigabitEthernet1/0/24
switchport trunk encapsulation dot1q # 部分平台需先指定封装类型
switchport mode trunk # 先固定为 trunk 模式
switchport nonegotiate # 再关闭 DTP 协商
switchport trunk allowed vlan 10,20,30 # 明确放行列表,不依赖协商结果
!
show dtp interface GigabitEthernet1/0/24 # 查看协商状态与报文统计
show interfaces GigabitEthernet1/0/24 switchport # 确认最终生效的形态模式组合结果
| 本端 | 对端 | 链路结果 |
|---|---|---|
| trunk + nonegotiate | trunk | 稳定 trunk,无协商 |
| dynamic auto | dynamic auto | 协商为 access |
| dynamic auto | dynamic desirable | 协商为 trunk |
| dynamic desirable | dynamic desirable | 协商为 trunk |
| trunk + nonegotiate | dynamic auto | 对端保持 access,易造成不通 |
nonegotiate 只能在已经是 trunk 模式的接口上配置,顺序颠倒会直接被设备拒绝。部分平台还需要先指定 trunk 的封装类型,命令依平台与版本略有差异。
DTP 报文以不带标签的方式发送,native VLAN 两端不一致会导致协商异常或协商出非预期结果。改 native VLAN 前先确认是否有关闭协商的空档期。