消除误敲命令的 DNS 卡顿
设备开着域名解析时,你在用户视图下敲错一条命令,设备会先把这串字符当成主机名去解析:发 DNS 查询、等待超时,光标卡住数秒才有反应。这种现象非常容易被误判为「设备很卡」甚至「CPU 过高」。处理办法有两个:关掉不用的域名解析,或者确保所配的 DNS 服务器确实可达、响应够快。思科还有第二个坑:旧配置里的 transport preferred 会让误敲的主机名直接触发一次出站连接。
基本信息
| 适用平台 | 华为 VRP(undo dns resolve)、思科 IOS(no ip domain-lookup)、H3C Comware(undo dns resolve) |
|---|---|
| 典型现象 | 敲错命令后光标停顿数秒,设备无其他异常 |
| 判断方法 | 看是否有 DNS 服务器配置、DNS 地址是否可达 |
| 思科附加项 | line 下 transport preferred 触发 Telnet 出站连接,需一并处理 |
| 关闭影响 | 设备无法再用域名做连通性测试或按域名登录 |
典型使用场景
- 运维手感优化:日常敲命令频繁输错时,关闭解析立竿见影
- 误判排查:现场反映「设备反应慢」,先排除 DNS 等待这类伪性能问题
- 无 DNS 环境:内网没有 DNS 服务器,开着解析只会带来无效等待
- 故障录制:演示或录制操作过程时避免无关停顿
- 批量脚本:自动化脚本误敲时不会被解析超时拖慢
华为 VRP
华为 VRP
[Huawei] undo dns resolve # 关闭域名解析,误敲命令不再等待
[Huawei] display dns server # 确认是否还有配置残留
! 需要按域名跳转时再按需开启
[Huawei] dns resolve
[Huawei] dns server 10.10.0.53 # 开启时要保证该地址可达思科 IOS
思科 IOS
SW-CORE-01(config)# no ip domain-lookup # 关闭域名解析
SW-CORE-01(config)# line vty 0 4
SW-CORE-01(config-line)# transport preferred none # 防止误敲主机名触发 Telnet
SW-CORE-01(config)# line console 0
SW-CORE-01(config-line)# transport preferred none # Console 同理
SW-CORE-01# show running-config | include domain-lookupH3C Comware
H3C Comware
[H3C] undo dns resolve
<H3C> display dns server
! 需要解析时再开启:dns resolve + dns server <地址>
! 部分版本另有命令控制交互式停机等待行为,用 ? 确认两类卡顿要分清
| 现象 | 原因 | 处理 |
|---|---|---|
| 敲错命令后停顿数秒 | 域名解析等待超时 | 关闭 dns resolve / no ip domain-lookup |
| 敲主机名后长时间无响应 | transport preferred 触发出站 Telnet | line 下配置 transport preferred none |
| ping 域名一直不通 | DNS 地址不可达 | 改用可达的内网 DNS 或直接 ping IP |
| 批量脚本执行变慢 | 误敲命令触发解析 | 脚本校验命令合法性,或关闭解析 |
排查伪性能问题的顺序建议:先确认是否开着域名解析、再确认 DNS 地址是否可达,最后才去看 CPU 与内存。很多「设备很卡」的工单,根因就是这一行配置。