网工学习-ICMP协议
ICMP (Internet Control Message Protocol)协议是IP协议的辅助协议。ICMP协议用来在网络设备间传递各种差错和控制信息对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。ICMP报文结构ICMP重定向重定向报文是ICMP控制报文中的一种。在特定的情况下当路由器检测到一台机器使用非最优路由的时候它会向该主机发送一个ICMP重定向报文请求主机改变路由。工作原理1主机发送数据包主机根据本地路由表将数据包发送到默认网关。2路由器检测更优路径路由器发现数据包应从同一子网内的另一网关转发会向源主机发送ICMP重定向报文Type:5Code:0或1。3主机更新路由表主机接收重定向报文后临时修改路由表并将数据直接发送到新网关。ensp模拟实验ICMP重定向1配置R1与R2在同一网段R1设置环回地址8.8.8.8PC1设置R2为默认网关# 配置R1 [R1]interface g0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.253 24 [R1]interface loopback 0 # 设置环回地址 [R1-LoopBack0]ip address 8.8.8.8 32 # 配置R2 [R2]interface g0/0/0 [R2-GigabitEthernet0/0/0]ip address 192.168.1.254 242R2中设置静态路由用于访问8.8.8.8并测试连通性[R2]ip route-static 8.8.8.8 32 192.168.1.253 # 配置静态路由 [R2]display ip routing-table # 查看路由表3通过PC1向8.8.8.8发送数据并通过抓包查看ICMP重定向报文ICMP Echo Request/Reply消息常用于诊断源和目的地之间的网络连通性同时还可以提供其他信息如报文往返时间等例如ping命令用于测试主机之间的连通性。ICMP错误消息常用于诊断网络连接性问题根据这些错误消息源设备可以判断出数据传输失败的原因。例如当设备无法访问目标网络时会自动发送ICMP目的不可达报文Destination Unreachable到发送端设备。ICMP Time Exceeded消息是 Internet 控制消息协议ICMP中的一种错误报告类型用于指示数据包在网络传输过程中因生存时间TTL耗尽而被丢弃。TTL 是 IP 数据包头部的一个字段用于限制数据包在网络中的存活时间防止数据包在网络中无限循环。ICMP Time Exceeded 消息分为两种类型Type 11, Code 0表示数据包的 TTL 值在传输过程中减至 0 而被丢弃。常见于 tracert 命令工具中用于探测网络路径。Type 11, Code 1表示分片重组超时即接收端未能在规定时间内完成 IP 分片的重组。ensp模拟实验ICMP Time Exceeded1配置PC1、AR1及AR2的地址设置PC1默认网关为192.168.0.2542通过PC1使用tracert命令测试网络路径并抓取报文通过tracert命令结果和报文发现此时PC1无法探测到AR2的网络路径3AR2配置静态路由再次测试[AR2]ip route-static 192.168.0.0 24 192.168.1.254