Connexion de plusieurs zones Vultr avec N2N

N2N est une application VPN open source de couche 2/3. Contrairement à de nombreux autres programmes VPN, N2N peut connecter des ordinateurs situés derrière un routeur NAT. Cela offre un énorme avantage pour se connecter à un environnement cloud sans avoir à s'appuyer sur des protocoles spéciaux tels que le protocole ESP (utilisé par ipsec). Pour réaliser cette connexion, N2N utilise un supernœud qui peut acheminer les informations entre les nœuds NAT. Cette connexion VPN peut être utilisée pour connecter plusieurs instances Vultr à travers les régions ensemble.

Conditions préalables

  • Trois instances de serveur Ubuntu 16.04 LTS x64. (N'importe quelle taille fonctionnera)
  • Un utilisateur sudo (ou compte root) .

Dans cet exemple, nous utiliserons trois nœuds dans plusieurs zones:

  • Paris
  • Miami
  • Sydney

Installation du logiciel

Les commandes suivantes seront exécutées sur chaque instance.

Commencez par installer le build-essentialdepuis le dépôt et aussi libssl-dev, car nous allons construire à partir du code source le plus récent.

apt-get install -y build-essential libssl-dev

Ensuite, téléchargez le code source depuis github.

cd /tmp
git clone https://github.com/ntop/n2n.git

Compilez tous les binaires.

cd n2n 
make
make install

La make installcommande aura créé les fichiers binaires supernodeet edgedans le /usr/sbinrépertoire. Terminez en nettoyant les fichiers.

rm -rf /tmp/n2n

Installation - Node Paris

Le premier nœud sera notre soi-disant supernode. Ce supernode démarrera le service de supernode qui écoutera sur le port UDP 1200. Par défaut, l'application N2N ne crée pas de fichier de service. Nous devrons donc fournir les nôtres.

Créez le fichier de service 'n2n_supernode':

nano /etc/systemd/system/n2n_supernode.service

Ajoutez le contenu suivant:

[Unit]
Description=n2n supernode
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/supernode -l 1200

[Install]
WantedBy=multi-user.target

La directive «-l» définit le port UDP 1200. Il s'agit du port sur lequel le supernode écoutera. Pour vous assurer que tout fonctionne, démarrez le service de supernœuds:

systemctl start n2n_supernode

Vérifiez l'état du supernode.

systemctl status n2n_supernode

Cela affichera un statut similaire au suivant.

● n2n_supernode.service - n2n supernode
   Loaded: loaded (/etc/systemd/system/n2n_supernode.service; disabled; vendor prese
   Active: active (running) since Wed 2018-08-15 17:07:46 UTC; 5s ago
 Main PID: 4711 (supernode)
    Tasks: 1
   Memory: 80.0K
      CPU: 1ms
   CGroup: /system.slice/n2n_supernode.service
           └─4711 /usr/sbin/supernode -l 1200

Nous allons ensuite créer le service Edge. Ce service de périphérie revendiquera une adresse IP privée pour la communication entre les autres périphéries dans d'autres zones Vultr.

Comme pour le service supernode, il aura également besoin de son propre fichier de service.

nano /etc/systemd/system/n2n_edge.service

Ajoutez le contenu suivant:

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target n2n_supernode.service

[Service]
ExecStart=/usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypassword -f

[Install]
WantedBy=multi-user.target

Dans ce fichier de service, nous avons défini les options de ligne de commande suivantes:

  • -l localhost:1200: Ceci se connectera à localhost sur le port UDP 1200.
  • -c Vultr: Il s'agit de la communauté à laquelle le bord se joindra. Tous les bords d'une même communauté apparaissent sur le même LAN (segment de réseau de couche 2). Les bords qui ne sont pas dans la même communauté ne communiqueront pas entre eux.
  • -a 192.168.1.1: L'adresse IP attribuée à cette interface. Il s'agit de l'adresse IP du réseau local virtuel N2N revendiquée.
  • -k mypassword: Mot de passe utilisé pour chaque tronçon. Tous les bords qui communiquent doivent utiliser la même clé et le même nom de communauté.
  • -f: Désactive le mode démon et entraîne l'exécution de edge au premier plan. Cela est nécessaire pour le fichier de service, sinon systemctlne démarre pas le service.

Pour vous assurer que tout fonctionne, démarrez le service.

systemctl start n2n_edge

Ensuite, interrogez l'état du service.

systemctl status n2n_edge   

La sortie sera similaire à la suivante.

● n2n_edge.service - n2n edge
   Loaded: loaded (/etc/systemd/system/n2n_edge.service; disabled; vendor preset: en
   Active: active (running) since Wed 2018-08-15 17:10:46 UTC; 3s ago
 Main PID: 4776 (edge)
    Tasks: 1
   Memory: 396.0K
      CPU: 8ms
   CGroup: /system.slice/n2n_edge.service
           └─4776 /usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypass

Si nous vérifions «ifconfig», vous verrez l'IP virtuelle N2N revendiquée par l' edge0interface.

ifconfig

La sortie sera similaire à la suivante.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Une fois cela fait, activez et créez les règles de pare-feu. Assurez-vous de remplacer le texte node_miami_ipet node_sydney_ippar l'adresse IP publique de l'instance de Sydney et de Miami. (Nous les utiliserons plus tard).

ufw allow 22/tcp
ufw allow from node_miami_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200
ufw enable

La dernière chose à faire avec ce nœud est d'activer les deux services au démarrage.

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

Installation - Node Miami

Le nœud de Miami se connectera au super nœud qui fonctionne actuellement dans la zone parisienne. Pour cela, il suffit de créer un fichier de service pour l' edgeapplication.

Commencez par créer un fichier de service Edge.

nano /etc/systemd/system/n2n_edge.service

Ajoutez le contenu suivant.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.2 -k mypassword -f

[Install]
WantedBy=multi-user.target

Remarque : remplacez le node_paris_ippar l'adresse IP publique de l'instance exécutée à Paris

Cela se connectera au nœud à Paris sur le port UDP 1200, rejoindra la communauté ' Vultr', revendiquera l'IP 192.168.1.2et s'authentifiera avec ' mypassword'.

Ensuite, démarrez le service.

systemctl start n2n_edge

Vérifiez l'état pour une indication que le service a démarré correctement et est en cours d'exécution.

systemctl status n2n_edge   

Ensuite, assurez-vous que l' edge0IP est réclamée.

ifconfig

Il affichera l' 192.168.1.2adresse IP.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

La prochaine chose à faire est d'activer le service au démarrage.

systemctl enable n2n_edge.service

Facultativement, activez le pare-feu et ajoutez les règles SSH.

ufw allow 22/tcp
ufw enable

Nous allons maintenant pouvoir envoyer une requête ping aux deux bords exécutés dans nos instances.

A Paris, ping sur l'instance Vultr à Miami

ping 192.168.1.2

A Miami, cingler le bord à Paris

ping 192.168.1.1

Installation - Node Sydney

Enfin, nous ajouterons notre dernier continent au mix: l'Australie. Recommencez en créant un service Edge, ce service Edge se connectera également au précédent supernode configuré à Paris.

nano /etc/systemd/system/n2n_edge.service

Ajoutez le contenu suivant.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.3 -k mypassword -f

[Install]
WantedBy=multi-user.target

Remarque : Remplacez le node_paris_ippar l'adresse IP publique de l'instance exécutée à Paris.

Cela se connectera au nœud à Paris sur le port UDP 1200, rejoindra la communauté ' Vultr', revendiquera l'IP 192.168.1.3et s'authentifiera avec ' mypassword'.

systemctl start n2n_edge

Vérifiez l'état pour vous assurer que le service est démarré.

systemctl status n2n_edge   

Assurez-vous que l' edge0IP est réclamée.

edge0     Link encap:Ethernet  HWaddr 46:56:b0:e9:8f:8a
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::4456:b0ff:fee9:8f8a/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Encore une fois, activez ce service au démarrage.

systemctl enable n2n_edge.service

Facultativement, activez le pare-feu et ajoutez les règles SSH.

ufw allow 22/tcp
ufw enable

Nous allons maintenant pouvoir envoyer une requête ping à chaque instance Vultr depuis chaque nœud.

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

Si vous souhaitez tester la connexion entre chaque bord de nœud, activez les règles de pare-feu sur les instances de Miami et Paris. Cela permettra la communication entre les bords.

À Miami, ajoutez les règles suivantes. (Assurez-vous de remplacer le texte node_paris_ipet node_sydney_ippar les adresses IP publiques des instances de Sydney et de Paris.)

ufw allow from node_paris_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200

À Sydney, ajoutez les règles suivantes.

ufw allow from node_paris_ip to any port 1200
ufw allow from node_miami_ip to any port 1200

Vous pouvez maintenant arrêter ou redémarrer le supernode. Les connexions réseau continueront d'exister. Seuls les nouveaux bords subiront des problèmes de connectivité pendant que le service de supernœuds est en panne.

Conclusion

Nous avons réussi à configurer une connexion VPN entre plusieurs zones. Cela devrait offrir beaucoup de nouvelles possibilités de scénarios de haute disponibilité à notre environnement nouvellement configuré.



Leave a Comment

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i

Installation de McMyAdmin sur Ubuntu 14.10

Installation de McMyAdmin sur Ubuntu 14.10

McMyAdmin est un panneau de contrôle de serveur Minecraft utilisé pour administrer votre serveur. Bien que McMyAdmin soit gratuit, il existe plusieurs éditions, dont certaines sont pai

Configurer un serveur TeamTalk sous Linux

Configurer un serveur TeamTalk sous Linux

TeamTalk est un système de conférence qui permet aux utilisateurs davoir des conversations audio / vidéo de haute qualité, un chat textuel, de transférer des fichiers et de partager des écrans. Cest moi

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Vous utilisez un système différent? Introduction CyberPanel est lun des premiers panneaux de contrôle du marché à la fois open source et utilisant OpenLiteSpeed. Quest-ce que

Installer phpBB avec Apache sur Ubuntu 16.04

Installer phpBB avec Apache sur Ubuntu 16.04

PhpBB est un programme de babillard open source. Cet article vous montrera comment installer phpBB sur un serveur Web Apache sur Ubuntu 16.04. Cétait écrit

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Avoir un seul utilisateur, qui est root, peut être dangereux. Permet donc de résoudre ce problème. Vultr nous donne la liberté de faire ce que nous voulons avec nos utilisateurs et nos serveurs

Installer eSpeak sur CentOS 7

Installer eSpeak sur CentOS 7

Vous utilisez un système différent? ESpeak peut générer des fichiers audio de synthèse vocale (TTS). Ceux-ci peuvent être utiles pour de nombreuses raisons, telles que la création de votre propre Turin

Comment installer Thelia 2.3 sur CentOS 7

Comment installer Thelia 2.3 sur CentOS 7

Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Vous utilisez un système différent? Fuel CMS est un système de gestion de contenu basé sur CodeIgniter. Son code source est hébergé sur GitHub. Ce guide vous montrera comment

Comment configurer loptimisation TCP sous Linux

Comment configurer loptimisation TCP sous Linux

Introduction Vous avez des problèmes de connectivité lorsque des visiteurs dautres pays accèdent à votre site Web? Vous vous demandez pourquoi la vitesse de téléchargement de votre Foreig

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Vous utilisez un système différent? Ghost est une plate-forme de blogs open source qui gagne en popularité auprès des développeurs et des utilisateurs ordinaires depuis sa 201

Comment installer Pip sur Linux

Comment installer Pip sur Linux

Pip est un outil de gestion des packages Python. Lutilisation dun gestionnaire de packages permet une gestion efficace de votre serveur. Dans ce tutoriel, je vais expliquer comment t

Comment déployer Google BBR sur CentOS 7

Comment déployer Google BBR sur CentOS 7

BBR (Bottleneck Bandwidth and RTT) est un nouvel algorithme de contrôle de congestion qui est contribué à la pile TCP du noyau Linux par Google. Avec BBR en place,

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Icinga 2 est un système de surveillance des ressources réseau open source largement utilisé, et Icinga Web 2 est linterface Web officielle pour Icinga 2. Dans ce didacticiel,

Comment installer YOURLS sur CentOS 7

Comment installer YOURLS sur CentOS 7

YOURLS (Your Own URL Shortener) est une application open source de raccourcissement dURL et danalyse de données. Dans cet article, nous couvrirons le processus dinstallation

Comment activer TLS 1.3 dans Apache sur Fedora 30

Comment activer TLS 1.3 dans Apache sur Fedora 30

Vous utilisez un système différent? TLS 1.3 est une version du protocole TLS (Transport Layer Security) qui a été publiée en 2018 en tant que norme proposée dans la RFC 8446

Configurer un Chroot sur Debian

Configurer un Chroot sur Debian

Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu

Comment installer PiVPN sur Debian

Comment installer PiVPN sur Debian

Introduction Un moyen facile de configurer un serveur VPN sur Debian est avec PiVPN. PiVPN est un installateur et un wrapper pour OpenVPN. Il crée des commandes simples pour vous t

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Vous utilisez un système différent? Alfresco Community Edition est une version open source des services de contenu Alfresco. Il est écrit en Java et utilise PostgreSQL t

Configurer Nginx-RTMP sur CentOS 7

Configurer Nginx-RTMP sur CentOS 7

Vous utilisez un système différent? RTMP est idéal pour diffuser du contenu en direct. Lorsque RTMP est associé à FFmpeg, les flux peuvent être convertis en différentes qualités. Vultr i

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.