Une adresse qui reste inutilisée dans l'allocation de l'organisation n'est pas un écouteur, et l'ajouter à un pare-feu n'en crée pas. Quelque chose doit terminer IKE sur cette adresse, et le mécanisme diffère selon que la passerelle possède l'adresse ou qu'un équipement en amont la traduit. C'est le chemin du paquet qui distingue les deux cas, et il détermine la fonction de la plateforme dont vous avez besoin avant que quiconque ouvre une demande de changement. Modélisez d'abord le chemin, puis choisissez.

Le chemin du paquet derrière l'adresse

Un pair envoie IKE vers l'adresse qu'il a reçue, sur UDP 500 ou sur UDP 4500 quand la traversée de NAT entre en jeu. L'équipement qui détient cette adresse sur le chemin soit reçoit le datagramme localement et y répond, soit le transmet ailleurs. Ce sont les deux seules possibilités, et tout le reste de cet article découle de celle qui est vraie.

Recevoir localement signifie qu'une socket existe sur cet équipement, liée à cette adresse. Transmettre signifie que le datagramme est réécrit et envoyé vers un autre point d'extrémité, qui détient alors la socket. Une règle de pare-feu qui autorise UDP 500 ne vous dit rien sur celle des deux qui se produit.

Écrivez l'enregistrement avant de toucher à quoi que ce soit : l'adresse que contactent les pairs, la manière dont le réseau amont la livre, l'interface locale ou le point d'extrémité logique qui la reçoit, et le processus qui répond à IKE. Quatre lignes, et chacune peut être vérifiée. Quand l'une d'elles est inconnue, cette inconnue est le travail de conception et non un détail de mise en œuvre à régler plus tard. Les remplir après l'approbation de la demande de changement, c'est ainsi qu'une règle de traduction finit sur le mauvais équipement.

Modèle A : la passerelle possède l'adresse

Dans le premier modèle, la passerelle détient elle-même l'adresse, soit comme adresse secondaire sur une interface existante, soit comme adresse sur une interface dédiée, soit comme loopback que la plateforme prend en charge comme extrémité de tunnel. Ce sont trois fonctions différentes avec trois chemins de configuration différents, et une plateforme qui en prend une en charge peut ne pas prendre les autres.

Confirmez que la plateforme et la version prennent en charge exactement cette disposition avant de concevoir autour d'elle. Un bloc routé, une adresse supplémentaire sur une interface et une extrémité loopback ne sont pas interchangeables, et la documentation d'une version ne promet pas que la suivante se comporte de la même manière.

ip -br addr show
ss -lunp | grep -E ':500|:4500'
sudo tcpdump -ni eth0 'udp port 500 or udp port 4500'

La socket en écoute est la preuve. Si rien n'est lié à l'adresse, la passerelle n'est pas le terminateur quoi que dise la table de routage, et une capture de paquets montrera les datagrammes arriver sans que rien ne leur réponde.

Ne placez pas une seconde interface dans un sous-réseau qui existe déjà ailleurs dans la topologie et ne supposez pas que la plateforme réglera cela. Des sous-réseaux d'interface qui se chevauchent produisent une sélection de source ambiguë et, sur de nombreuses plateformes, un refus pur et simple de configurer.

Modèle B : un équipement en amont la traduit

Dans le second modèle, un pare-feu amont détient l'adresse dédiée et transmet le trafic vers une autre passerelle VPN. C'est une traduction de destination avec un chemin de retour, et c'est une conception parfaitement valable tant qu'elle est documentée comme telle.

Ce qu'elle n'est pas, c'est la preuve que l'équipement amont a acquis une socket VPN locale. La traduction transmet des paquets ; elle ne fait pas du boîtier amont un répondeur IKE. Si la règle amont est supprimée ou si son chemin de retour casse, le VPN s'arrête même si la passerelle est saine et ses propres écouteurs intacts.

Enregistrez les deux adresses : celle que contactent les pairs et celle que la passerelle voit réellement. Enregistrez ensuite le transport et le chemin de retour, car une traduction qui fonctionne pour UDP 500 mais pas pour ESP encapsulé se connectera puis échouera à porter le trafic, ce qui est une panne déroutante à déboguer plus tard.

L'identité n'est pas l'adresse extérieure

IPsec sépare l'extrémité du tunnel du trafic qu'il protège, et l'architecture garde ces décisions à des endroits différents. Changer l'adresse que contactent les pairs ne change pas automatiquement quels préfixes internes sont autorisés, quelles routes sont installées ni quelles ressources la session peut atteindre.

L'identité authentifiée est de nouveau distincte. IKEv2 transporte une charge utile d'identité et un échange d'authentification qui n'ont pas besoin de correspondre à l'adresse extérieure du paquet, et c'est précisément pourquoi une conception traduite peut encore s'authentifier correctement.

Cette indépendance est utile et aussi un piège. Deux noms DNS qui résolvent vers un écouteur ordinaire ne sélectionnent pas des backends VPN différents, et un certificat qui nomme une identité ne satisfera pas un pair qui en attend une autre. Confirmez ce que le pair valide avant de supposer que la seule adresse le décide.

Acceptez la conception en observant une connexion

Inspectez où une nouvelle connexion autorisée est réellement livrée, quelle identité répond et quel flux privé est ensuite autorisé. Trois observations, trois couches différentes, et une résolution publique réussie de l'adresse n'en teste aucune.

Conservez aussi le cas négatif : un pair qui ne devrait pas être accepté, ou un préfixe interne qui ne devrait pas être joignable, vérifié après le changement. L'enregistrement que vous avez écrit au début est ce qui rend ce test possible sans reconstruire la conception de mémoire.

Le but de tout cela est de laisser le propriétaire du réseau choisir une méthode d'allocation prise en charge plutôt que de se fier à une affirmation générale sur ce que chaque pare-feu peut faire avec une adresse supplémentaire. C'est exactement là que ces conceptions échouent, car elle semble plausible sur toutes les plateformes et n'est généralement vraie sur aucune. L'enregistrement de quatre lignes règle cela pour votre plateforme en dix minutes.

Articles similaires