Principe

Sur nos machines hébergées (TTNN et LDN), nous voulons faire passer tout le flux par défaut via le tunnel IPSec, sauf les réponses à des questions posées via l'IP fournie par notre partenaire.

Mise en œuvre – exemple sur gaffe

Table de routage

Dans le fichier /etc/iproute2/rt_tables, on ajoute une table ttnn :

#
# reserved values
#
255 local
254 main
253 default
0   unspec
#
# local
#
#1  inr.ruhep

# via TTNN
10  ttnn

Puis on ajoute une règle disant que les flux arrivant par l'IP de TTNN repartent via la table de routage ttnn :

ip rule add from 91.224.149.11 table ttnn

Gestion des routes

On ajoute ensuite une route par défaut dans la table ttnn vers la gateway de TTNN :

ip route add default via 91.224.149.254 table ttnn

Pour le transfert et avant la suppression des autres routes, on ajoute une route avec une métrique que l'on supprimera après :

ip route add default via 10.6.47.6 metric 100 src 91.216.110.7

On enlève la route par défaut vers l'IP de TTNN :

ip route del default via 91.224.149.254

Vérifications

Avec quagga (gaffe - TTNN)

On vérifie que la route par défaut est bien apprise par ospf :

vtysh -d ospfd
sh ip ospf route
…
============ OSPF external routing table ===========
N E2 0.0.0.0/0             [10/1] tag: 0
                           via 10.6.47.6, tun-estran
…

Puis que zebra l'intègre bien dans le noyau avec :

vtysh -d zebra
sh ip route
…
O>* 0.0.0.0/0 [110/1] via 10.6.47.6, tun-estran, src 91.216.110.7, 08:55:24
…

Avec bird (radeau - LDN)

On vérifie que la route arrive bien dans bird via l'ospf :

birdc
bird> show route 
0.0.0.0/0          via 10.8.47.6 on tun-estran [ospf1 23:29] * E2 (150/5/1) [91.216.110.6]
…

Si elle n'est pas apprise via ospf, il faut vérifier dans les filtres qu'on accepte bien du 0.0.0.0/0 en ospf de estran.

Finitions

Puis, si tout fonctionne correctement, que la route arrive bien via ospf, et que zebra l'intègre bien au noyau, on peut virer la route temporaire par défaut qu'on avait mise au cas où :

ip route del default

Mise en place permanente

Dans /etc/network/interfaces, on ajoute ces 4 lignes dans l'interface eth0 :

    # pour le source-routing ttnn / tunnel
    up ip rule add from 91.224.149.11 table ttnn
    up ip route add default via 91.224.149.254 table ttnn
    down ip route del default via 91.224.149.254 table ttnn
    down ip rule del from 91.224.149.11 table ttnn