路由表与转发表的区别


Answers:


16

路由是决定要发送数据包的接口的决定。也必须对本地创建的数据包做出此决定。路由表包含网络地址以及关联的接口或下一跳。这是指ip routeip rule(在Linux上下文中)。

转发是指到达系统但不发往该系统的数据包。转发是系统的决定:“我拿走数据包,然后尝试将其发送到目的地。” 而不是仅仅丢弃它。在分组过滤器的上下文中,“转发”是一个常用术语。Linux的Netfilter在其基表中具有三个链:INPUT,OUTPUT和FORWARD。该链仅做出决定“是否转发或丢弃此数据包?” (如果通常在系统上启用了转发;则再次是Linux:/ proc / sys / net / ipv4 / ip_forward)。


什么是:cat / proc / sys / net / ipv4 / ip_forward与cat / proc / sys / net / ipv4 / conf / eth0 / forwarding?
JohnyTex

10

在大多数系统(具有单个网络连接的系统)上,它们将是相同的。但是,在路由器上,它们往往会有所不同。

路由表保存路由器使用动态路由协议(例如OSPF或BGP)从对等方和邻居学到的所有路由。根据使用的路由协议的参数,对每条路由进行排序和评估,并将“最佳”路由表条目的子集放入转发表中。当路由器接收到数据包时,它将在转发表中查找目标地址,以决定通过哪个接口发送数据包,以及下一跳地址应该是什么。当了解到新路由,启用或禁用接口或对排名方案进行策略更改时,将重新评估路由表并更新转发表。

路由表通常存储在RAM中。高性能设备上的转发表将分布在线卡上(在模块化系统中),并存储在高速TCAM中。TCAM中通常可以保留的路由数量有限;当转发表超过TCAM容量时,数据包可能会被丢弃或在软件中路由(速度明显降低)。


4

首先,以我的观点,我认为您应该首先清楚地了解转发路由之间的区别,而后者通常被忽略。根据Lary L.Peterson在第240页上的《计算机网络》一书,转发是路由器一旦接收到数据包后将采取的一系列操作,包括查看其目标地址,查询表并按照以下方式确定的方向发送数据包:那张桌子。但是,此处的路由是指构建转发表的过程。

回到最初的问题,我们可以得出以下结论:尽管我们可以将转发表和路由表保持在相同的结构中,但是将它们分开的原因很多。甲转发表通常需要被构造,以优化的转发数据包,其中包含更多的信息,例如MAC地址时,查找的地址的过程。相反,路由表通常专注于计算拓扑的变化,路由表中的条目通常更简洁,仅包括下一跳的IP。


-1

路由表包含到不同目标的所有路径(同一目标可以有2条或更多条不同的路径)

转发表仅包含到达每个目的地的最佳路径(每个目的地只有一个路径)


我认为此答案不会对此处已经存在的答案有所帮助。我也不知道这是对的。
MadHatter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.