Installer : iproute
A lire : LARTC-howto, man ip
Pour faire du routage basé sur l’adresse source, il faut utiliser des règles de routage avancé et des tables de routage alternatives.
Règle de routage basé sur l’adresse (ou le préfixe) source
Remplir une table de routage alternative
$adresse = adresse ou préfixe source
$table = numéro de table entre 1 et 251 ou nom de table défini dans /etc/iproute2/rt_tables
$destination = adresse ou préfixe destination, ou “default” pour la route par défaut
$passerelle = adresse de passerelle
$interface = interface de sortie
Les tables de routage alternatives ne doivent pas contenir seulement une route par défaut mais les mêmes destinations que la table de routage principale (“main”). Sinon toutes les destinations utilisent la route par défaut, ce qui n’est pas forcément ce qui est voulu.
On peut aussi utiliser le marquage de paquets par iptables. C’est plus lourd mais permet d’utiliser d’autres critères de routage que l’adresse source, comme le protocole et le port destination.
iptables -t mangle -A PREROUTING $critere -j MARK --set-mark $marque
ip rule add fwmark $marque table $table
$critere = options et correspondances des paquets à marquer (-i $interface, -s $source, -d $destination, -p $protocole, --dport $port…)
$marque = valeur de la marque (entier sur 32 bits)