Monter un tunnel GRE sous Debian
Parfois, c’est bien pratique de monter de simples tunnels GRE.
Petite configuration de mon dédié, où je fais du BGP à travers MilkyWan
auto tun100
iface tun100 inet static
address 80.67.167.161/31
pre-up iptunnel add tun100 mode gre remote 80.67.167.66 local 151.80.67.0 ttl 255
up /srv/scripts/tun100_milkywan.sh
post-down iptunnel del tun100
iface tun100 inet6 static
address 2a0b:cbc0:1::17a/126
up /srv/scripts/tun100_milkywan_inet6.sh
Visiblement j’arrive à monter le tunnel en IPv4, et je n’ai pas besoin de le déclarer dans la configuration IPv6. De ce fait je fais du GRE over IPv4 qui transporte de l’IPv4/IPv6.
Je ne sais pas si c’est la meilleure implémentation qu’il soit, mais bon ça fonctionne.
Ah oui vous vous demandez ce qu’il y a dans /srv/scripts/tun100_milkywan.sh
? Rien de fou…
#!/bin/sh
ip rule add from 80.67.167.160/31 table 101
ip route add 80.67.167.160/31 dev tun100 scope link table 101
ip route add default via 80.67.167.160 dev tun100 table 101
ip route add default via 80.67.167.160 table 100
#!/bin/sh
ip -6 rule add from 2a0b:cbc0:1::178/126 table 101
ip -6 route add 2a0b:cbc0:1::178/126 dev tun100 scope link table 101
ip -6 route add default via 2a0b:cbc0:1::179 dev tun100 table 101
ip -6 route add default via 2a0b:cbc0:1::179 table 100
Bon, en vrai il n’y a pas besoin de tout cela, j’utilise juste la table 100 pour y ranger toutes les routes ramenées en BGP par Bird2, et la table 101 contient juste les routes locales à l’interface GRE (ne sert pas à grand chose en l’état, mais elle est là 😃)