第十章 网络设备调试
第十章 网络设备调试
专栏总目录
第一章 计算机网络概述
第二章 OSI参考模型与TCPIP模型
第三章 局域网基本原理
第四章 广域网基本原理
第五章 IP基本原理
第六章 TCP与UDP
第七章 路由器、交换机及其操作系统介绍
第八章 命令行操作基础
第九章 网络设备文件管理
第十章 网络设备调试
第十一章 以太网交换机工作原理
第十二章 配置Vlan
第十三章 STP协议
第十四章 交换机端口安全技术
第十五章 链路聚合
第十六章 IP子网划分
第十七章 DNS
第十八章 文件传输协议
第十九章 DHCP
第二十章 IPv6
第二十一章 IP路由原理
第二十二章 VLNA间路由
第二十三章 静态路由
第二十四章 路由协议概述
第二十五章 RIP
第二十六章 OSPF
第二十七章 ACL
第二十八章 NAT
第二十九章 HDLC&PPP
第三十章 3G+WLAN
第三十一章 H3CNE综合实验
本篇文章目录
一、写在开始
按照初始目标组建配置完互联网络后,首要的任务是检查网络的连通性,为定位网络设备协议或控制参数的配置错误或运行故障,需要使用调试信息。
二、网络连通性测试
Ping工作原理
Ping命令的原理是使用了ICMP协议,那什么是ICMP协议呢?
ICMP是一种面向连接的协议,用于传输出错报告控制信息。它对于网络安全具有极其重要的意义。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
工作过程:
Ping命令的工作原理是通过ICMP协议向目标主机发送数据包,并接收返回的数据包,根据返回的数据包来判断目标主机是否可达。
Ping命令:
ip:支持IPv4协议。不指定该参数时,也表示支持IPv4协议。如果ping的目的主机名为i、ip、ipv、 ipv6、l、ls、lsp时,需要先指定该关键字再指定主机名,如:ping ip ip。
-a source-ip:指定ICMP回显请求(ECHO-REQUEST)报文的源IP地址。该地址必须是设备上已配置的IP地址。不指定该参数时,ICMP回显请求报文的源IP地址是该报文出接口的主IP地址。
-c count:指定ICMP回显请求报文的发送次数,取值范围为1~4294967295,缺省值为5。
-f:将长度大于出接口MTU的报文直接丢弃,即不允许对发送的ICMP回显请求报文进行分片
-h ttl:指定ICMP回显请求报文中的TTL值,取值范围为1~255,缺省值为255。
-i interface-type interface-number:指定发送ICMP回显请求报文的接口的类型和编号。不指定该参数时,将根据目的IP查找路由表或者转发表来确定发送ICMP回显请求报文的接口。
-m interval:指定发送ICMP回显请求报文的时间间隔,取值范围为1~65535,单位为毫秒,缺省值为200毫秒。
-n:对host参数不进行域名解析。不指定该参数时,如果host参数表示的是目的端的主机名,则设备会对host进行域名解析。
-p pad:指定ICMP回显请求报文的“PAD”字段的填充值,为1~8位的16进制数,取值范围为0~FFFFFFFF。如果指定的参数不够8位,则会在首部补0,使填充值达到8位。比如将pad设置为0x2f,则会重复使用0x0000002f去填充报文,以使发送报文的总长度达到设备要求值。填充值从0x01开始,逐渐递增,直到0xff,然后又从0x01开始循环,形如0x010203……feff01……,直至发送报文的总长度达到设备要求值。
-q:只显示统计信息。不指定该参数时,系统将显示包括统计信息在内的全部信息。
-r:记录路由信息。不指定该参数时,系统不记录路由。
-s packet-size:指定发送的ICMP回显请求报文的长度(不包括IP和ICMP报文头),取值范围为20~8100,单位为字节,缺省值为56字节。
-t timeout:指定ICMP回显应答(ECHO-REPLY)报文的超时时间,发送ICMP回显请求报文timeout时长后还没有收到ICMP回显应答报文,源端则认为ICMP回显应答报文超时。取值范围为0~65535,单位为毫秒,缺省值为2000毫秒。
-tos tos:指定ICMP回显请求报文中的ToS域的值,取值范围为0~255,缺省值为0。
-v:显示接收到的非回显应答的ICMP报文。不指定该参数时,系统不显示非回显应答的ICMP报文。
-topology topo-name:指定目的端所属的拓扑。topo-name表示拓扑名,为1~31个字符的字符串,区分大小写;取值为base时表示公网拓扑。如果未指定本参数,则表示目的端位于公网中。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。
-vpn-instance vpn-instance-name:指定目的端所属的VPN。vpn-instance-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。如果未指定本参数,则表示目的端位于公网中。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。
host:目的端的IP地址或主机名。其中,主机名为1~253个字符的字符串,不区分大小写,字符串仅可包含字母、数字、“-”、“_”或“.”。
ICMP Echo报文
Echo报文分为两类:
- 请求报文
- 回应报文
请求报文
回应报文
Tracert工作原理
首先什么是Tracert呢?
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
工作过程:
通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
Tracert命令:
-a source-ip:指定tracert报文的源IP地址。该地址必须是设备上已配置的合法IP地址。不指定该参数时,tracert报文的源IP地址是该报文出接口的主IP地址。
-f first-ttl:指定一个初始TTL,即第一个报文所允许的最大跳数。取值范围为1~255,且小于或等于最大TTL,缺省值为1。
-m max-ttl:指定一个最大TTL,即一个报文所允许的最大跳数。取值范围为1~255,且大于或等于初始TTL,缺省值为30。
-p port:指定目的端的UDP端口号,取值范围为1~65535,缺省值为33434。用户一般不需要更改此选项。
-q packet-number:指定每次发送的探测报文个数,取值范围为1~65535,缺省值为3。
-t tos:Tracert报文中ToS域的值。取值范围为0~255,缺省值为0。
-topology topo-name:指定目的端所属的拓扑。topo-name表示拓扑名,为1~31个字符的字符串,区分大小写;取值为base时表示公网拓扑。如果未指定本参数,则表示目的端位于公网中。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。
-vpn-instance vpn-instance-name:指定目的端所属的VPN。vpn-instance-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。如果未指定本参数,则表示目的端位于公网中。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。
-w timeout:指定探测报文的响应报文的超时时间,取值范围是1~65535,单位为毫秒,缺省值为5000毫秒。
host:目的端的IP地址或主机名。其中,主机名为1~253个字符的字符串,不区分大小写,字符串仅可包含字母、数字、“-”、“_”或“.”。
Tracert追踪案例:
实验拓扑
操作步骤
华三默认设备是关闭追踪功能的(前面的文章提到过),所有我们需要先开启后才能追踪到。
所有设备都需要开启以下两个功能
#开启设备的ICMP目的不可达报文的发送功能
[h3c]ip unreachables enable
#开启设备的ICMP超时报文的发送功能
[h3c]ip ttl-expires enable
R1:
tracert 192.168.23.3
traceroute to 192.168.23.3 (192.168.23.3), 30 hops at most, 40 bytes each packet, press CTRL+C to break
1 192.168.12.2 (192.168.12.2) 1.960 ms 1.429 ms 1.521 ms
2 192.168.23.3 (192.168.23.3) 2.360 ms 3.036 ms 2.477 ms
中间设备的debugging调试结果(仅供参考,用于理解工作原理):
三、 系统调试
系统调试介绍:
- 对网络设备所支持的绝大部分协议和功能,系统都提供了相应的调试功能,帮助用户对错误进行诊断和定位
- 调试信息的输出由两个开关控制
系统调试的相关命令:
#开启控制台对系统信息的监视功能
<H3C> terminal monitor
#打开调试信息的屏幕输出开关
<H3C> terminal debugging
#打开模块调试开关
<H3C> debugging module-name
#显示调试开关
<H3C> display debugging
#关闭所有调试开关
<h3c>undo debugging all
调试信息输出的案例:
我们在Ping的项目基础上进行debugging拓展实验。
实验拓扑
操作步骤
R2:
<R2>terminal monitor
<R2>terminal debugging
<R2>debugging ip icmp
R1:
<R1>ping -c 1 2.2.2.2
Ping 2.2.2.2 (2.2.2.2): 56 data bytes, press CTRL+C to break
56 bytes from 2.2.2.2: icmp_seq=0 ttl=255 time=1.807 ms
--- Ping statistics for 2.2.2.2 ---
观察下图现象图(1)
<R3>ping -c 1 2.2.2.2
Ping 2.2.2.2 (2.2.2.2): 56 data bytes, press CTRL+C to break
56 bytes from 2.2.2.2: icmp_seq=0 ttl=255 time=1.505 ms
--- Ping statistics for 2.2.2.2 ---
观察下图现象图(2)
实验现象
现象图(1)
现象图(2)
四、小结:
ping使用ICMP回显请求与应答检测网络连通性;tracert使用TTL超时机制检测网络连通性;调试信息的输出由协议开关和屏幕开关两个开关控制。
结束语
如果您认为本文对您有帮助,请帮忙在文末关注、点赞、收藏、文头点击订阅专栏,因为有了热度才能帮助更多人学习到看到本文,关于本文如果有问题可以在评论区留言,回复效率可能会低但是一定会积极恢复哦!~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本