Re: NAT avec plusieurs interfaces publiques
Hello
Le 21/12/2017 à 18:25, Olivier a écrit :
Je prépare une installation dans laquelle un routeur (une machine sous
Debian Stretch) aura 3 interfaces logiques:
une interface eth0.30 vers un réseau local
une interface eth0.20 vers un lien Internet
une interface eth0.10 vers un autre lien Internet
Je souhaite répartir, en fonction de leur adresse IP, les utilisateurs
du réseau local vers les deux liens Internet.:
si l'adresse de l'utilisateur est dans le sous-réseau 10.50.0.0/24
<http://10.50.0.0/24>, sortir sur Internet en nattant avec l'interface
eth0.10,
si l'adresse de l'utilisateur est dans le sous-réseau 10.50.1.0/24
<http://10.50.1.0/24>, sortir sur Internet en nattant avec l'interface
eth0.20.
Comment configurer cela ?
J'ai un script iptables qui marque le trafic entrant avec une règle du type
iptables -t mangle -A PREROUTING -s 10.50.1.0/24 <http://10.50.1.0/24>
-j MARK --set-mark 2
C'est un bon début :)
J'ai une autre règle qui j'espérais, devrait NATer, le trafic dont la
marque est spécifique:
iptables -t nat -A POSTROUTING -m mark --mark 2 -o eth0.20 -j SNAT
--to-source 2.2.2.2
C'est encore un bon début.
Cette dernière règle ne semble pas exécutée pour un utilisateur dont
l'adresse est bien dans le réseau 10.50.1.0/24 <http://10.50.1.0/24>.
À la place, c'est la règle "par défaut" comme celle ci-après qui semble
exécutée:
iptables -t nat -A POSTROUTING -o eth0.10 -j SNAT --to-source 2.2.2.2
iptables ne se suffira pas à lui même pour gérer la question du routage
des paquets. Ce sont bien deux étapes différentes vu du noyau Linux.
(
si ce n'est 3 :
mark à l'entrée sur une interface : iptables -t mangle (PREROUTING)
forward : ip route & ip rule
sortie de la machine avec NAT : iptables -t nat (POSTROUTING)
)
Il ne manque à mon avis pas grand chose à ton setup; il faut jouer un
peu avec la commande "ip" : ajouter une table de routage spéciale par
interface WAN , et ajouter des "rule" en fonction du trafic qui a été
précédemment "marké" dans la mangle d'iptables en PREROUTING.
Je le fais de mémoire,
ip route add table 2 default via <gw wan2> dev eth0.20
ip rule add fwmark 2 table 2
Ca peut par contre se compliquer un peu plus si les deux interfaces
"Wan" sont en adressage dynamique.
La bible pour ce genre d'utilisations, c'est le "LARTC"
http://lartc.org/
@+
Christophe.
Reply to: