[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: