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

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.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.