Ubuntu 服务器 16.04 同时连接 2 个网关

Ubuntu 服务器 16.04 同时连接 2 个网关

我找不到可行的指南来实现以下场景:

需要配置一台服务器,使其能够同时与 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 个适配器才能工作,而我所需要的只是告诉新适配器使用他自己的网关(从网络已配置)

我感谢阿尔瓦罗的回复和帮助。

链接帮助我解决的是:

一个系统上的两个默认网关

Linux 策略路由简介

解决方案: 为第二个适配器“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

相关内容