Configuration d'un tunnel GRE
Le tunnel GRE est un des tunnels les plus basiques, mais il n'est pas le plus simple non plus. Premièrement GRE fonctionne en utilisant le port 47 en UDP, si vous votre routeur est derrière une box ou un NAT, veillez à rediriger le port 47 vers celui ci.
Pour configurer votre tunnel, des exemples de configurations sont donnés sur la page de votre tunnel
Les subnets
Il est important de ne pas oublier d'attribuer vos subnets au tunnel, pour ce faire, rendez-vous sur la page subnets
Une fois votre subnet attribué, il faut le configurer de l'autre côté du tunnel, pour cela, cela dépend de comment vous souhaitez faire. Il y as 2 principales manières d'attribuer simplement le subnet :
Assigner en LAN
Dans ce scénario on traite simplement le subnet comme étant un réseau LAN, on attribue une IP pour la gateway (le routeur) et on attribue les IPs du LAN aux machines. C'est la méthode recommandée.
NAT 1:1
Dans ce scénario, des règles NAT sont appliquées au routeur afin de translater les IPs publiques vers des IPs privées, comme le ferait une redirection de port, mais avec des IPs complètes. Par exemple sous linux, cela pourrait être fait de telle manière :
# Ne pas oublier d'aciver le forwarding
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 203.0.113.1
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.1 -j DNAT --to-destination 192.168.0.5
iptables -A FORWARD -s 203.0.113.1 -j ACCEPT
iptables -A FORWARD -d 192.168.0.5 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.10 -j SNAT --to-source 203.0.113.2
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.2 -j DNAT --to-destination 192.168.0.10
iptables -A FORWARD -s 203.0.113.2 -j ACCEPT
iptables -A FORWARD -d 192.168.0.10 -j ACCEPT
Sous mikrotik cela pourrait être fait comme cela :
/ip firewall nat
add chain=srcnat src-address=192.168.0.5 action=src-nat to-addresses=203.0.113.1
add chain=srcnat src-address=192.168.0.10 action=src-nat to-addresses=203.0.113.2
/ip firewall nat
add chain=dstnat src-address=203.0.113.1 action=dst-nat to-addresses=192.168.0.5
add chain=dstnat src-address=203.0.113.2 action=dst-nat to-addresses=192.168.0.10
⚠ Attention à bien attribuer les IPs que vous utilisez à une interface de votre routeur (interface locale idéalement), autrement le NAT risque de ne pas fonctionner
Les tables de routage
Une fois vos subnets configurés, vous risquez de rencontrer un problème, en effet, le trafic sortant n'est pas redirigé correctement vers le tunnel (les paquets avec les IPs source de votre subnets essaient de sortir par votre box). Pour remédier à cela, il est possible de faire usage des tables de routage et des règles de routage, ou des VRF. Nous allons expliquer ici la méthode des règles de routage.
Sous linux une manière de régler ce problème serait :
ip route add default via 172.42.0.1 dev tunnel0 table GRE
ip rule add from 203.0.113.0/28 table GRE
Sous Mikrotik cela donnerait ceci :
/routing/table/add name=GRE fib
/ip/route add dst-address=0.0.0.0/0 gateway=172.42.0.1 routing-table=GRE
/routing rule add action=lookup src-address=203.0.113.0/28 table=GRE