路由器如何使用出口接口路由命令知道将数据包发送到哪里?
第二种选择是要避免的。对于串行或隧道接口等点对点接口是可以接受的,但在广播媒体(如以太网)上,使用“接近非法”(无论直接连接的子网是 /25、/30 还是/31)。
如果以这种方式配置路由完全可行(我似乎记得最近基于 IOS 和 IOS-XE 的路由器不允许这样做),路由器将尝试对要发送的数据包的目标 IP 地址进行ARP 解析。转发。
另一个(思科)路由器可能会响应该请求,如果 a) 它在给定的接口 [1] 上启用了代理 arp,并且 b) 它有到实际目的地的路由。
然而,该广播域上的任何其他系统也可能响应该 ARP 广播,并可能“吸引”流量给自己(并且可能会用它做各种有趣的事情,因为它只是让自己陷入了一个中间人- 中间位置免费)。
简而言之:不要那样做。
当我们这样做时:也不要使用第一个选项(除非您使用的是 NX-OS)。正确配置的静态路由如下所示:
ip route <destination network> <destination subnet mask> <egress interface> <next hop ip>
或 - 在你的情况下
ip route 192.0.2.128 255.255.255.128 fastEthernet0/0 192.0.2.48
推理:在没有出口接口的情况下,将进行递归路由查找以找到通往给定下一跳的出口接口。大多数情况下,这将是直接连接子网的接口。
但是,如果通向下一跳(本地)子网的通常“向上”接口出现故障,并且如果下一跳的子网仍然通过某些动态路由协议获知,则可能会发生一些奇怪的事情:那么给定的静态路由可能不会从路由表(因此将继续重新分配到可能存在的动态路由协议中,导致各种奇怪的效果)。
如果给出了出口接口,则不是这样。如果出现故障,静态路由在所有情况下都会从路由表中消失。
[1] ceterum ceneo:代理 arp 在遇到它的任何地方都应该被禁用(除非它真的、真的、真的需要)。
