服务器路由跟踪的实现方法 (服务器如何做路由跟踪)
在服务器的运维和管理过程中,经常需要对网络的路由进行跟踪和监控,以确保网络的通畅和稳定。在这个过程中,服务器路由跟踪成为了一项非常重要的技术手段。本文将介绍,帮助读者更好地掌握这一技术。
一、路由跟踪的基本概念
路由跟踪是指追踪分组在网络中传输的路径的过程。路由跟踪程序可以帮助网络管理员诊断网络问题,比如分组是否到达目标,分组是否被路由器或防火墙封锁等。
路由跟踪是通过Internet控制消息协议(ICMP)和Internet多播消息协议(IGMP)实现的。ICMP是一种网络协议,用于在互联网协议(IP)网络上报告错误和状态。通过发送ICMP回显请求(ping)和回显应答(pong)信息,可以测试网络设备之间的连通性。IGMP是另一个协议,用于管理IP多播组成员资格。路由跟踪程序利用这些协议,查询网络中的路由器和防火墙,从而追踪分组的路径。
二、
服务器路由跟踪可以利用系统的命令行工具或第三方软件实现。
1. 使用命令行工具
在Linux系统下,可以使用traceroute命令进行路由跟踪。traceroute命令发送ICMP分组,记录分组路径和转发延迟。每个ICMP回显请求和回显应答产生一个跟踪记录,用来确定网络中的路由器和延迟。
在Windows系统下,traceroute变成了tracert,使用方法类似。tracert命令在Windows系统下也使用ICMP协议进行路由跟踪,但是在Windows系统下,tracert命令可以同时使用TCP和UDP端口扫描功能,用来诊断端口等信息。
traceroute命令和tracert命令的常用选项如下:
选项|说明
—|—
-n|以IP地址显示,不进行名称解析
-m|设置TTL值
-w|设置等待超时时间
-p|设置使用的端口号
-q|设置发送的ICMP分组数
-s|设置源地址
2. 使用第三方软件
在一些情况下,系统的原生命令不够强大或不可用,此时我们可以使用一些第三方软件进行路由跟踪。以下是几个知名的第三方软件:
软件名|平台|特点
—|—|—
MTR|多平台|使用traceroute和ping功能,高级选项丰富
WinMTR|Windows|类似于Unix下的MTR,使用traceroute和ping功能
PathPing|Windows|结合traceroute和ping功能,对网络质量和中间设备的控制信息进行分析
VisualRoute|多平台|使用多种协议进行路由跟踪,提供路径分析,DNS查询和网络可视化等功能。
三、路由跟踪的适用场景
路由跟踪在网络管理和诊断中拥有广泛的应用场景,包括网络故障排查、网络性能分析、网络优化等。以下是几个常见的应用场景:
1. 网络故障排查
当网络出现问题时,比如某些用户无法访问某些网站,网络管理员可以使用路由跟踪程序,分析分组的路径,查找可能的故障点。如果分组未到达目标,就说明路由器或防火墙可能阻止了分组。网络管理员可以调整路由器和防火墙设置,以确保分组的正确传输。
2. 网络性能分析
路由跟踪程序可以用来分析网络的性能,比如查询延迟或丢包率等信息。网络管理员可以根据这些信息,调整网络设备的MTU值、带宽限制等参数,以提升网络性能。
3. 网络优化
路由跟踪程序可以帮助网络管理员发现网络中的瓶颈点,从而优化网络。比如,如果网络中某个路由器的处理能力不足,就需要升级或更换该设备;如果网络中某个节点的延迟过大,就需要在该节点添加或更新缓存服务器等措施。
四、结论
服务器路由跟踪是网络管理和诊断中不可或缺的一项技术。本文介绍了路由跟踪的基本概念和实现方法,并介绍了一些常见的路由跟踪软件。本文所介绍的方法和技术,对网络管理员的工作有很大的帮助。在实际使用过程中,需要根据具体情况选择合适的工具和方法,以提高路由跟踪的效率和准确性。
相关问题拓展阅读:
- 【traceroute】关于traceroute(路由追踪)的原理分析
【traceroute】关于traceroute(路由追踪)的原理分析
traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。
协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。
例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。
不同模式下,探测过程中设计的数据包如下:
UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包
TCP 探测数据包(默认目标端口为 80) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 TCP 数据包
ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包
UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。
我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果:
在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。
为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。
UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪穗旅凯造目的端口发送任意多的 UDP 包,长度自定义。
所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。
当网络工程师用Ping时,Ping在偷摸做啥事儿?
ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。
ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。
另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外镇宽服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。
Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种猜唤 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认更大为30)才结束追踪
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
动态图解traceroute(路由追踪)的原理与实现
IP数据报格式详解
解析为何traceroute探测的时候中间有些节点探测不到?
traceroute使用与实现原理分析
traceroute(路由追踪)的原理及实现
为什么目标地址ping能通,但是tracetoute不通?
只会用ping测试网络通不通?高级网工还会这么用
当网络工程师用Ping时,Ping在偷摸做啥事儿?
traceroute原理
TCP/UDP/ICMP Traceroute的原理及区别
服务器如何做路由跟踪的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于服务器如何做路由跟踪,服务器路由跟踪的实现方法,【traceroute】关于traceroute(路由追踪)的原理分析的信息别忘了在本站进行查找喔。
标签:路由,数据包,协议,网络,路由器