Preduvjeti
Instalacija softvera
Instalacija - Node Paris
Instalacija - Node Miami
Instalacija - Node Sydney
Zaključak
N2N je open source 2/3 VPN aplikacija. Za razliku od mnogih drugih VPN programa, N2N može povezati računala koja se nalaze iza NAT usmjerivača. Ovo nudi ogromnu prednost za povezivanje s okruženjem u oblaku bez potrebe da se oslanjate na posebne protokole kao što je ESP protokol (koji koristi ipsec). Za postizanje ove veze, N2N koristi superčvor koji može usmjeriti informacije između NAT čvorova. Ova VPN veza može se koristiti za povezivanje više Vultr instanci u različitim regijama zajedno.
Preduvjeti
- Tri instance poslužitelja Ubuntu 16.04 LTS x64. (Bilo koja veličina će raditi)
- Korisnik sudo (ili root račun) .
U ovom primjeru koristit ćemo tri čvora u više zona:
Instalacija softvera
Sljedeće naredbe će se izvršiti na svakoj instanci.
Započnite instalacijom build-essentializ repo-a i također libssl-dev, jer ćemo graditi od najnovijeg izvornog koda.
apt-get install -y build-essential libssl-dev
Zatim preuzmite izvorni kod s githuba.
cd /tmp
git clone https://github.com/ntop/n2n.git
Sastavite sve binarne datoteke.
cd n2n
make
make install
make installNaredba će stvorili su supernodei edgebinaries u /usr/sbinimenik. Završite čišćenjem datoteka.
rm -rf /tmp/n2n
Instalacija - Node Paris
Prvi čvor će biti naš takozvani superčvor. Ovaj superčvor će pokrenuti uslugu superčvora koja će slušati na UDP portu 1200. Prema zadanim postavkama N2N aplikacija ne stvara servisnu datoteku. Stoga ćemo morati osigurati svoje.
Izradite datoteku usluge 'n2n_supernode':
nano /etc/systemd/system/n2n_supernode.service
Dodajte sljedeći sadržaj:
[Unit]
Description=n2n supernode
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/sbin/supernode -l 1200
[Install]
WantedBy=multi-user.target
'-l' direktiva definira UDP port 1200. Ovo je port na kojem će superčvor slušati. Kako biste bili sigurni da sve radi, pokrenite uslugu supernode:
systemctl start n2n_supernode
Provjerite status superčvora.
systemctl status n2n_supernode
Ovo će prikazati status sličan sljedećem.
● 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
Zatim ćemo kreirati uslugu ruba. Ova rubna usluga zahtijevat će privatni IP za komunikaciju između ostalih rubova u drugim Vultr zonama.
Kao i za uslugu supernode, i za ovu će biti potrebna vlastita servisna datoteka.
nano /etc/systemd/system/n2n_edge.service
Dodajte sljedeći sadržaj:
[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
U ovoj servisnoj datoteci definirali smo sljedeće opcije naredbenog retka:
-l localhost:1200: Ovo će se povezati s localhost na UDP portu 1200.
-c Vultr: Ovo je zajednica kojoj će se rub pridružiti. Svi rubovi unutar iste zajednice pojavljuju se na istom LAN-u (sloj 2 mrežni segment). Rubovi koji nisu u istoj zajednici neće međusobno komunicirati.
-a 192.168.1.1: IP dodijeljen ovom sučelju. Ovo je N2N virtualna LAN IP adresa na koju se polaže pravo.
-k mypassword: Lozinka koja se koristi za svaki rub. Svi rubovi koji komuniciraju moraju koristiti isti ključ i naziv zajednice.
-f: Onemogućuje demonski način rada i uzrokuje pokretanje ruba u prednjem planu. Ovo je potrebno za servisnu datoteku, inače systemctlneće pokrenuti uslugu.
Kako biste bili sigurni da sve radi, pokrenite uslugu.
systemctl start n2n_edge
Zatim postavite upit za status usluge.
systemctl status n2n_edge
Izlaz će biti sličan sljedećem.
● 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
Ako provjerimo 'ifconfig', vidjet ćete da edge0sučelje polaže pravo na N2N virtualni IP .
ifconfig
Izlaz će biti sličan sljedećem.
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)
Kada to učinite, omogućite i kreirajte pravila vatrozida. Pobrinite se da zamijeniti node_miami_ipi node_sydney_iptekst s javnim IP Sydney i Miami primjer. (Koristit ćemo ih kasnije).
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
Posljednja stvar koju treba učiniti s ovim čvorom je omogućiti obje usluge pri pokretanju.
systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service
Instalacija - Node Miami
Miami čvor spojit će se na super čvor koji trenutno radi u zoni Pariza. Da bismo to postigli, potrebno je samo stvoriti servisnu datoteku za edgeaplikaciju.
Započnite stvaranjem datoteke usluge ruba.
nano /etc/systemd/system/n2n_edge.service
Dodajte sljedeći sadržaj.
[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
Napomena : Zamijenite node_paris_ipjavnim IP-om instance koja se izvodi u Parizu
Ovo će se povezati s čvorom u Parizu na UDP portu 1200, pridružiti se zajednici ' Vultr', zatražiti IP 192.168.1.2i autentificirati se s ' mypassword'.
Zatim pokrenite uslugu.
systemctl start n2n_edge
Provjerite status da li je usluga ispravno pokrenuta i radi.
systemctl status n2n_edge
Zatim provjerite da li je edge0IP tražen.
ifconfig
Prikazat će se 192.168.1.2IP adresa.
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)
Sljedeće što trebate učiniti je omogućiti uslugu pri pokretanju.
systemctl enable n2n_edge.service
Po želji, omogućite vatrozid i dodajte SSH pravila.
ufw allow 22/tcp
ufw enable
Sada ćemo moći pingirati oba ruba koji se izvode u našim instancama.
U Parizu, pingajte Vultr instancu u Miamiju
ping 192.168.1.2
U Miamiju, ping na rubu u Parizu
ping 192.168.1.1
Instalacija - Node Sydney
Konačno, u mješavinu ćemo dodati i naš posljednji kontinent: Australiju. Počnite ponovno stvaranjem rubne usluge, ova rubna usluga će se također povezati s prethodnim konfiguriranim superčvorom u Parizu.
nano /etc/systemd/system/n2n_edge.service
Dodajte sljedeći sadržaj.
[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
Napomena : Zamijenite node_paris_ips javnim IP-om instance koja se izvodi u Parizu.
Ovo će se povezati s čvorom u Parizu na UDP portu 1200, pridružiti se zajednici ' Vultr', zatražiti IP 192.168.1.3i autentificirati se s ' mypassword'.
systemctl start n2n_edge
Provjerite status kako biste bili sigurni da je usluga pokrenuta.
systemctl status n2n_edge
Pobrinite se da se edge0IP polaž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)
Opet, omogućite ovu uslugu pri pokretanju.
systemctl enable n2n_edge.service
Po želji, omogućite vatrozid i dodajte SSH pravila.
ufw allow 22/tcp
ufw enable
Sada ćemo moći pingati svaku Vultr instancu sa svakog čvora.
ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3
Ako želite testirati vezu između svakog ruba čvora, omogućite pravila vatrozida na instancama Miamija i Pariza. To će omogućiti komunikaciju između rubova.
U Miamiju dodajte sljedeća pravila. (Obavezno zamijenite node_paris_ipi node_sydney_iptekst javnim IP-ovima instanci u Sydneyu i Parizu.)
ufw allow from node_paris_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200
U Sydneyu dodajte sljedeća pravila.
ufw allow from node_paris_ip to any port 1200
ufw allow from node_miami_ip to any port 1200
Sada možete isključiti ili ponovno pokrenuti superčvor. Mrežne veze će i dalje postojati. Samo će novi rubovi imati probleme s povezivanjem dok je usluga superčvorova neaktivna.
Zaključak
Uspješno smo konfigurirali VPN vezu između više zona. Ovo bi trebalo ponuditi dosta novih mogućnosti za scenarije visoke dostupnosti za naše novo konfigurirano okruženje.