假设有一个主机 ,HOST_A正在LAN1发送一个数据包。该数据包的目标地址是:10.10.11.77
HOST_A将参考它的路由表并看到没有条目10.10.11.77并将数据包转发到默认网关,0.0.0.0/0. 假设 arp 缓存中有默认网关的 mac 地址,HOST_A会将数据包封装到一个以太网帧中,目的地为默认网关的 mac 地址。
发送到默认网关后,到达ROUTERX默认区域中的路由器 。路由器需要将数据包转发出正确的接口。路由器直接位于 5 个子网上。
接口及其 IP:
so-0/0/0有一个IP10.0.12.1/24so-0/0/1有一个IP10.0.19.1/24so-0/0/2有一个IP10.0.17.1/24so-0/0/3有一个IP10.0.23.1/24Network | Prefix | Next-Hop | Interface -------------------------------------------- 10.10.0.0 | /20 | 10.0.12.0 | so-0/0/0 scope global 10.10.8.0 | /21 | 10.0.19.0 | so-0/0/1 scope global 10.10.8.0 | /22 | 10.0.17.0 | so-0/0/2 scope global 10.10.10.0 | /24 | 10.0.23.0 | so-0/0/3 scope global
数据包将被转发出接口 so-0/0/2,因为它是最具体的匹配。我们不会从 so-0/0/3 发送它,因为尽管前缀更长,但第 24 位不匹配
编辑:这是我困惑的根源,摘自 The Illustrated Network: How TCP/IP works in a modern network 2nd Ed。
我LAN1在我的示例中使用而不是,LAN2中间的部分描述了查找过程。
考虑从 LAN2 发送到 10.10.11.77 ( bsdclient ) 的数据包。请记住,网络是 10.10.11.0/24 ...
...不再有条目。这使得 /22 条目成为目标地址的最长匹配项,并且数据包被转发到 10.10.17.2。其余位用于在 LAN2 上本地传送数据包。