Aller au contenu

GRE : Generic Routing Encapsulation

Réseau

GRE : Generic Routing Encapsulation. « Encapsulation générique pour le routage », par analogie avec la lettre glissée telle quelle dans une seconde enveloppe, adressée à un bureau de poste distant qui l'ouvrira et la remettra en circulation. Le protocole emballe un paquet dans un nouvel en-tête IP pour le faire voyager entre deux routeurs, sans rien chiffrer.

Diagramme de séquence entre quatre acteurs : hôte site A, routeur A, routeur B, hôte site B. 1, l'hôte site A envoie au routeur A le paquet IP d'origine, de 10.1.0.5 vers 10.2.0.8. 2, le routeur A ajoute l'en-tête GRE puis un en-tête IP externe, protocole 47, ce qui donne un paquet formé de l'IP externe, de l'en-tête GRE et du paquet IP d'origine. 3, ce paquet va au routeur B : sans IPsec, il traverse Internet lisible en clair ; avec IPsec, il est chiffré et authentifié par IPsec. 4, le routeur B retire l'en-tête externe et l'en-tête GRE. 5, il route normalement le paquet d'origine vers l'hôte site B.

Ce qui passe dedans : Décrit par la RFC 2784, GRE transporte presque n'importe quel protocole, y compris le multicast et les annonces de routage dynamique comme OSPF (Open Shortest Path First), qu'un tunnel IPsec seul transporte mal. D'où le montage classique « GRE dans IPsec » en site à site : GRE porte le routage, IPsec porte la confidentialité.

Ce qui ne passe pas : Aucun chiffrement, aucune authentification : un paquet GRE se lit sur le fil comme une carte postale. Le champ « Key » (RFC 2890) n'a de clé que le nom. Il sert à distinguer plusieurs tunnels, et quiconque lit le paquet le lit aussi.

Surcoût et MTU : Il faut compter au minimum 24 octets : 20 pour l'en-tête IP externe et 4 pour GRE. Sur un lien Ethernet ordinaire, la MTU du tunnel tombe donc de 1500 à 1476 octets, et plus bas encore si IPsec s'ajoute par-dessus. Les gros paquets qui gèlent ont souvent cette cause.

Filtrage et NAT : GRE n'est pas transporté par UDP ni par TCP : c'est le protocole IP numéro 47, sans notion de port. Un pare-feu doit donc l'autoriser explicitement. La traversée d'un NAT reste aléatoire, sauf si un équipement le gère spécifiquement.

Ce qui arrive si on s'en passe

Sans GRE, deux routeurs distants n'ont plus d'interface de tunnel commune pour transporter ce qu'IPsec en mode politique ne sait pas acheminer seul : le trafic multicast et les paquets non IP. Les protocoles de routage dynamique qui reposent sur le multicast (OSPF, EIGRP) ne forment alors plus de voisinage à travers le lien chiffré ; les routes doivent être déclarées statiquement de chaque côté, et la bascule automatique vers un chemin de secours disparaît : une panne de lien n'est plus contournée sans intervention. En revanche, retirer GRE ne retire aucune confidentialité, puisque le protocole ne chiffre rien ; à l'inverse, un tunnel GRE en service sans IPsec par-dessus laisse circuler en clair, et sans authentification, tout ce qu'il encapsule.

Explication de la marmotte

Imagine une lettre destinée à un voisin d'une autre ville, alors que ton facteur ne livre qu'entre mairies. Tu la glisses telle quelle dans une grande enveloppe adressée à la mairie de cette ville. La mairie ouvre la grande enveloppe et distribue la lettre intérieure comme d'habitude. Ce mécanisme fait la même chose entre deux ordinateurs chargés d'aiguiller les messages : il emballe un message dans un autre pour lui faire traverser un réseau qui ne saurait pas le livrer seul. Attention : rien n'est caché. N'importe qui sur le trajet peut ouvrir les enveloppes et lire. Pour le secret, il faut ajouter un autre outil, comme un cadenas sur la grande enveloppe.

Où ce terme est utilisé

← Tout le glossaire