6135 links
  • GuiGui's Show
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
 
  • linux - How to route only specific subnet (source ip) to a particular interface? - Super User
    Source routing sous Linux.

    Exemple (tiré d'un cas concret). On veut avoir une route par défaut (vers Internet) différente en fonction de l'origine : deux préfixes IP distincts. Les interfaces de sorties sont également différentes en fonction du préfixe source.

    1) On entre un couple id-nom de table dans /etc/iproute2/rt_tables :
    252 table1
    253 table2

    2) On dirige dans une table en fonction du préfixe source :
    ip rule add from 192.0.2.0/24 table table1
    ip rule add from 198.51.100.0/24 table table2

    3) On ajoute les routes vers les deux gw à utiliser :
    ip route add 198.18.0.1 dev eth0
    ip route add  203.0.113.1 dev eth1

    Oui, il est impératif de créer ces routes dans la table principale (main) !

    4) On ajoute les routes par défaut dans chaque table
    ip route add default via 198.18.0.1 dev eth0 table table1
    ip route add default via 203.0.113.1 dev eth1 table table2

    5) Pour tester :
    ping <destination> : on ne doit pas sortir (je considére que ce qui passe ici appartient à l'un ou l'autre des préfixes et doit donc tomber dans une table, je n'ai aucune route dans main (à part vers les gw, of course)
    ping -I 192.0.2.1 <destination> ou traceroute -s 192.0.2.1  <destination> : on doit sortir par eth0 et 198.18.0.1 (table1)
    ping -I 198.51.100.1 <destination> ou traceroute -s 198.51.100.1 <destination> : on doit sortir par eth1 et 203.0.113.1 (table 2)

    Pour debug vos règles : ip rule s. Une erreur saute vite aux yeux. Exemple kimarche :
    0: from all lookup local
    32764: from 192.0.2.0/24 lookup table1
    32765: from 198.51.100.0/24 lookup table2
    32766: from all lookup main

    Exemple kimarchepas :
    0: from all lookup local
    32764: from 192.0.2.0/24 lookup table1
    32765: from 198.51.100.0/24 lookup table2
    32766: from all lookup main
    32767: from all lookup table2

    Notez la dernière ligne ;)

    Évidemment, le source-routing, comme les autres fonctionnalités réseaux est également disponible dans un netns.

    ÉDIT du 21/02/2015 à 17h00 : À partir de Linux 3.12, en IPv6 uniquement, le source routing devient plus simple. Voir : http://shaarli.guiguishow.info/?i9-rcA . FIN DE L'ÉDIT.
    June 16, 2014 at 10:29:40 PM UTC - permalink - https://superuser.com/questions/376667/how-to-route-only-specific-subnet-source-ip-to-a-particular-interface
Links per page: 20 50 100
 
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super fast, database-free, bookmarking service by the Shaarli community