网关语句不应该适用于子网吗?

网关语句不应该适用于子网吗?

/etc/network/interfaces我在 Debian 机器上使用以下配置:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.5/24
gateway 10.0.0.1

auto eth1
iface eth1 inet static
address 192.168.1.5/24
gateway 192.168.1.16

的输出route显示配置的最后一行被忽略:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
link-local      0.0.0.0         255.255.255.0   U     1000   0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

一旦我运行route add -net 192.168.0.0/24 gw 192.168.1.16,就会route显示预期的网关:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
link-local      0.0.0.0         255.255.255.0   U     1000   0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.1.16    255.255.255.0   UG    0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

为什么gateway声明不自动应用?我缺少什么?

答案1

根据我的理解,你只能有一个默认路由,debian 似乎会将第一个配置了网关的接口作为默认路由。在您的情况下,如果您尝试路由到本地网络中的不同子网,则为 eth0。您的系统位于 192.168.1.0/24 网络上,但您只需要静态路由来通过本地网络路由 192.168.0.0/24 流量,如果您将其设置为默认网关,这将通过此网关路由所有流量我认为没有其他通往互联网的途径。

要将静态路由添加到第二个网络,您可以使用以下命令在接口文件中添加新行

up route add -net 192.168.0.0/24 gw 192.168.1.16 dev eth1 

这应该会创建一个在重新启动后仍会保留的静态路由。

相关内容