如何理解路由器中最长的前缀匹配?详细图解

2021年3月24日14:12:58 发表评论 2,175 次浏览

什么是转发

转发会将传入的数据包移动到适当的接口。路由器使用转发表来决定将哪个传入数据包转发到下一跳。

什么是IP前缀

IP前缀是IP地址的前缀。一个网络上的所有计算机都具有相同的IP前缀。例如, 在192.24.0.0/18中, 18是前缀的长度, 而前缀是地址的前18位。

转发如何工作?

路由器基本上会查看目标地址的IP前缀, 在转发表中查找匹配项, 然后将数据包转发到转发表中的相应下一跳。

如果前缀重叠, 会发生什么?

由于前缀可能会重叠(这是可能的, 因为无处不在的寻址在各处都使用), 因此传入IP的前缀可能与表中的多个IP条目匹配。

例如, 考虑下面的转发表

字首 下一跳
192.24.0.0/18 D
192.24.12.0/22 B

在上表中, 从192.24.12.0到192.24.15.255的地址重叠, 即与表的两个条目匹配。

为了解决上述情况, 路由器使用

最长前缀匹配

规则。规则是在表中找到前缀最长, 与传入数据包的目标IP匹配的条目, 然后将数据包转发到相应的下一个希望。

在上面的示例中, 重叠范围(192.24.12.0至192.24.15.255)的所有数据包都被转发到下一跳B, 因为B具有更长的前缀(22位)。

最长前缀匹配

范例1:

路由器使用转发表条目转发数据包。传入数据包的网络地址可能与多个条目匹配。路由器如何解决此问题?

(A)将其条目与传入数据包的最长前缀匹配的路由器转发给它

(B)将数据包转发到网络地址匹配的所有路由器。

(C)丢弃小包。

(D)将其条目与输入数据包的最长后缀匹配的路由器转发给它

答:(A)在转发表中, 不同条目的网络地址可能重叠。路由器将传入的数据包转发到路由器, 该路由器对与传入的数据包匹配的最长前缀进行哈希处理。

范例2:

无类域间路由(CIDR)接收地址为131.23.151.76的数据包。路由器的路由表包含以下条目:(GATE CS 2015)

Prefix           Output Interface Identifier
131.16.0.0/12              3
131.28.0.0/14              5
131.19.0.0/16              2
131.22.0.0/15              1

将在其上转发此数据包的输出接口的标识符是______。

答:" 1"。我们首先需要找出地址为" 131.23.151.76"的传入数据包的匹配表条目。该地址与两个条目" 131.16.0.0/12"和" 131.22.0.0/15"匹配(我们分别通过匹配前12位和15位来找到它)。

那么数据包应该去接口3还是1?我们使用最长前缀匹配来决定两者。匹配表条目中最具体的用作接口。由于" 131.22.0.0/15"是最特定的, 因此数据包进入接口1。

行使

请考虑以下路由器路由表。

字首 下一跳
192.24.0.0/18 D
192.24.12.0/22 B

请考虑以下三个IP地址。

192.24.6.0

192.24.14.32

192.24.54.0

具有以上三个目标IP地址的数据包如何转发?

(一种)

1-> D, 2-> B, 3-> B

(B)

1-> D, 2-> B, 3-> D

(C)

1-> B, 2-> D, 3-> D

(D)

1-> D, 2-> D, 3-> D

回答为B

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: