← retour aux snippets

ip rule: policy routing par adresse source

Acheminer des sous-réseaux via des passerelles différentes selon l'adresse source.

bash network #ip#policy#routing

objectif

Utiliser des tables de routage séparées et des règles basées sur l’adresse source pour du multi-WAN ou multi-VLAN.

code minimal

# définir la table custom 100 dans /etc/iproute2/rt_tables
echo '100  rt100' | sudo tee -a /etc/iproute2/rt_tables

# ajouter route par défaut dans la table 100 via GW1
sudo ip route add default via 192.0.2.1 dev eth0 table rt100

# diriger le trafic issue de 10.10.10.0/24 vers la table 100
sudo ip rule add from 10.10.10.0/24 table rt100 priority 1000

utilisation

# inspecter règles et routes
ip rule show
ip route show table rt100

# tester le chemin choisi
ip -o route get 1.1.1.1 from 10.10.10.5

variante(s) utile(s)

# ajouter une route spécifique dans rt100
sudo ip route add 203.0.113.0/24 via 192.0.2.2 dev eth0 table rt100

# métrique plus basse/higher priority (priorité plus faible = moins prioritaire)
sudo ip rule add from 10.10.20.0/24 table rt100 priority 1500

notes

  • persistez règles et routes via votre gestionnaire réseau ou scripts systemd.
  • les priorités plus basses sont évaluées avant les plus hautes.
  • combinez avec connmark/nftables pour des politiques plus fines.