![路由器的异常行为](https://linux22.com/image/584212/%E8%B7%AF%E7%94%B1%E5%99%A8%E7%9A%84%E5%BC%82%E5%B8%B8%E8%A1%8C%E4%B8%BA.png)
我正在观察思科有关路由器的异常行为。
场景 1:
- 从服务器 A 到 Cisco 路由器 1905 执行 ping 操作 - 0.3 毫秒
- 从服务器 A 通过 Cisco 路由器 1905 向服务器 B 执行 ping 操作 - 3.2 毫秒
场景 2:
- 从服务器 A 到 Cisco 路由器 1700 执行 ping 操作 - 1 毫秒
- 从服务器 A 通过 Cisco Router 1700 向服务器 B 执行 ping 操作 - 3.3 毫秒
当我尝试从服务器 AI ping 1905 的 LAN 接口时,得到的时间是 0.3-0.5 毫秒,但是当我尝试从服务器 AI ping 1700 路由器的 LAN 接口时,得到的时间是 1.02 毫秒。
有人能解释一下为什么当我尝试从服务器 A Ping 服务器 B 时没有反映出 0.7 毫秒的差异吗?我得到的是 3.2 -3.3 毫秒的常数
答案1
如果您正在 ping 路由器本身,则您正在与 IOS 管理平面交互。因此,操作系统需要被唤醒并响应您的 ICMP 查询。如果您有两个不同的平台(1700 和 1905),可能具有不同的版本和功能集,以及不同的配置以使其保持繁忙,您应该会得到不同的结果。使用路由器转发平面在服务器之间转发流量可能会获得硬件帮助,并且变化会更小。
话虽如此,你为什么对这里的几毫秒感兴趣?你没有更重要的事情要担心吗 ;-)
答案2
尝试使用 ping 查找网络中延迟发生的位置,在最好的情况下也非常棘手。在最坏的情况下,甚至不可能。在最好的情况下,您只需考虑到路由器对 ping 的响应与路由器将 ping 数据包从一个接口发送到另一个接口的速度完全无关(大多数路由器对 ping 的响应优先级接近最低,因此 ping 响应时间往往变化很大,并且通常比仅转发时引入的延迟高得多)。
您所看到的 0.7 毫秒可能是因为 1905 比 1700 拥有更多的空间 CPU 周期。
使用 traceroute(或类似方法)查找连接通过网络所采用的路径可能会很有用,然后检查中间跳的流量水平。但是,这只会揭示在路由点引入的延迟。交换机和路由器都可能变慢。总的来说,3 毫秒可能不是什么大问题,如果是的话,可能还有其他方法可以缓解它。过去,我见过(一些)OLTP 应用程序在 FE/BE 延迟增加几毫秒时变慢,但确保它们可以有多个未完成的查询可以解决很多问题(并行查询而不是严格的序列化)。我想说,更常见的是,变化的延迟通常比恒定(尽管可能更高)的延迟导致更多问题。
答案3
除了诊断一般连接性之外,永远不要将 ping 命令用于 Cisco 路由器接口。响应 ICMP 消息(并且一直是)是机器上优先级最低的任务。从最小到最大的路由器都是如此,并且被调用。通过路由器 ping 到其他设备(即某种主机)。顺便说一句,这不仅适用于 Cisco 路由器,而且适用于许多其他路由器。
唯一的例外是使用 SLA 监控,这是一组以更高优先级运行的功能,用于测量给定链路的延迟。不过,这与 ping 路由器接口完全不同。