[technique] Routage par user via VLAN : iptables

Rémi Boulle remi.boulle at gmail.com
Lun 15 Oct 15:33:41 CEST 2012


Bonjour,

Je souhaiterais qu'un utilisateur précis sorte sur internet via une
deuxième interface réseau que la principale. Je suis sous GNU/Linux
avec un eth0 qui sort chez NC et une interface VLAN qui passe par TTN.
Je ne parle pas couramment iptables (mais pas du tout).

Voici les commandes pour allumer l'interface eth0.3196 :

ip link add link eth0 name eth0.3196 type vlan id 3196
ip link set eth0.3196 up
ip addr add 91.224.XXX.YYY/24 dev eth0.3196

J'ai créée un user toto (via adduser). Le but est, si j'ai bien
compris, de marquer ses paquets afin de les rerouter vers eth0.3196.

On marque ses paquets via une table MANGLE :

iptables -t mangle -A OUTPUT -m owner --uid-owner toto -j MARK --set-mark 2

On les reroute vers eth0.3196 (source routing) :

iptables -t nat -A POSTROUTING -o eth0.3196 -m mark --mark 2 -j SNAT
--to-source 91.224.XXX.YYY

Je "connecte" la table de routage aux paquets marqués :

ip rule add fwmark 2 table 2

Et là on indique qu'il faut sortir via 91.224.149.254 (qui est la GW
chez TTN ?) :

ip route add default via 91.224.149.254 dev eth0.3196 table 2

Et là, cela ne fonctionne pas, toto continue de sortir via eth0 (mtr
free.fr me l'indique).

Est-ce dans le bon ordre ? Il n'y a pas un module du noyau à charger ou autre ?
Merci.
++



Plus d'informations sur la liste de diffusion technique