路由表和默认路由

路由表和默认路由

我的路由表中有两条规则。默认路由,指向网关,第二条路由将网段中的所有内容转发到 * 或不转发到任何网关。第二条规则是否必要,以便本地数据包默认情况下不会首先发送到路由器,或者网卡是否足够聪明,可以检查自己的设置并查看正在发送的数据包是否在其网段中,而不是将其发送到路由器网关?

答案1

一般来说,在大多数 *nix 版本上,您将在路由表中(至少)看到两条规则。

您将有一条通往本地网络的路由(在本例中为 10.11.12.0/24):

10.11.12.0       0.0.0.0         255.255.255.0   U         0 0          0 eth0

还有一个标识您的默认路线。

0.0.0.0          10.11.12.1      0.0.0.0         UG        0 0          0 eth0

所以,这有效地告诉你的内核的是:

直接将任何数据包发送到10.11.12.0/24eth0,而不专门将它们发送到默认路由器(标志:U = 路由为 UP)

将任何发送到本地网络以外的任何地址(0.0.0.0 与任何地址匹配)的数据包发送到网关 (10.11.12.1)(标志:U = 路由已启动,G = 网关)。

如果您有更多接口,或者您是多宿主的,或者配置了特定网络或主机路由,您可能会看到比这更多的路由,但这只是您定期看到的最小值。

通过配置和启动接口,内核将自动创建该本地网络路由。

您不需要手动添加该路线。

相关内容