Verbinden mehrerer Vultr-Zonen mit N2N

N2N ist eine Open Source Layer 2/3 VPN-Anwendung. Im Gegensatz zu vielen anderen VPN-Programmen kann N2N Computer verbinden, die sich hinter einem NAT-Router befinden. Dies bietet einen großen Vorteil für die Verbindung zu einer Cloud-Umgebung, ohne auf spezielle Protokolle wie das von ipsec verwendete ESP-Protokoll angewiesen zu sein. Um diese Verbindung herzustellen, verwendet N2N einen Superknoten, der die Informationen zwischen NAT-Knoten weiterleiten kann. Diese VPN-Verbindung kann verwendet werden, um mehrere Vultr-Instanzen über Regionen hinweg miteinander zu verbinden.

Voraussetzungen

In diesem Beispiel werden drei Knoten in mehreren Zonen verwendet:

  • Paris
  • Miami
  • Sydney

Installation der Software

Die folgenden Befehle werden für jede Instanz ausgeführt.

Beginnen Sie mit der Installation des build-essentialaus dem Repo und auch libssl-dev, da wir aus dem neuesten Quellcode bauen werden.

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

Laden Sie als Nächstes den Quellcode von github herunter.

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

Kompilieren Sie alle Binärdateien.

cd n2n 
make
make install

Der make installBefehl hat die supernodeund edge-Binärdateien im /usr/sbinVerzeichnis erstellt. Zum Abschluss bereinigen Sie die Dateien.

rm -rf /tmp/n2n

Installation - Knoten Paris

Der erste Knoten wird unser sogenannter Superknoten sein. Dieser Superknoten startet den Superknoten-Dienst, der den UDP-Port überwacht 1200. Standardmäßig erstellt die N2N-Anwendung keine Servicedatei. Also müssen wir unsere eigenen zur Verfügung stellen.

Erstellen Sie die Servicedatei 'n2n_supernode':

nano /etc/systemd/system/n2n_supernode.service

Fügen Sie den folgenden Inhalt hinzu:

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

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

[Install]
WantedBy=multi-user.target

Die '-l'-Direktive definiert den UDP-Port 1200. Dies ist der Port, an dem der Superknoten empfangsbereit ist. Starten Sie den Superknoten-Dienst, um sicherzustellen, dass alles funktioniert:

systemctl start n2n_supernode

Überprüfen Sie den Status des Superknotens.

systemctl status n2n_supernode

Dies zeigt einen Status ähnlich dem folgenden an.

● 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

Als nächstes erstellen wir den Edge-Service. Dieser Edge-Service beansprucht eine private IP für die Kommunikation zwischen den anderen Edge in anderen Vultr-Zonen.

Wie beim Superknoten-Dienst benötigt auch dieser eine eigene Dienstdatei.

nano /etc/systemd/system/n2n_edge.service

Fügen Sie den folgenden Inhalt hinzu:

[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

In dieser Servicedatei haben wir die folgenden Befehlszeilenoptionen definiert:

  • -l localhost:1200: Dadurch wird eine Verbindung zu localhost am UDP-Port hergestellt 1200.
  • -c Vultr: Dies ist die Community, der sich der Rand anschließen wird. Alle Kanten innerhalb derselben Community werden im selben LAN (Layer 2-Netzwerksegment) angezeigt. Kanten, die sich nicht in derselben Community befinden, kommunizieren nicht miteinander.
  • -a 192.168.1.1: Die dieser Schnittstelle zugewiesene IP. Dies ist die beanspruchte virtuelle N2N-LAN-IP-Adresse.
  • -k mypassword: Das für jede Kante verwendete Passwort. Alle Kanten, die kommunizieren, müssen denselben Schlüssel und denselben Community-Namen verwenden.
  • -f: Deaktiviert den Daemon-Modus und bewirkt, dass die Kante im Vordergrund ausgeführt wird. Dies wird für die Servicedatei benötigt, andernfalls systemctlwird der Service nicht gestartet.

Starten Sie den Dienst, um sicherzustellen, dass alles funktioniert.

systemctl start n2n_edge

Fragen Sie dann den Servicestatus ab.

systemctl status n2n_edge   

Die Ausgabe ähnelt der folgenden.

● 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

Wenn wir 'ifconfig' aktivieren, wird die virtuelle N2N-IP von der edge0Schnittstelle beansprucht .

ifconfig

Die Ausgabe ähnelt der folgenden.

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)

Aktivieren und erstellen Sie anschließend die Firewall-Regeln. Stellen Sie sicher, dass Sie den Text node_miami_ipund node_sydney_ipdurch die öffentliche IP-Adresse der Instanz in Sydney und Miami ersetzen . (Wir werden diese später verwenden).

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

Das Letzte, was Sie mit diesem Knoten tun müssen, ist, beide Dienste beim Booten zu aktivieren.

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

Installation - Knoten Miami

Der Miami-Knoten stellt eine Verbindung zum Superknoten her, der derzeit in der Pariser Zone ausgeführt wird. Um dies zu erreichen, müssen wir nur eine Servicedatei für die edgeAnwendung erstellen .

Erstellen Sie zunächst eine Edge-Service-Datei.

nano /etc/systemd/system/n2n_edge.service

Fügen Sie den folgenden Inhalt hinzu.

[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

Hinweis : Ersetzen Sie die node_paris_ipIP-Adresse der in Paris ausgeführten Instanz durch die öffentliche IP-Adresse

Dadurch wird eine Verbindung zum Knoten in Paris über den UDP-Port hergestellt 1200, der Community ' Vultr' beigetreten, die IP beansprucht 192.168.1.2und mit ' mypassword' authentifiziert .

Starten Sie als Nächstes den Dienst.

systemctl start n2n_edge

Überprüfen Sie den Status auf Anzeichen dafür, dass der Dienst ordnungsgemäß gestartet wurde und ausgeführt wird.

systemctl status n2n_edge   

Stellen Sie als Nächstes sicher, dass die edge0IP beansprucht wird.

ifconfig

Es wird die 192.168.1.2IP-Adresse angezeigt.

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)

Als Nächstes müssen Sie den Dienst beim Booten aktivieren.

systemctl enable n2n_edge.service

Aktivieren Sie optional die Firewall und fügen Sie die SSH-Regeln hinzu.

ufw allow 22/tcp
ufw enable

In unseren Instanzen können wir jetzt beide Kanten anpingen.

Pingen Sie in Paris die Vultr-Instanz in Miami an

ping 192.168.1.2

In Miami ping die Kante in Paris

ping 192.168.1.1

Installation - Knoten Sydney

Schließlich werden wir unseren letzten Kontinent hinzufügen: Australien. Beginnen Sie erneut, indem Sie einen Edge-Service erstellen. Dieser Edge-Service stellt auch eine Verbindung zum zuvor konfigurierten Superknoten in Paris her.

nano /etc/systemd/system/n2n_edge.service

Fügen Sie den folgenden Inhalt hinzu.

[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

Hinweis : Ersetzen Sie die node_paris_ipIP-Adresse der in Paris ausgeführten Instanz durch die öffentliche IP-Adresse.

Dadurch wird eine Verbindung zum Knoten in Paris über den UDP-Port hergestellt 1200, der Community ' Vultr' beigetreten, die IP beansprucht 192.168.1.3und mit ' mypassword' authentifiziert .

systemctl start n2n_edge

Überprüfen Sie den Status, um sicherzustellen, dass der Dienst gestartet wird.

systemctl status n2n_edge   

Stellen Sie sicher, dass die edge0IP beansprucht wird.

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)

Aktivieren Sie diesen Dienst erneut beim Booten.

systemctl enable n2n_edge.service

Aktivieren Sie optional die Firewall und fügen Sie die SSH-Regeln hinzu.

ufw allow 22/tcp
ufw enable

Wir können jetzt jede Vultr-Instanz von jedem Knoten aus anpingen.

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

Wenn Sie die Verbindung zwischen den einzelnen Knotenkanten testen möchten, aktivieren Sie die Firewall-Regeln für die Instanzen von Miami und Paris. Dies ermöglicht die Kommunikation zwischen Kanten.

Fügen Sie in Miami die folgenden Regeln hinzu. (Stellen Sie sicher, dass Sie den Text node_paris_ipund node_sydney_ipdurch die öffentlichen IPs der Instanzen in Sydney und Paris ersetzen .)

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

Fügen Sie in Sydney die folgenden Regeln hinzu.

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

Jetzt können Sie den Superknoten herunterfahren oder neu starten. Netzwerkverbindungen bestehen weiterhin. Nur bei neuen Kanten treten Konnektivitätsprobleme auf, während der Superknoten-Dienst nicht verfügbar ist.

Fazit

Wir haben erfolgreich eine VPN-Verbindung zwischen mehreren Zonen konfiguriert. Dies sollte unserer neu konfigurierten Umgebung viele neue Möglichkeiten für Hochverfügbarkeitsszenarien bieten.



Leave a Comment

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

Installieren von McMyAdmin unter Ubuntu 14.10

Installieren von McMyAdmin unter Ubuntu 14.10

McMyAdmin ist ein Minecraft-Server-Kontrollfeld, mit dem Sie Ihren Server verwalten können. Obwohl McMyAdmin kostenlos ist, gibt es mehrere Editionen, von denen einige pai sind

Richten Sie einen TeamTalk-Server unter Linux ein

Richten Sie einen TeamTalk-Server unter Linux ein

TeamTalk ist ein Konferenzsystem, mit dem Benutzer hochwertige Audio- / Videogespräche führen, Text chatten, Dateien übertragen und Bildschirme freigeben können. Es i

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

Verwenden Sie ein anderes System? Einführung CyberPanel ist eines der ersten Control Panels auf dem Markt, das sowohl Open Source als auch OpenLiteSpeed ​​verwendet. Was ist das?

Installieren Sie phpBB With Apache unter Ubuntu 16.04

Installieren Sie phpBB With Apache unter Ubuntu 16.04

PhpBB ist ein Open Source Bulletin Board Programm. Dieser Artikel zeigt Ihnen, wie Sie phpBB auf einem Apache-Webserver unter Ubuntu 16.04 installieren. Es wurde geschrieben

Richten Sie einen Benutzer ohne Rootberechtigung mit Sudo Access unter Ubuntu ein

Richten Sie einen Benutzer ohne Rootberechtigung mit Sudo Access unter Ubuntu ein

Es kann gefährlich sein, nur einen Benutzer zu haben, nämlich root. Lassen Sie uns das beheben. Vultr bietet uns die Freiheit, mit unseren Benutzern und unseren Servern zu tun, was wir wollen

Installieren Sie eSpeak unter CentOS 7

Installieren Sie eSpeak unter CentOS 7

Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen

So installieren Sie Thelia 2.3 unter CentOS 7

So installieren Sie Thelia 2.3 unter CentOS 7

Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i

Installieren von Fuel CMS unter Ubuntu 16.04 LTS

Installieren von Fuel CMS unter Ubuntu 16.04 LTS

Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t

Installieren und Verwenden von Yunohost unter Debian 7 x64

Installieren und Verwenden von Yunohost unter Debian 7 x64

Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein

So installieren Sie Cockpit unter CentOS 7

So installieren Sie Cockpit unter CentOS 7

Cockpit ist ein kostenloses Open Source-Programm für die Linux-Serververwaltung. Es ist sehr leicht und hat eine schöne, einfach zu bedienende Weboberfläche. Es erlaubt System

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

Gollum ist die Git-basierte Wiki-Software, die als Backend des GitHub-Wikis verwendet wird. Durch die Bereitstellung von Gollum können Sie ein GitHub-ähnliches Wiki-System auf Ihnen hosten

So richten Sie die TCP-Optimierung unter Linux ein

So richten Sie die TCP-Optimierung unter Linux ein

Einführung Haben Sie Probleme mit der Konnektivität, wenn Besucher aus anderen Ländern auf Ihre Website zugreifen? Ich frage mich, warum die Download-Geschwindigkeit von Ihrem Foreig

So installieren Sie Gitea unter Fedora 29

So installieren Sie Gitea unter Fedora 29

Verwenden Sie ein anderes System? Gitea ist ein alternatives Open-Source-Versionskontrollsystem, das von Git unterstützt wird. Gitea ist in Golang geschrieben und ist

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

So installieren Sie Paste 2.1 auf einem Fedora 26 LAMP VPS

So installieren Sie Paste 2.1 auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich

So installieren Sie Pip unter Linux

So installieren Sie Pip unter Linux

Pip ist ein Tool zum Verwalten von Python-Paketen. Die Verwendung eines Paketmanagers ermöglicht eine effiziente Verwaltung Ihres Servers. In diesem Tutorial erkläre ich, wie t

So stellen Sie Google BBR unter CentOS 7 bereit

So stellen Sie Google BBR unter CentOS 7 bereit

BBR (Bottleneck Bandwidth and RTT) ist ein neuer Algorithmus zur Überlastungskontrolle, der von Google zum Linux-Kernel-TCP-Stack hinzugefügt wird. Mit BBR an Ort und Stelle,

So installieren Sie YOURLS unter CentOS 7

So installieren Sie YOURLS unter CentOS 7

YOURLS (Your Own URL Shortener) ist eine Open-Source-Anwendung zur URL-Verkürzung und Datenanalyse. In diesem Artikel werden wir den Installationsprozess behandeln

So aktivieren Sie TLS 1.3 in Apache unter Fedora 30

So aktivieren Sie TLS 1.3 in Apache unter Fedora 30

Verwenden Sie ein anderes System? TLS 1.3 ist eine Version des TLS-Protokolls (Transport Layer Security), das 2018 als vorgeschlagener Standard in RFC 8446 veröffentlicht wurde

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.