PDA

View Full Version : Bilanciatore di carico manuale su Debian


OUTATIME
28-03-2020, 08:37
Bilanciatore di carico manuale su Debian

Ciao a tutti. Stavo pensando di creare un bilanciatore di carico manuale per le mie due linee internet di casa. Attualmente gestisco tutto con dnsmasq, avendo creato 2 scope DCHP ai quali ho assegnato 2 gateway differenti, ma switchare gateway per un singolo client oltre che a editare la configurazione, impone il renew dell'IP, quindi non proprio banale (ci sono dei dispositivi che rinegoziano quello precedente).
Avevo qundi pensato di centralizzare il tutto con un mini PC con 3 schede di rete: 1 LAN e 2 WAN e gestirlo con iptables. Supponiamo di avere eth0, WAN1 e WAN2, basterebbe creare delle regole stile queste, nella sezione NAT giusto?

-A POSTROUTING -s 192.168.1.XXX -o WAN1 -j MASQUERADE
-A POSTROUTING -s 192.168.1.YYY -o WAN2 -j MASQUERADE

Ovviamente con tutte le regole di filter corrette. Quindi verrebbe una cosa di questo tipo:
#### Netfilter-Persistent rules.v4

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.XXX -o WAN1 -j MASQUERADE
-A POSTROUTING -s 192.168.1.YYY -o WAN2 -j MASQUERADE
-A POSTROUTING -s 192.168.1.***/24 -o WAN* -j MASQUERADE
COMMIT

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth0 -o wan1 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wan1 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wan2 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wan2 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT

### End ###

L'ultima regola di postrouting dovrebbe essere quella che mi consente di far navigare su una specifica WAN tutto ciò che non è espressamente stato indicato sopra, se è corretto.

Se pensate di consigliarmi PFsense o simili, vorrei partire da una Debian pulita, per installarci anche altri servizi (OpenVPN, Transmission, ecc...).

Grazie.