好的,...这个问题可能已经得到解答了,不幸的是,我还没有找到任何看起来像是解决方案的东西。
我看过这些页面,它们有一些有用的信息,但没有完整的解决方案:
- 在 Linux 上实现负载平衡和 NAT-ing 多个 ISP 连接
- 两个 Internet 连接和 1 个 NIC,可以吗?
- Linux 分割访问(具有负载平衡的多个互联网连接)
- Linux 防火墙 + 负载平衡 ISP 连接
我将使用 Debian 8、Ubuntu 16.04 Desktop 或 Ubuntu 16.04 Server(老实说,最有可能是 Debian)。
好的,我将安装三个网卡,两个千兆位,以及板载 100 mbps LAN 连接。ISP 连接将通过两个网卡上的 PPPoE 身份验证使用千兆 LAN 卡(如果可能的话,否则,我将在 DSL 调制解调器上使用非桥接模式)。并且两个网络都将分配一个静态 IP。目前(将会改变)主连接有一组五个。我需要将来自其中一个 IP 地址的流量路由到网络上的正确服务器。
以下是我的问题:
- 我该如何设置?我是否使用 NATing、IP Chans、IP Masquerading、路由等?
- 如何将从外部进入系统的流量路由到网络上的特定 IP 地址?
请温柔一点,这是我第一次尝试做这样的事情:)。
编辑1
忘记添加网络拓扑:
编辑2
刚刚意识到一件事……为了进行 PPPoE 身份验证,我必须在特定接口上强制进行凭据身份验证。该怎么做?
我在这里发布了这个问题:
创建一个具有两个互联网连接和一个 LAN 连接的多宿主 Linux 负载均衡器
更新 1
仍然无法使多跳循环工作。我尝试按照以下网站概述的步骤操作,但没有成功:
我要么一直收到一条消息,指出文件已存在或设备无效。以下是我的设置/信息
接口配置
eth0 Link encap:Ethernet HWaddr ec:08:6b:04:8e:ac
inet addr:172.16.0.2 Bcast:172.16.0.255 Mask:255.255.255.0
inet6 addr: fe80::ee08:6bff:fe04:8eac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9525 errors:0 dropped:0 overruns:0 frame:0
TX packets:7722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9306973 (8.8 MiB) TX bytes:949815 (927.5 KiB)
eth1 Link encap:Ethernet HWaddr ec:08:6b:04:8c:95
inet addr:172.16.1.2 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::ee08:6bff:fe04:8c95/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:558 (558.0 B) TX bytes:6344 (6.1 KiB)
eth2 Link encap:Ethernet HWaddr 00:16:76:90:49:b7
inet addr:172.16.2.1 Bcast:172.16.2.255 Mask:255.255.255.0
inet6 addr: fe80::216:76ff:fe90:49b7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3793 errors:0 dropped:0 overruns:0 frame:0
TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:283119 (276.4 KiB) TX bytes:10338 (10.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1858 (1.8 KiB) TX bytes:1858 (1.8 KiB)
接口配置
# 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
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 172.16.0.2
netmask 255.255.255.0
gateway 172.16.0.1
network 172.16.0.0
broadcast 172.16.0.255
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
network 172.16.1.0
broadcast 172.16.1.255
auto eth2
allow-hotplug eth2
iface eth2 inet static
address 172.16.2.1
netmask 255.255.255.0
network 172.16.2.0
broadcast 172.16.2.255
ETH0
这是我的主要 WAN 连接。
ETH1
这是我的辅助 WAN 连接。
ETH2
这是我的内部 LAN 连接。
我能够让路由在一个 WAN 接口上工作并链接到内部 LAN,但是,我无法复制它并且不知道原因。
答案1
在几位朋友的帮助下,我终于能够让它工作了。
为了正确转发 TCP/IP 流量,必须运行此脚本:
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
# Primary Connection - 2085426230
IF1=eth0
IP1=172.16.0.2
P1=172.16.0.1
P1_NET=172.16.0.0
# Secondary Connection - 2085420213
IF2=eth1
IP2=172.16.1.2
P2=172.16.1.1
P2_NET=172.16.1.0
# Local Network
IF3=eth2
IP3=172.16.2.2
P3=172.16.2.1
P3_NET=172.16.2.0
T1=WAN1
T2=WAN2
# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Always accept loopback and WAN traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ${IF1} -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ${IF1} -o ${IF3} -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i ${IF3} -o ${IF1} -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o ${IF1} -j MASQUERADE
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
然后我安装了互联网服务提供商 (ISP) 余额脚本运行并安装后,我转到WhatsMyIP两次之后果然,两个接口都在路由流量,因为在我点击刷新后,whatsmyip 显示了两个 IP 地址。
免责声明这适用于我的特定网络布局、配置和设置。您的结果可能会有所不同。