![在 Ubuntu 16.04 服务器上添加静态路由(默认网关)](https://linux22.com/image/727084/%E5%9C%A8%20Ubuntu%2016.04%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%B7%BB%E5%8A%A0%E9%9D%99%E6%80%81%E8%B7%AF%E7%94%B1%EF%BC%88%E9%BB%98%E8%AE%A4%E7%BD%91%E5%85%B3%EF%BC%89.png)
我已经设置了 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