Hau*_*ing 16
路由是决定将数据包发送到哪个接口。也必须为本地创建的数据包做出此决定。路由表包含网络地址和相关的接口或下一跳。这指的是ip route
和ip rule
(在 Linux 上下文中)。
转发是指到达一个系统但不发往该系统的数据包。转发是系统的决定:“我接受数据包并尝试将其送到目的地。” 而不是仅仅放弃它。“转发”是数据包过滤器上下文中的常用术语。Linux 的 Netfilter 在其基表中有三个链:INPUT、OUTPUT 和 FORWARD。这个链只是做出决定“这个数据包是转发还是丢弃?” (如果系统上一般都启用了转发;Linux 再次:/proc/sys/net/ipv4/ip_forward)。
tec*_*b0y 10
在大多数系统上——那些具有单一网络连接的系统——它们将是相同的。然而,在路由器上,它们往往会有所不同。
路由表保存了路由器使用动态路由协议(如 OSPF 或 BGP)从其对等方和邻居获悉的所有路由。每条路由都根据所使用的路由协议的参数进行排序和评估,并将“最佳”路由表条目的子集放入转发表中。当路由器收到数据包时,它会在转发表中查找目的地址,以决定通过哪个接口将数据包发送出去,以及下一跳地址应该是什么。随着新路由的学习、接口的启动或关闭,或对排名方案的策略更改,路由表会重新评估并更新转发表。
路由表通常存储在 RAM 中;高性能设备上的转发表将跨线卡(在模块化系统中)分布,并存储在更高速的 TCAM 中。TCAM 中可以保存的路由数量通常是有限的;当转发表超过 TCAM 容量时,数据包可能会被丢弃,或在软件中路由(这明显变慢)。