« Routage linux » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
[[Category:linux]] | [[Category:linux]] | ||
Ordre d'une décision de routage (dans l'ordre de décision) : | Ordre d'une décision de routage sous linux (dans l'ordre de décision) : | ||
* Most specific route | * Most specific route | ||
* Lowest administrative distance | * Lowest administrative distance | ||
* lowest metric (ou preference sous linux) | * lowest metric (ou preference sous linux, a ne pas confondre avec le champ 'pref' pour les routes ipv6) | ||
Les paquets sont considérés individuellement pour les décisions de routage. La décision de routage ne prend donc pas en considération qu'un paquet puisse être la réponse à un autre paquet. Cela peut poser soucis dans les installations avec plusieurs interfaces réseaux et générer un routage asymétrique (paquet entrant par un couple interface/gateway et sortant par un autre couple interface/gateway. | |||
On peut cependant créer des tables de routages indépendantes dans cette situation : | Les paquets sont considérés individuellement pour les décisions de routage. | ||
La décision de routage ne prend donc pas en considération qu'un paquet puisse être la réponse à un autre paquet. | |||
Cela peut poser soucis dans les installations avec plusieurs interfaces réseaux et générer un routage asymétrique (paquet entrant par un couple interface/gateway et sortant par un autre couple interface/gateway suite à une décision de routage (et uniquement suite à une décision de routage). | |||
<br>On peut cependant créer des tables de routages indépendantes dans cette situation : | |||
<pre> | <pre> | ||
echo '252 T1' >> /etc/iproute2/rt_tables | echo '252 T1' >> /etc/iproute2/rt_tables | ||
echo '251 T2' >> /etc/iproute2/rt_tables | echo '251 T2' >> /etc/iproute2/rt_tables | ||
# | # notez que les numéros ici ne sont PAS une priorité. C'est un identifiant numérique de la table (de 0 à 255, sachant que 0, 253, 254 et 255 sont réservés) | ||
ip rule add from 10.0.0.100 table T1 | ip rule add from 10.0.0.100 table T1 | ||
Ligne 25 : | Ligne 28 : | ||
ip route add default via 10.0.0.2 dev eth1 src 10.10.0.200 table T2 | ip route add default via 10.0.0.2 dev eth1 src 10.10.0.200 table T2 | ||
</pre> | </pre> | ||
Dans le cas présent : | |||
* Les paquets provenant (directive <code>from</code> de l'IP 10.0.0.100 seront adressé à la table de routage T1 qui route ses paquets vers la gateway 10.0.0.2 de l'interface eth0 si leur IP source est 10.0.0.100 | |||
* Les paquets provenant (directive <code>from</code> de l'IP 10.0.0.200 seront adressé à la table de routage T2 qui route ses paquets vers la gateway 10.0.0.2 de l'interface eth1 si leur IP source est 10.10.0.200 | |||
<br>A noter que cette solution : | |||
* ne nécessite aucun marquage des paquets avec ipfilter/netfilter | |||
* fonctionne car le paquet dit sortant (=la réponse) aura le champ ip-src défini à la valeur du ip-dst du paquet entrant initial (=la requête) : | |||
** Paquet entrant (initial) ip-src=IP-AAAA ip-dst='''IP-BBBB''' | |||
** Paquet sortant (réponse) ip-src='''IP-BBBB''' ip-dst=IP-AAAA | |||
<br> | |||
Vous pouvez voir les rules par défaut avec <code>ip rule show</code> (ici la table de rule par défaut) : | |||
<pre> | |||
0: from all lookup local | |||
32766: from all lookup main | |||
32767: from all lookup default | |||
</pre> | |||
Ici nous avons : | |||
* Priority 0 sans selecteur (<code>from all</code>) -> lookup sur la table de routage 'local' (ID 255) (table local / broadcast) | |||
* Priority 32766 sans selecteur (<code>from all</code>) -> lookup sur la table de routage 'main' (ID 254) (table par défaut) | |||
* Priority 32767 sans selecteur (<code>from all</code>) -> lookup sur la table de routage 'default' (ID 255) (table vide réservée) | |||
<br> | |||
Vous pouvez inspecter une table de routage avec la commande suivante : <pre>ip route show table NOM_DE_LA_TABLE</pre> |