通过转发表(IPv4)确定数据包转发中的下一跳地址

网络工程 IPv4 ip 转发表
2022-02-11 10:24:25

假设我们有一个带有以下转发表的路由器

--------------------------------------------------
| Destination       | Next hop        | Flags    |
--------------------------------------------------
| 177.121.128.0/18  | 73.0.45.1       | G        |
| 0.0.0.0/0         | 73.0.65.1       | UG       |
--------------------------------------------------

还说路由器接收到带有目的地址的数据包177.121.128.2在那种情况下,数据包会发生什么?

由于目标 ip-block 已关闭(因为U标志不存在77.121.128.0/18),路由器会丢弃数据包还是将其发送到默认的下一跳路由器73.0.65.1

2个回答

根据我对 Cisco 设备的经验,如果它知道第一个网关无法访问(它似乎知道,因为它没有 U 标志),那么它将移动到列表中为该网关提供最佳匹配的下一个条目目的地是四零。

***路由表显示任何发往 77.121.128.0/18 的内容都将发送到 73.0.45.1。发往所有其他 IP 地址的数据包将遵循四零规则;也就是说,它们将被发送到 73.0.65.1。

因此,任何发往 177.121.128.2 的数据包都将发送到 73.0.65.1;按照路由表中的规则。***

通常,路由器应始终使用可用的最佳(最长匹配)路由。

我不熟悉您引用的输出格式,因此不确定该路由器是否认为 /18 路由可用。在这种情况下,它会尝试将数据包转发到 73.0.45.1,这可能意味着它被丢弃了。

(现实世界的例子:在以太网接口上有下一跳的静态路由,但下一跳已关闭;路由器不“知道”这一点,因此它仍然认为该路由是活动的,但数据包被丢弃,因为它无法 arp下一跳)。

如果没有 U 标志意味着“不使用此路由”,即路由器知道该路由不可用,那么我希望它使用默认路由。

(现实世界的例子:在串行接口上​​有下一跳的静态路由,但下一跳已关闭;路由器“知道”这一点,因为串行接口已关闭,因此它从路由表中删除该路由,并且流量遵循默认路由)。