Łączenie wielu stref Vultr z N2N

N2N jest aplikacją VPN warstwy 2/3 typu open source. W przeciwieństwie do wielu innych programów VPN, N2N może łączyć komputery znajdujące się za routerem NAT. Daje to ogromną zaletę łączenia się ze środowiskiem chmurowym bez konieczności polegania na specjalnych protokołach, takich jak protokół ESP (używany przez ipsec). Aby osiągnąć to połączenie, N2N używa supernode, który może kierować informacje między węzłami NAT. Tego połączenia VPN można użyć do połączenia wielu wystąpień Vultr między regionami razem.

Wymagania wstępne

  • Trzy instancje serwera Ubuntu 16.04 LTS x64. (Dowolny rozmiar będzie działać)
  • Użytkownik sudo (lub konto root) .

W tym przykładzie użyjemy trzech węzłów w wielu strefach:

  • Paryż
  • Miami
  • Sydnej

Instalacja oprogramowania

Następujące polecenia zostaną wykonane w każdej instancji.

Zacznij od instalacji build-essentialrepo, a także libssl-dev, ponieważ będziemy budować z najnowszego kodu źródłowego.

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

Następnie pobierz kod źródłowy z github.

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

Skompiluj wszystkie pliki binarne.

cd n2n 
make
make install

make installPolecenie stworzyły supernodei edgepliki binarne w /usr/sbinkatalogu. Zakończ czyszczenie plików.

rm -rf /tmp/n2n

Instalacja - węzeł Paris

Pierwszy węzeł będzie naszym tak zwanym supernode. Ta supernoda uruchomi usługę supernode, która będzie nasłuchiwała na porcie UDP 1200. Domyślnie aplikacja N2N nie tworzy pliku usługi. Musimy więc zapewnić własne.

Utwórz plik usługi „n2n_supernode”:

nano /etc/systemd/system/n2n_supernode.service

Dodaj następującą treść:

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

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

[Install]
WantedBy=multi-user.target

Dyrektywa „-l” definiuje port UDP 1200. To jest port, na którym nasłuchuje supernode. Aby upewnić się, że wszystko działa, uruchom usługę supernode:

systemctl start n2n_supernode

Sprawdź status supernode.

systemctl status n2n_supernode

Wyświetli się stan podobny do następującego.

● 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

Następnie stworzymy usługę Edge. Ta usługa brzegowa zażąda prywatnego adresu IP do komunikacji między innymi krawędziami w innych strefach Vultr.

Podobnie jak w przypadku usługi supernode, będzie to również wymagało własnego pliku usługi.

nano /etc/systemd/system/n2n_edge.service

Dodaj następującą treść:

[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

W tym pliku usługi zdefiniowaliśmy następujące opcje wiersza poleceń:

  • -l localhost:1200: To połączy się z localhost na porcie UDP 1200.
  • -c Vultr: To jest społeczność, do której dołączą Edge. Wszystkie krawędzie w tej samej społeczności pojawiają się w tej samej sieci LAN (segment sieci warstwy 2). Krawędzie, które nie należą do tej samej społeczności, nie będą się ze sobą komunikować.
  • -a 192.168.1.1: Adres IP przypisany do tego interfejsu. Podawany jest adres IP wirtualnej sieci LAN N2N.
  • -k mypassword: Hasło używane dla każdej krawędzi. Wszystkie komunikujące się krawędzie muszą używać tego samego klucza i nazwy wspólnoty.
  • -f: Wyłącza tryb demona i powoduje, że zbocze działa na pierwszym planie. Jest to potrzebne do pliku usługi, w przeciwnym razie usługa nie systemctlzostanie uruchomiona.

Aby upewnić się, że wszystko działa, uruchom usługę.

systemctl start n2n_edge

Następnie sprawdź status usługi.

systemctl status n2n_edge   

Dane wyjściowe będą podobne do poniższych.

● 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

Jeśli zaznaczymy „ifconfig”, zobaczysz wirtualny adres IP N2N żądany przez edge0interfejs.

ifconfig

Dane wyjściowe będą podobne do poniższych.

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)

Po wykonaniu tej czynności włącz i utwórz reguły zapory. Pamiętaj, aby zastąpić node_miami_ipi node_sydney_iptekst publicznym adresem IP instancji w Sydney i Miami. (Użyjemy ich później).

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

Ostatnią rzeczą związaną z tym węzłem jest włączenie obu usług podczas rozruchu.

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

Instalacja - węzeł Miami

Węzeł Miami połączy się z super węzłem, który obecnie działa w strefie paryskiej. Aby to osiągnąć, musimy jedynie utworzyć plik usługi dla edgeaplikacji.

Zacznij od utworzenia pliku usługi Edge.

nano /etc/systemd/system/n2n_edge.service

Dodaj następującą treść.

[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

Uwaga : Zamień na node_paris_ippubliczny adres IP instancji działającej w Paryżu

Spowoduje to połączenie z węzłem w Paryżu na porcie UDP 1200, dołączenie do społeczności „ Vultr”, żądanie adresu IP 192.168.1.2i uwierzytelnienie za pomocą „ mypassword”.

Następnie uruchom usługę.

systemctl start n2n_edge

Sprawdź status pod kątem wskazania, że ​​usługa została poprawnie uruchomiona i działa.

systemctl status n2n_edge   

Następnie upewnij się, że edge0adres IP został zgłoszony.

ifconfig

Wyświetli 192.168.1.2adres 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)

Następną rzeczą do zrobienia jest włączenie usługi podczas rozruchu.

systemctl enable n2n_edge.service

Opcjonalnie włącz zaporę i dodaj reguły SSH.

ufw allow 22/tcp
ufw enable

Będziemy teraz mogli pingować obie krawędzie działające w naszych instancjach.

W Paryżu, pinguj instancję Vultr w Miami

ping 192.168.1.2

W Miami zagraj w Paryżu

ping 192.168.1.1

Instalacja - węzeł Sydney

Wreszcie dodamy do naszego ostatniego kontynentu: Australię. Zacznij od nowa, tworząc usługę brzegową. Ta usługa krawędziowa połączy się również z poprzednio skonfigurowanym supernode w Paryżu.

nano /etc/systemd/system/n2n_edge.service

Dodaj następującą treść.

[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

Uwaga : Zamień na node_paris_ippubliczny adres IP instancji działającej w Paryżu.

Spowoduje to połączenie z węzłem w Paryżu na porcie UDP 1200, dołączenie do społeczności „ Vultr”, żądanie adresu IP 192.168.1.3i uwierzytelnienie za pomocą „ mypassword”.

systemctl start n2n_edge

Sprawdź status, aby upewnić się, że usługa została uruchomiona.

systemctl status n2n_edge   

Upewnij się, że edge0adres IP zostanie odebrany.

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)

Ponownie włącz tę usługę podczas rozruchu.

systemctl enable n2n_edge.service

Opcjonalnie włącz zaporę i dodaj reguły SSH.

ufw allow 22/tcp
ufw enable

Będziemy teraz mogli pingować każdą instancję Vultr z każdego węzła.

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

Jeśli chcesz przetestować połączenie między każdą krawędzią węzła, włącz reguły zapory w instancjach Miami i Paryża. Umożliwi to komunikację między krawędziami.

W Miami dodaj następujące reguły. (Upewnij się, aby zastąpić node_paris_ipi node_sydney_iptekst z IP publicznych wystąpień Sydney i Paryżu).

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

W Sydney dodaj następujące reguły.

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

Teraz możesz zamknąć lub ponownie uruchomić supernode. Połączenia sieciowe będą nadal istnieć. Tylko nowe krawędzie będą miały problemy z łącznością, gdy usługa supernode jest wyłączona.

Wniosek

Pomyślnie skonfigurowaliśmy połączenie VPN między wieloma strefami. Powinno to zaoferować całkiem nowe możliwości dla scenariuszy wysokiej dostępności w naszym nowo skonfigurowanym środowisku.



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.