Configuration tunnel GRE sur OpenBSD
Objectifs
Permettre de relier 2 réseaux distincts via un tunnel GRE.
Topologie
Plages d'adresses des 2 reseaux à relier:
- 192.168.16.x pour le réseau A
- 192.168.22.x pour le réseau B
Le réseau WAN utilisé pour le tunnel possède une plage d'ip en 192.168.122.x.
Le serveur OpenBSD sur le réseau A, appellé tun.a, possède les adresses IP suivantes:
- 192.168.122.16 sur le réseau WAN
- 192.168.16.254 sur le réseau A
Le serveur OpenBSD sur le réseau B, appellé tun.b, possède les adresses IP suivantes:
- 192.168.122.22 sur le réseau WAN
- 192.168.22.254 sur le réseau B
Configuration
Il s'agit de configurer un tunnel utilisant les adresses suivantes à ses extrémités:
- 172.16.0.1
- 172.16.0.2
L'interface utilisée pour le tunnel sera nommée gre0 en rapport avec le protocole utilisé GRE.
Pare-feu
Dans un premier temps, pour faciliter la mise en oeuvre, n'appliquons aucun filtrage sur les interfaces GRE.
Ajouter la ligne suivante, sur les 2 serveurs, dans le début du fichier /etc/pf.conf:
set skip on gre0
Autorisation des tunnels GRE
Pour autoriser au niveau du noyau les tunnels de type GRE, il faut ajouter sur les 2 serveurs, la ligne suivante dans /etc/sysctl.conf:
net.inet.gre.allow=1
Et pour l'appliquer immédiatement, taper la commande suivante:
sysctl -w net.inet.gre.allow=1
Autorisation du routage
Pour activer le routage IP, il faut ajouter la ligne suivante dans /etc/sysctl.conf:
net.inet.ip.forwarding=1
Et pour l'appliquer immédiatement, taper la commande suivante:
sysctl -w net.inet.ip.forwarding=1
Sur le serveur tun.a
Contenu du fichier /etc/hostname.gre0
172.16.0.1 172.16.0.2 netmask 0xffffffff link0 up tunnel 192.168.122.16 192.168.122.22 !route add -net 192.168.22 -netmask 255.255.255.0 172.16.0.2
Sur le serveur tun.b
Contenu du fichier /etc/hostname.gre0
172.16.0.2 172.16.0.1 netmask 0xffffffff link0 up tunnel 192.168.122.22 192.168.122.16 !route add -net 192.168.16 -netmask 255.255.255.0 172.16.0.1