9.2. Configuration d'un tunnel GRE à l'aide de nmcli pour encapsuler le trafic de couche 3 dans des paquets IPv4
Un tunnel GRE (Generic Routing Encapsulation) encapsule le trafic de la couche 3 dans des paquets IPv4, comme décrit dans la RFC 2784. Un tunnel GRE peut encapsuler n'importe quel protocole de couche 3 avec un type Ethernet valide.
Les données envoyées par un tunnel GRE 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.
Par exemple, vous pouvez créer un tunnel GRE entre deux routeurs RHEL pour connecter deux sous-réseaux internes sur Internet, comme le montre le diagramme suivant :
![GRE tunnel](https://access.redhat.com/webassets/avalon/d/Red_Hat_Enterprise_Linux-9-Configuring_and_managing_networking-fr-FR/images/ee24ab1cb16aa24353c8a2fd6fbbb556/GRE-tunnel.png)
Le nom de l'appareil gre0
est réservé. Utilisez gre1
ou un autre nom pour le dispositif.
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.
Procédure
Sur le routeur RHEL du réseau A :
Créer une interface de tunnel GRE nommée
gre1
:# nmcli connection add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 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
gre1
:# nmcli connection modify gre1 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
gre1
pour utiliser une configuration IPv4 manuelle :# nmcli connection modify gre1 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 gre1 ipv4.routes "172.16.0.0/24 10.0.1.2"
Activer la connexion
gre1
.# nmcli connection up gre1
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 de tunnel GRE nommée
gre1
:# nmcli connection add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 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
gre1
:# nmcli connection modify gre1 ipv4.addresses '10.0.1.2/30'
Configurer la connexion
gre1
pour utiliser une configuration IPv4 manuelle :# nmcli connection modify gre1 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 gre1 ipv4.routes "192.0.2.0/24 10.0.1.1"
Activer la connexion
gre1
.# nmcli connection up gre1
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