Novembre 2012 Archives

jeudi 22 novembre 2012, 17:51:40 (UTC+0100)

Aire OSPF et passerelles multiples (2ème)

Suite à l'article Aire OSPF et passerelles multiples et au cycle de travaux pratiques des M1 STRI sur l'interconnexion des réseaux locaux et étendus, voici une variante d'utilisation du marquage de paquets avec des tables de routage multiples. L'idée est toujours d'implanter un mécanisme de tolérance aux pannes entre les passerelles d'une aire OSPF et un routeur de niveau «supérieur».

Interconnexion avec deux routeurs de bordure OSPF

Ici, les trois routeurs protagonistes ont chacun une interface dans le même domaine de diffusion et on utilise un octet d'adresse MAC pour identifier et distinguer les passerelles.

Pour un nouveau flux sortant de l'aire OSPF, il y a ...

  1. Marquage du premier paquet en fonction de l'adresse MAC source dans la chaîne PREROUTING de la table mangle.
  2. Mémorisation du marquage de paquet dans le mécanisme de suivi d'état du système de filtrage (connmark)
  3. Entrée dans la table de routage dédiée au routeur de bordure à l'origine du flux.

Pour un flux retour dans l'aire OSPF, il y a ...

  1. Restauration du marquage de paquet en fonction des enregistrements effectués via le mécanisme de suivi d'état
  2. Entrée dans la table de routage dédiée au routeur de bordure vers lequel le flux doit être dirigé.

La configuration correspondante est alors obtenue avec ...

  • Une table de routage par routeur de bordure :
    # cat /etc/iproute2/rt_tables 
    #
    # reserved values
    #
    255     local
    254     main
    253     default
    0       unspec
    #
    # local
    #
    #1      inr.ruhep
    72      centares
    79      naboo

    # ip route add 10.0.16.0/20 via 172.16.1.1 table centares
    # ip route add 10.0.32.0/20 via 172.16.1.1 table centares
    # ip route add default dev bond0 table centares

    # ip route add 10.0.16.0/20 via 172.16.4.1 table naboo
    # ip route add 10.0.32.0/20 via 172.16.4.1 table naboo
    # ip route add default dev bond0 table naboo
  • Le plan d'adressage est donné dans le support Étude de cas sur l'interconnexion LAN/WAN.

  • Des règles de marquages utilisant la table mangle :
    # iptables -t mangle -A PREROUTING -i bond0.1 -m mac --mac-source 00:1f:c6:01:26:72 -j MARK --set-mark 72
    # iptables -t mangle -A PREROUTING -i bond0.1 -m mac --mac-source 00:1f:c6:01:26:79 -j MARK --set-mark 79
    # iptables -t mangle -A PREROUTING -i bond0.1 -j CONNMARK --save-mark
    # iptables -t mangle -A PREROUTING -i bond0 -j CONNMARK --restore-mark
  • Ici, l'interface bond0 correspond au lien vers l'Internet et l'interface bond0.1 appartient au même réseau local que les deux routeurs de bordure.

  • Des règles d'entrée dans les tables de routage en fonction des marques :
    # ip rule add fwmark 72 table centares
    # ip rule add fwmark 79 table naboo

Voilà ! Cette configuration n'est qu'un exemple supplémentaire d'utilisation des tables de routage multiples sur les systèmes GNU/linux. Cette technique est trop souvent considérée à tort comme «effrayante». Dès lors que l'on accepte de traiter le problème pas à pas, la «représentation intellectuelle» de la gestion des flux se met plus facilement en place ;).

Une fois de plus, le «copié-collé de la mort» si cher aux étudiants ne rend pas service et ne permet pas de visualiser les mécanismes en jeu.