Comment je gère mon propre réseau virtuel avec ZeroTier

L’automatisation est un sujet brûlant en ce moment. Dans mon travail quotidien d’ingénieur en fiabilité de site (SRE), une partie de ma mission consiste à automatiser autant de tâches répétitives que possible. Mais combien d’entre nous font cela dans nos vies quotidiennes, sans travail ? Cette année, je me concentre sur l’automatisation du labeur afin que nous puissions nous concentrer sur les choses importantes.
En automatisant tout, j’ai rencontré quelques difficultés avec les sites distants. Je ne suis pas une personne de réseautage alors j’ai commencé à regarder mes options. Après avoir étudié les différents réseaux privés virtuels (VPN), les points de terminaison matériels, les règles de pare-feu et tout ce qui concerne la prise en charge de plusieurs sites distants, j’étais confus, grincheux et frustré par la complexité de tout cela.
Puis j’ai trouvé ZeroTier. ZeroTier est une dorsale de réseau virtuel crypté, permettant à plusieurs machines de communiquer comme si elles se trouvaient sur un seul réseau. Le code est entièrement open source et vous pouvez auto-héberger le contrôleur ou utiliser le ZeroTierOne service avec des forfaits gratuits ou payants. J’utilise leur plan gratuit en ce moment, et il est robuste, solide et très cohérent.
Parce que j’utilise le service Web, je ne vais pas entrer dans les détails sur l’exécution du contrôleur et des services racine. ZeroTier a une référence complète sur la façon de le faire dans leur Documentationet c’est très bon.
Après avoir créé mon propre réseau virtuel dans l’interface utilisateur Web, l’installation du client est presque triviale. ZeroTier propose des packages pour APT, RPM, FreeBSD et de nombreuses autres plates-formes, de sorte que la mise en ligne du premier nœud demande peu d’efforts.
Une fois installé, le client se connecte au service de contrôleur et génère un ID unique pour le nœud. Sous Linux, vous utilisez le zerotier-cli
commande pour rejoindre un réseau, en utilisant la zerotier-cli join NETWORKID
commande.
$ sudo zerotier-cli info
200 info 469584783a 1.x.x ONLINE
Vous pouvez aussi utiliser zerotier-cli
pour obtenir une liste des nœuds connectés et disponibles, modifier les paramètres réseau et quitter les réseaux.
(Kevin Sonney, CC BY-SA 4.0)
Après avoir rejoint un réseau, vous devez approuver l’accès au nœud, soit via la console Web, soit en appelant l’interface de programmation d’application (API). Les deux méthodes sont documentées sur le site ZeroTier. Une fois que vous avez connecté deux nœuds, la connexion l’un à l’autre – peu importe où vous vous trouvez ou de quel côté des pare-feu vous vous trouvez – est exactement ce à quoi vous vous attendriez si vous étiez dans le même bâtiment sur le même réseau. L’un de mes principaux cas d’utilisation est l’accès à distance à la configuration de mon assistant domestique sans avoir besoin d’ouvrir des ports de pare-feu ou de l’exposer à Internet (plus d’informations sur la configuration de mon assistant domestique et les services associés plus tard).
Une chose que j’ai moi-même mis en place est un Service bêta ZéroNDS pour le DNS interne. Cela m’a épargné beaucoup de complexité pour gérer mon propre service de noms ou avoir à créer des enregistrements publics pour tous mes hôtes privés et adresses IP. J’ai trouvé les instructions très simples et j’ai pu mettre en place un serveur DNS pour mon réseau privé en 5 minutes environ. Chaque client doit autoriser Zerotier à définir le DNS, ce qui est très simple dans les clients GUI. Pour l’activer pour une utilisation sur les clients Linux, utilisez :
$ sudo zerotier-cli setNETWORKID allowDNS=1
Aucune autre mise à jour n’est nécessaire lorsque vous ajoutez et supprimez des hôtes, et cela “fonctionne tout simplement”.
$ sudo zerotier-cli info
200 info 469584845a 1.x.y ONLINE
$ sudo zerotier-cli join
93afae596398153a 200 join OK
$ sudo zerotier-cli peers
200 peers
<ztaddr> <ver> <role> <lat> <link> <TX> <RX> <path>
61d294b9cb - PLANET 112 DIRECT 7946 2812 50.7.73.34/9993
62f865ae71 - PLANET 264 DIRECT 7946 2681 50.7.76.38/9993
778cde7190 - PLANET 61 DIRECT 2944 2901 103.195.13.66/9993
93afae5963 1.x LEAF 77 DIRECT 2945 2886 35.188.31.177/41848
992fcf1db7 - PLANET RECT 79124 DI47 2813 195. 181.173.159/9993
J’ai à peine effleuré la surface des fonctionnalités ici. ZeroTier permet également de faire le pont entre les réseaux ZeroTier, les règles de routage avancées et bien plus encore. Ils ont même un Fournisseur Terraform et une liste de Choses géniales Zerotier. À ce jour, j’utilise ZeroTier pour connecter des machines sur quatre sites physiques, dont trois sont derrière des pare-feu NAT. Zerotier est simple à configurer et presque totalement indolore à gérer.