Linux firewall + równoważenie obciążenia połączenia ISP


Próbuję uzyskać komputer Linux Mint z 4 kartami sieciowymi, aby działał jako serwer równoważenia obciążenia. Chodzi o to, że mamy trzy połączenia internetowe i chcemy wykorzystać je wszystkie, aby móc współdzielić 50 komputerów na wszystkich liniach.
Udało mi się osiągnąć balansowanie na samym serwerze przy użyciu domyślnych ustawień trasy IP itp., Ale potrzebowałem rozwiązania iptables (więc w przeciwieństwie do trasy ip, nie będzie ono buforowane, ponieważ wszystkie ppl są facebookers)
Gdzie wydaje mi się, że utknąłem; Mam wszystkie ustawienia karty sieciowej ze statycznymi informacjami o adresie (patrz poniżej) i przetestowałem połączenia. Oni pracują. Nie wiem, jak kierować ruch w sieci wewnętrznej przez „firewall” (chociaż odniosłem pewien sukces) ani jak sprawić, by zapora sieciowa akceptowała połączenia i kierowała je przez iptables. Próbowałem ustawić serwer DHCP na komputerze itp., Ale zablokowałem go i musiałem zacząć od nowa. denerwujący.
Moim rozwiązaniem było skonfigurowanie routera Linksys jako serwera DHCP ze statycznym adresem WAN itp. Zrobiłem bramę Linksys WAN jako statyczny adres IP mojego komputera dla tej karty sieciowej i przetestowałem połączenie. Udało mi się zalogować do routera przez jego port WAN, więc wiem, że działa. (i tak, musiałem skonfigurować dostęp zewnętrzny na routerze, aby działał).
Następnie użyłem swojego laptopa do pingowania z sieci wewnętrznej do "zapory ogniowej" i zadziałało (i odwrotnie). Więc jestem prawie pewien, że połączenie routera działa.
Teraz muszę tylko wiedzieć, jak sprawić, by „zapora ogniowa” akceptowała przychodzące pakiety i kierowała je do jednego z pozostałych interfejsów. I przez ostatni miesiąc głupio sobie googlowałem, próbując rozwiązać ten problem. Więc mój skrypt jest załączony poniżej, aby pokazać, gdzie jestem.
Scripts and other information below:

Mój skrypt startowy dzięki wielu wyszukiwaniom.
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 kernelip 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 Line2iptables -A FORWARD --in-interface eth3 -j ACCEPT # Accept all incomming stuff from Eth3iptables -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 1iptables -t nat -A POSTROUTING -o $IF1 -j SNAT --to $P1
iptables -t nat -A POSTROUTING -o $IF2 -j SNAT --to $P2

Wyniki tego skryptu:
/lib/xtables/libxt_statistic.so:/lib/xtables/libxt_statistic.so: undefined symbol: lround
iptables v1.4.12: Couldn't load match `statistic':SuccessTry `iptables -h' or 'iptables --help' for more information.

Konfiguracja mojej karty sieciowej/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

adres 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

Jeśli dotarłeś do końca tego posta, twoja legenda, wielkie dzięki, jeśli możesz pomóc!
Zaproszony:

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się