創建具有兩個 Internet 連接和一個 LAN 連接的多宿主 linux 負載均衡器
好的,……這可能已經得到解答,不幸的是,我還沒有找到任何看起來可能是解決方案的東西。
我查看了這些頁面,它們有一些有用的資訊,但不是完整的解決方案:
- Linux上的負載平衡和NAT-ing多個ISP連接
- 兩個 Internet 連接和 1 個 NIC,可能嗎?
- Linux 拆分訪問(帶負載平衡的多個 Internet 連接)
- linux防火牆+負載平衡ISP連接
我將使用 Debian 8、Ubuntu 16.04 Desktop 或 Ubuntu 16.04 Server(老實說,很可能是 Debian)。
好的,所以我將安裝三個 NIC,兩個千兆位和板載 100 mbps LAN 連接。ISP 連接將通過兩個 nic 上的 PPPoE 身份驗證使用千兆 LAN 卡(如果這甚至可能,我將滿足於 DSL 調製解調器上的非橋接模式)。並且兩個網路都將分配給它們一個靜態 IP。目前(將會改變)主要連接有一組五個。我需要將來自這些 IP 地址之一的流量路由到網路上的正確伺服器。
以下是我的問題:
- 我該如何設置?我是否使用 NATing、IP Chans、IP Masquerading、路由等…?
- 如何將從外部進入系統的流量路由到網路上的特定 IP 地址?
請溫柔一點,這是我第一次嘗試這樣的事情:)。
編輯 1
忘記添加網路拓撲:
編輯 2
剛剛意識到一些事情…為了進行 PPPoE 身份驗證,我將不得不在特定介面上強制對憑據進行身份驗證。這是怎麼做到的?
我在這裡發布了這個問題:
創建具有兩個 Internet 連接和一個 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,但是,我無法複製它,也不知道為什麼。
在幾個朋友幫助我研究這個的幫助下,我終於能夠讓它工作了。
必須執行此腳本才能正確轉發 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
然後我安裝了Net-ISP-Balance。腳本執行並安裝後,我去了WhatsMyIP兩次,果然,兩個介面都在路由流量,因為 whatsmyip 在我刷新後顯示了兩個 IP 地址。
免責聲明這適用於我的特定網路佈局、配置和設置。您的結果可能會有所不同。