我找不到可行的指南来实现以下场景:
需要配置一台服务器,使其能够同时与 2 个路由器一起工作。它是一台虚拟机。
网络 1 192.168.1.0/24 路由器 1 的 IP 为 192.168.1.1
网络 2 192.168.2.0/24 路由器 2 的 IP 为 192.168.2.1
我有 2 个局域网适配器,主适配器“ens160”,辅适配器“ens192”。如果我只激活一个适配器,我可以通过 ping 或 ssh 从 vpn 客户端访问服务器。如果我安装了 2 个适配器,我无法通过默认适配器“ens192”从 vpn 客户端访问。
我正在寻找可以与网络 1 和 2 配合使用的服务器,不需要让网络 1 能够看到网络 2,反之亦然。我希望我的服务器能够响应路由器 1 的请求并响应路由器 1,以及响应路由器 2 的请求并响应路由器 2
我查看了一些关于添加路线的指南,但没有一个能起作用,而且都是针对较旧版本的 Ubuntu。可能是我遗漏了一些细节,但我找不到它。
有人可以为 ubuntu 16.04 同时使用 2 个网关提供指南。
编辑以向 Alvaro 添加更多信息:
谢谢你的帮助。
oscar@LinuxTest:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 ens192
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 ens160
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160
192.168.2.0 192.168.2.1 255.255.255.0 UG 0 0 0 ens192
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192
这样,我只能处理来自 192.168.2.1 的路由器 2 的请求,如果我删除默认网关,则无人能工作。
原理是如果请求来自 192.168.1.1,则 ens160 响应 192.168.1.1。如果请求来自 192.168.2.1,则 ens192 响应 192.168.2.1
答案1
这真的很容易,只需添加以下路线...在这种情况下,我将 ens160 视为默认路由:
#!/bin/bash
route del default dev ens192
route add default dev ens160 gw 192.168.1.1
route add -net VPN_NETWORK_1/VPN_NETWORK_MASK_1 dev ens192 gw 192.168.0.1
route add -net VPN_NETWORK_2/VPN_NETWORK_MASK_2 dev ens192 gw 192.168.0.1
route add -net VPN_NETWORK_3/VPN_NETWORK_MASK_3 dev ens192 gw 192.168.0.1
.
.
.
route add -net VPN_NETWORK_X/VPN_NETWORK_MASK_X dev ens192 gw 192.168.0.1
请检查您的路线,检查完毕后,您可以将此脚本添加到/etc/network/if-up.d/routes
具有执行权限的文件中,以便获得永久路线(我知道还有其他方法可以做到这一点,尽管这是唯一对我有用的永久路线)。
如果它不起作用,请向我发送您的route -n
命令的反馈。
答案2
我的错误是认为我需要重新配置 2 个适配器才能工作,而我所需要的只是告诉新适配器使用他自己的网关(从网络已配置)
我感谢阿尔瓦罗的回复和帮助。
链接帮助我解决的是:
解决方案: 为第二个适配器“ens192”创建一个新的路由表,并添加一行,新路由表的名称为“2 rt2”
oscar@LinuxTest:~$ sudo nano /etc/iproute2/rt_tables
GNU nano 2.5.3 File: /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
2 rt2
将以下行添加到“/etc/network/interfaces”
oscar@LinuxTest:~$ sudo nano /etc/network/interfaces
GNU nano 2.5.3 File: /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Normal configuration for static ip
auto ens160
iface ens160 inet static
address 192.168.1.243
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search testLinux
#Only address and mask for the new adapter
auto ens192
iface ens192 inet static
address 192.168.2.244
netmask 255.255.255.0
#Every time the adapters goes Up the next lines are executed.
#these 2 lines fill the new table with 2 routes for the "ens192" adapter and establish the default gateway for that adapter.
post-up ip route add 192.168.2.0/24 dev ens192 table rt2
post-up ip route add default via 192.168.2.1 dev ens192 table rt2
#these 2 lines add a rule from/to new network to use the new table.
post-up ip rule add from 192.168.2.0/24 table rt2
post-up ip rule add to 192.168.2.0/24 table rt2
oscar@LinuxTest:~$ sudo reboot
如果您丢失默认适配器 ens160 停止工作,请为其重新创建默认路由。
route add default dev ens160 gw 192.168.1.1