Comment acheminer uniquement un sous-réseau spécifique (IP source) vers une interface particulière?

31

Comment acheminer uniquement un sous-réseau spécifique (IP source) vers une interface particulière?
OS: Linux

Je sais que je peux faire facilement par IP de destination en utilisant quelque chose comme

route add 1.2.3.4/24 dev eth4

mais je ne vois pas comment peut router en fonction de l'IP source.

Alex
la source

Réponses:

30

Vous devez utiliser un routage basé sur des règles. Quelque chose comme

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>est le nom de la table spécifié dans /etc/iproute2/rt_tablesou vous pouvez utiliser l'ID numérique ...

Cela indique à peu près que tout le trafic provenant de 1.2.3.4/24sera routé à l'aide de la table de routage <name>. IIRC n'utilise pas la table par défaut après avoir traversé cela, donc si vous avez besoin d'autres routes (c'est-à-dire une passerelle par défaut), vous devez également les ajouter à la table.

Renard
la source
1
une correction (mais je ne sais pas si la vôtre fonctionnera également. pour la deuxième commande: ip route add default dev eth4 table <name>(la tabledirective devrait aller à la fin je pense, tout comme dans la première commande ... defaultpeut également être remplacée par un sous-réseau, comme dans votre exemple )
Alex