5. Interconnexion avec deux routeurs de bordure OSPF

Une fois que tous les routeurs (postes de travaux pratiques) sont actifs et que toutes les instances de routage OSPF ont convergé, les Spokes disposent de deux passerelles de sortie vers l'Internet. Les deux routeurs de bordure qui assurent cette fonction de passerelle sont Centares et Naboo. Du point de vue de l'aire OSPF, on dispose ainsi d'une tolérance aux pannes puisque les instances de routage OSPF effectuent automatiquement un recalcul de topologie dans le cas où l'une des deux passerelles viendrait à «tomber».

Le routeur de niveau supérieur, Cooper, ne dispose pas du même niveau d'information puisqu'il n'y a aucun échange de protocole de routage entre lui et les deux routeurs de bordure de l'aire OSPF. Pour associer ce routeur au mécanisme de tolérance aux pannes, on utilise le marquage de paquets. L'idée est que pour tout flux issu d'une passerelle, le flux retour soit renvoyé à cette même passerelle. On identifie ainsi la source du trafic. Si une des deux passerelles «tombe», elle n'émet plus aucun flux et le routeur Cooper ne verra plus de nouveau flux provenant de son interface.

Comme les interfaces des trois routeurs appartiennent au même VLAN ou domaine de diffusion, on utilise les adresses MAC comme identifiant de marquage. Dans cet exemple, l'octet le plus à droite de l'adresse MAC sert à identifier la passerelle à l'origine du trafic.

Interconnexion topologie globale et Internet
[Note] Note

Les manipulations présentées ci-dessous sont réalisées par l'enseignant sur le routeur Cooper en début de séance. Compte tenu des «aléas de configuration» dans l'aire OSPF, le mécanisme de tolérance aux pannes est très utile dans le contexte des travaux pratiques.

Le processus de traitement suit les étapes suivante pour un flux sortant de l'aire OSPF.

  1. Nouveau flux entrant sur l'interface de Cooper en provenance de l'une des deux passerelles

  2. Marquage du premier paquet en fonction de l'adresse MAC source dans la chaîne PREROUTING de la table mangle.

  3. Mémorisation du marquage de paquet dans le mécanisme suivi d'état du système de filtrage (connmark)

  4. Entrée dans la table de routage dédiée au routeur de bordure à l'origine du flux.

Le processus de traitement suit les étapes suivante pour un flux retour vers l'aire OSPF.

  1. Restauration du marquage de paquet en fonction des enregistrements effectués via le mécanisme suivi d'état du système de filtrage (connmark)

  2. Entrée dans la table de routage dédiée au routeur de bordure à l'origine du flux.

Les opérations de configuration correspondantes sont données ci-après.

Création des tables de routage dédiées à chaque passerelle
  • Édition du fichier /etc/iproute2/rt_tables.

    # cat /etc/iproute2/rt_tables 
    #
    # reserved values
    #
    255     local
    254     main
    253     default
    0       unspec
    #
    # local
    #
    #1      inr.ruhep
    72      centares
    79      naboo
  • Ajout des entrées dans les deux nouvelles tables de routage.

    # ip route add 10.0.16.0/20 via 172.16.17.10 table centares
    # ip route add 10.0.32.0/20 via 172.16.17.10 table centares
    # ip route add default dev bond0 table centares
    # ip route add 10.0.16.0/20 via 172.16.17.40 table naboo
    # ip route add 10.0.32.0/20 via 172.16.17.40 table naboo
    # ip route add default dev bond0 table naboo

    Dans les deux copies d'écran ci-dessus on a agrégé tous les réseaux de l'aire OSPF en deux entrées.

Création des règles de marquage des flux

La table mangle est dédiée à l'altération des paquets. Ici, on s'intéresse uniquement à l'ajout d'un marquage de chaque paquet transitant par les interfaces réseau.

# iptables -t mangle -A PREROUTING -i bond0.4 \
        -m mac --mac-source 00:1f:c6:01:26:72 -j MARK --set-mark 72
# iptables -t mangle -A PREROUTING -i bond0.4 \
        -m mac --mac-source 00:1f:c6:01:26:79 -j MARK --set-mark 79
# iptables -t mangle -A PREROUTING -i bond0.4 -j CONNMARK --save-mark
# iptables -t mangle -A PREROUTING -i bond0 -j CONNMARK --restore-mark
Création des règles d'entrée dans les tables de routage

C'est le marquage qui détermine le choix de la table de routage à utiliser.

# ip rule add fwmark 72 table centares
# ip rule add fwmark 79 table naboo

Et voilà ! Il ne reste plus qu'à consulter les entrées conntrack à l'aide de la commande # conntrack -L pour voir apparaître les marquages.