{"id":98,"date":"2008-06-14T15:24:47","date_gmt":"2008-06-14T14:24:47","guid":{"rendered":"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/06\/14\/routage-avec-deux-cartes-reseaux\/"},"modified":"2008-06-14T15:24:47","modified_gmt":"2008-06-14T14:24:47","slug":"routage-avec-deux-cartes-reseaux","status":"publish","type":"post","link":"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/06\/14\/routage-avec-deux-cartes-reseaux\/","title":{"rendered":"Routage avec deux cartes r\u00e9seaux"},"content":{"rendered":"<p class=\"level3\"> Pour les serveurs qui poss\u00e8dent 2 cartes ethernet avec des adresses IP dans des VLAN diff\u00e9rents et sans configuration suppl\u00e9mentaire, les trames IP qui arrivent sur l\u2019interface eth1 ont les r\u00e9ponses qui partent sur eth0, qui est l\u2019interface qui dispose de la gateway par d\u00e9faut.<\/p>\n<p class=\"level3\">Ceci peut poser des probl\u00e8mes de routage et de contr\u00f4le des acc\u00e8s.<\/p>\n<p>Pour rem\u00e9dier \u00e0 cela, je vous propose une solution qui \u00e0 l\u2019air de fonctionner et fait passer les trames aller\/retour sur la m\u00eame interface:<\/p>\n<p>1) ajouter dans le fichier \/etc\/iproute2\/rt_tables les  lignes \u201c&lt;num\u00e9ro table&gt; &lt;nom table&gt;\u201d<\/p>\n<p>2) Si un serveur du vlan eth1 se connecte \u00e0 l\u2019adresse eth0 du serveur, pour que les paquets retour de la connexion utilisent l\u2019interface eth0 comme les paquets aller et non eth1:<\/p>\n<p>ip route add default via &lt;gateway vlan eth0&gt; dev eth0 table &lt;nom table 1&gt;<br \/>\nip rule add from &lt;vlan eth0&gt; to &lt;vlan eth1&gt; table &lt;nom table 1&gt; priority &lt;niveau 1&gt;<\/p>\n<p>3) Pour une connexion entre 2 serveurs du vlan eth1, pour que les paquets passent par l\u2019interface eth1 sans contacter la gateway d\u2019eth1 qui sera d\u00e9finie dans la r\u00e8gle suivante et \u00e9viter ainsi le filtrage de la gateway:<\/p>\n<p>ip route add dev eth1 table &lt;nom table 2&gt;<br \/>\nip rule add from &lt;vlan eth1&gt; to &lt;vlan eth1&gt; table &lt;nom table 2&gt; priority &lt;niveau 2&gt;<\/p>\n<p>4) Si un serveur hors du vlan eth1 se connecte \u00e0 l\u2019adresse eth1 du serveur, pour que les paquets retour passent par eth1 et non la default gateway de eth0.<\/p>\n<p>ATTENTION: cette r\u00e8gle doit obligatoirement avoir un niveau de priorit\u00e9 sup\u00e9rieur \u00e0 la r\u00e8gle pr\u00e9c\u00e9dente:<\/p>\n<p>ip route add default via &lt;gateway vlan eth1&gt; dev eth1 table &lt;nom table 3&gt;<br \/>\nip rule add from &lt;vlan eth1&gt; table &lt;nom table 3&gt; priority &lt;niveau 2&gt; + 1<\/p>\n<p>5) faire un flush des routes:<\/p>\n<p>ip route flush cache<\/p>\n<p>6) pour que les d\u00e9finitions soient ajout\u00e9es\/supprim\u00e9es lors des activations\/d\u00e9sactivations des interfaces, il faut cr\u00e9er les scripts shell \/sbin\/ifup-local et \/sbin\/ifdown-local.<\/p>\n<p>Le premier script contiendra les r\u00e8gles vues pr\u00e9c\u00e9demment et le second les m\u00eame r\u00e8gles en modifiant \u201cadd\u201d par \u201cdel\u201d.<\/p>\n<p>Ces scripts sont automatiquement appel\u00e9s par les scripts de manipulation des interfaces r\u00e9seaux et sont lanc\u00e9s avec comme param\u00e8tre le nom de l\u2019interface.<\/p>\n<p>Dans les scripts c\u2019est le test de ce param\u00e8tre (exemple eth1) qui permettra de cr\u00e9er\/supprimer les r\u00e8gles de routage.<\/p>\n<p>Les commandes pour v\u00e9rifier la configuration:<\/p>\n<ol>\n<li class=\"level1\">\n<p class=\"li\"> pour voir les r\u00e8gles: ip rule show<\/p>\n<\/li>\n<li class=\"level1\">\n<p class=\"li\"> pour voir le routage: ip route show table vlan124<\/p>\n<\/li>\n<\/ol>\n<p>Exemple d\u2019un serveur avec le vlan 51 sur eth0 et le vlan 124 sur eth1:<\/p>\n<p>1) fichier rt_tables:<\/p>\n<pre class=\"code\">51 \tvlan51\r\n124\tvlan124\r\n125\tvlan124out<\/pre>\n<p>2) Pour que les paquets qui sortent de 10.144.51 vers 10.144.124 utilisent eth0 et non eth1 (cas des paquets retour d\u2019une connexion d\u2019un serveur 10.144.124 vers l\u2019interface 10.144.51)<\/p>\n<pre class=\"code\">ip route add default via 10.144.51.254 dev eth0 table vlan51\r\nip rule add from 10.144.51.0\/24 to 10.144.124.0\/22 table vlan51 priority 51<\/pre>\n<p>3) Pour que les paquets de 10.144.124 vers 10.144.124 passent par l\u2019interface eth1 sans contacter la gateway<\/p>\n<pre class=\"code\">ip route add dev eth1 table vlan124\r\nip rule add from 10.144.124.0\/22 to 10.144.124.0\/22 table vlan124 priority 124<\/pre>\n<p>4) Pour que les paquets qui sortent de 10.144.124 passent par eth1 et la gateway (cas d\u2019une connexion d\u2019un poste hors vlan 124 vers le vlan 124) avec n\u00e9cessairement une priorit\u00e9 sup\u00e9rieure \u00e0 la r\u00e8gle pr\u00e9c\u00e9dente<\/p>\n<pre class=\"code\">ip route add default via 10.144.127.254 dev eth1 table vlan124out\r\nip rule add from 10.144.124.0\/22 table vlan124out priority 125<\/pre>\n<pre class=\"code\"><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Pour les serveurs qui poss\u00e8dent 2 cartes ethernet avec des adresses IP dans des VLAN diff\u00e9rents et sans configuration suppl\u00e9mentaire, les trames IP qui arrivent sur l\u2019interface eth1 ont les r\u00e9ponses qui partent sur eth0, qui est l\u2019interface qui dispose &hellip; <a href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/06\/14\/routage-avec-deux-cartes-reseaux\/\">Read More <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,3],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/98"}],"collection":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":0,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}