在 Ubuntu 16.04 服务器上添加静态路由(默认网关)

在 Ubuntu 16.04 服务器上添加静态路由(默认网关)

我已经设置了 Ubuntu 16.04 VM 服务器,并且正在尝试更改其上的默认网关。(由于白名单问题,所有流量都应重定向到另一个网关)。

传入流量将来自 10.50.xx 网络,但传出流量应通过 192.168.0.254 gw。

我们的设置如下:

我有带 2 个 VLAN 的路由器。第一个 VLAN 是 10.50.0.0/24,网关是 10.50.0.1/24。第二个 VLAN 是 192.168.0.0/24,网关是 192.168.0.210。第二个 VLAN 上还有另一个网关 - 192.168.0.254。路由器可以访问这两个 VLAN 以及其中的所有服务器。

服务器启动时默认的路由表是:

Destination   Gateway         Genmask         F   M R U Iface
0.0.0.0       10.50.0.1       0.0.0.0         UG  0 0 0 ens160
10.50.0.0     0.0.0.0         255.255.255.0   U   0 0 0 ens160

因此,为了使 192.168.0.x 网络“可用”,我添加了:

route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.50.0.1 dev ens160

然后解释 10.50.0.0/24 网络使用 10.50.0.1 网关(因为我们将更改默认网关):

route add -net 10.50.0.0 netmask 255.255.255.0 gw 10.50.0.1 dev ens160

然后“解释”如何到达 192.168.0.254 网关

route add -net 192.168.0.254 netmask 255.255.255.255 gw 10.50.0.1 dev ens160

现路线如下:

Destination     Gateway     Genmask         F   M  R  U   Iface
0.0.0.0         10.50.0.1   0.0.0.0         UG  0  0  0   ens160
10.50.0.0       10.50.0.1   255.255.255.0   UG  0  0  0   ens160
10.50.0.0       0.0.0.0     255.255.255.0   U   0  0  0   ens160
192.168.0.0     10.50.0.1   255.255.255.0   UG  0  0  0   ens160
192.168.0.254   10.50.0.1   255.255.255.255 UGH 0  0  0   ens160

现在添加默认 gw:

route add default gw 192.168.0.254 dev ens160

我得到:

SIOCADDRT: Network is unreachable

我可以 ping 192.168.0.254 但是使用此设置服务器无法“看到”192.168.0.254?

root@tlt551:/home/user# ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=254 time=3.18 ms
64 bytes from 192.168.0.254: icmp_seq=2 ttl=254 time=1.60 ms
...

有人能帮助我了解我做错了什么吗(我是网络新手)?

答案1

由于您的服务器仅连接到 10.50.0.0/24 网络,因此您无法通过仅更改服务器上的设置来解决这个问题。此服务器只能将 10.50.0.1 作为其默认网关。不应添加其他静态路由,因为它们完全没有意义。

需要在连接两个网络的路由器上进行更改。使用 IP 源路由(也称为基于策略的路由),您可以将流量从服务器发送到不同的下一跳路由器。为了帮助配置,我们需要知道您使用的路由器的品牌。但我强烈建议您向公司的网络团队寻求帮助。

答案2

尝试这个:

ip route add 192.168.0.254 dev ens160
ip route add default via 192.168.0.254

相关内容