我正在尝试使用带有 4 个 NIC 的 Linux Mint 计算机作为负载平衡服务器。我们的想法是,我们有三个互联网连接,我们希望使用所有连接,这样我们就可以在所有的线路上共享 50 台计算机的使用权。
我已经设法使用 ip 路由默认值等在服务器本身上实现平衡,但我想要一个 iptables 解决方案(因此与 ip 路由不同,它不会被缓存,因为所有的人都是 facebookers)
我似乎被困住了;我已经用静态地址信息设置了所有 NIC(见下文),并且测试了连接。它们正常工作。我不知道如何路由内部网络上的流量以通过“防火墙”(尽管我取得了一些成功),或者如何让防火墙接受连接并通过 iptables 路由它们。我确实尝试在计算机等上设置 DHCP 服务器,但我把它弄坏了,不得不重新开始。令人沮丧。
我的解决方案是设置一个 Linksys 路由器作为 DHCP 服务器,并设置静态 WAN 地址等。我将 Linksys WAN 网关设置为计算机的该 NIC 的静态 IP,然后测试连接。我能够通过路由器的 WAN 端口登录路由器,所以我知道它也能正常工作。(是的,我确实必须在路由器上设置外部访问才能使其正常工作。)
然后我用笔记本电脑从内部网络 ping 到“防火墙”,成功了(反之亦然)。因此,我相信通过路由器的通信是有效的。
现在我只需要知道如何让“防火墙”接受传入的数据包,并将它们路由到其他接口之一。过去一个月,我一直在谷歌上搜索,试图解决这个问题。下面附上我的脚本,向您展示我目前的情况。
Scripts and other information below:
我的启动脚本,感谢大量的谷歌搜索。
P1_NET="192.168.1.0/24"
IF1="eth1"
IP1="192.168.1.249"
P1="192.168.1.254"
P2_NET="192.168.2.0/24"
IF2="eth2"
IP2="192.168.2.249"
P2="192.168.2.1"
echo 1 > /proc/sys/net/ipv4/ip_forward # Enables packet forwarding by kernel
ip route add $P1_NET dev $IF1 src $IP1 table Line1
ip route add $P2_NET dev $IF2 src $IP2 table Line2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P1 table Line1
ip route add default via $P2 table Line2
ip rule add fwmark 1 table Line1
ip rule add fwmark 2 table Line2
ip rule add from $IP1 table Line1
ip rule add from $IP2 table Line2
iptables -A FORWARD --in-interface eth3 -j ACCEPT # Accept all incomming stuff from Eth3
iptables -t mangle -A PREROUTING -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m state --state new -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -m state --state new -m statistic --mode random --probability 0,5 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -o $IF1 -j SNAT --to $P1
iptables -t nat -A POSTROUTING -o $IF2 -j SNAT --to $P2
该脚本的运行结果:
/lib/xtables/libxt_statistic.so: /lib/xtables/libxt_statistic.so: undefined symbol: lround
iptables v1.4.12: Couldn't load match `statistic':Success
Try `iptables -h' or 'iptables --help' for more information.
我的网卡配置 /etc/network/interface
#Loopback network
auto lo
iface lo inet loopback
#Alien Interface 1 - From the office up the road
auto eth1
iface eth1 inet static
address 192.168.1.249
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
#Alien Interface 2
#auto eth0
#iface eth0 inet static
#address 10.0.1.249
#netmask 255.255.255.0
#network 10.0.0.0
#broadcast 10.255.255.255
#gateway 10.0.1.1
#Alien Interface 3
auto eth2
iface eth2 inet static
address 192.168.2.249
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
#Customs Iface 1 - Internal network
auto eth3
iface eth3 inet static
address 110.1.1.249
netmask 255.255.255.0
network 110.1.1.0
broadcast 110.1.1.255
IP 地址
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:e0:4c:1b:09:6a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.249/24 brd 192.168.1.255 scope global eth1
inet6 fe80::2e0:4cff:fe1b:96a/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:e0:4c:1b:0b:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.249/24 brd 192.168.2.255 scope global eth2
inet6 fe80::2e0:4cff:fe1b:b46/64 scope link
valid_lft forever preferred_lft forever
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0d:56:5a:5a:4c brd ff:ff:ff:ff:ff:ff
inet 110.1.1.249/24 brd 110.1.1.255 scope global eth3
inet6 fe80::20d:56ff:fe5a:5a4c/64 scope link
valid_lft forever preferred_lft forever
如果您读完了本消息,您就是传奇人物了,如果您能提供帮助,我们将不胜感激!