Chapitre 9. Configuration des tunnels IP
Semblable à un VPN, un tunnel IP relie directement deux réseaux par l'intermédiaire d'un troisième réseau, tel que l'internet. Cependant, tous les protocoles de tunnel ne prennent pas en charge le cryptage.
Les routeurs des deux réseaux qui établissent le tunnel ont besoin d'au moins deux interfaces :
- Une interface connectée au réseau local
- Une interface connectée au réseau par lequel le tunnel est établi.
Pour établir le tunnel, vous créez une interface virtuelle sur les deux routeurs avec une adresse IP du sous-réseau distant.
Le NetworkManager supporte les tunnels IP suivants :
- Encapsulation générique du routage (GRE)
- Encapsulation générique du routage sur IPv6 (IP6GRE)
- Point d'accès terminal d'encapsulation générique de routage (GRETAP)
- Point d'accès terminal d'encapsulation de routage générique sur IPv6 (IP6GRETAP)
- IPv4 sur IPv4 (IPIP)
- IPv4 sur IPv6 (IPIP6)
- IPv6 sur IPv6 (IP6IP6)
- Transition Internet simple (SIT)
Selon le type, ces tunnels agissent sur la couche 2 ou 3 du modèle d'interconnexion des systèmes ouverts (OSI).
9.1. Configuration d'un tunnel IPIP à l'aide de nmcli pour encapsuler le trafic IPv4 dans des paquets IPv4
Un tunnel IP sur IP (IPIP) fonctionne sur la couche 3 de l'OSI et encapsule le trafic IPv4 dans des paquets IPv4, comme décrit dans la RFC 2003.
Les données envoyées par un tunnel IPIP ne sont pas cryptées. Pour des raisons de sécurité, n'utilisez le tunnel que pour des données déjà cryptées, par exemple par d'autres protocoles, tels que HTTPS.
Notez que les tunnels IPIP ne prennent en charge que les paquets unicast. Si vous avez besoin d'un tunnel IPv4 prenant en charge la multidiffusion, consultez la section Configuration d'un tunnel GRE à l'aide de nmcli pour encapsuler le trafic de couche 3 dans des paquets IPv4.
Par exemple, vous pouvez créer un tunnel IPIP entre deux routeurs RHEL pour connecter deux sous-réseaux internes sur Internet, comme le montre le diagramme suivant :
Conditions préalables
- Chaque routeur RHEL dispose d'une interface réseau connectée à son sous-réseau local.
- Chaque routeur RHEL dispose d'une interface réseau connectée à Internet.
- Le trafic que vous souhaitez envoyer à travers le tunnel est un monodiffusion IPv4.
Procédure
Sur le routeur RHEL du réseau A :
Créer une interface tunnel IPIP nommée
tun0
:# nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 198.51.100.5 local 203.0.113.10
Les paramètres
remote
etlocal
définissent les adresses IP publiques des routeurs local et distant.Définissez l'adresse IPv4 de l'appareil
tun0
:# nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'
Notez qu'un sous-réseau
/30
avec deux adresses IP utilisables est suffisant pour le tunnel.Configurer la connexion
tun0
pour utiliser une configuration IPv4 manuelle :# nmcli connection modify tun0 ipv4.method manual
Ajoutez une route statique qui achemine le trafic vers le réseau
172.16.0.0/24
vers l'IP du tunnel sur le routeur B :# nmcli connection modify tun0 ipv4.routes "172.16.0.0/24 10.0.1.2"
Activer la connexion
tun0
.# nmcli connection up tun0
Activer le transfert de paquets :
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
Sur le routeur RHEL du réseau B :
Créer une interface tunnel IPIP nommée
tun0
:# nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 203.0.113.10 local 198.51.100.5
Les paramètres
remote
etlocal
définissent les adresses IP publiques des routeurs local et distant.Définissez l'adresse IPv4 de l'appareil
tun0
:# nmcli connection modify tun0 ipv4.addresses '10.0.1.2/30'
Configurer la connexion
tun0
pour utiliser une configuration IPv4 manuelle :# nmcli connection modify tun0 ipv4.method manual
Ajoutez une route statique qui achemine le trafic vers le réseau
192.0.2.0/24
vers l'IP du tunnel sur le routeur A :# nmcli connection modify tun0 ipv4.routes "192.0.2.0/24 10.0.1.1"
Activer la connexion
tun0
.# nmcli connection up tun0
Activer le transfert de paquets :
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
Vérification
À partir de chaque routeur RHEL, envoyez un ping à l'adresse IP de l'interface interne de l'autre routeur :
Sur le routeur A, ping
172.16.0.1
:# ping 172.16.0.1
Sur le routeur B, ping
192.0.2.1
:# ping 192.0.2.1
Ressources supplémentaires
-
nmcli(1)
page de manuel -
nm-settings(5)
page de manuel