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

什么是转发?
转发会将传入的数据包移动到适当的接口。路由器使用转发表来决定将哪个传入数据包转发到下一跳。
什么是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)
PrefixOutput Interface Identifier 131.16.0.0/123 131.28.0.0/145 131.19.0.0/162 131.22.0.0/151

将在其上转发此数据包的输出接口的标识符是______。
答:" 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
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。

    推荐阅读