Headscale, implementacija Tailscale -a otvorenog koda

Prije nekoliko dana smo ovdje na blogu pričali o Firezoneu, izvrsnom uslužnom programu za stvaranje VPN poslužitelja temeljenih na WireGuardu.

A sada, ovom prilikom, govorit ćemo o vrlo sličnom uslužnom programu pod nazivom "Headscale", koji je projekt razvijen kao implementacija otvorenog koda komponente Tailscale VPN poslužitelja , omogućujući vam stvaranje VPN-ova sličnih Tailscaleu u vlastitim prostorijama, bez vezanja za usluge trećih strana.

Tailscale omogućuje kombiniranje proizvoljnog broja geografski raspršenih hostova u mrežu , izgrađenu po uzoru na mrežnu mrežu, u kojoj svaki čvor komunicira s drugim čvorovima izravno (P2P) ili putem susjednih čvorova, bez prijenosa prometa putem centraliziranih vanjskih poslužitelja VPN pružatelja usluga.

Osim što podržava kontrolu ruta i pristupa temeljenu na ACL-u i omogućuje uspostavljanje komunikacijskih kanala u uvjetima korištenja prevođenja mrežnih adresa (NAT), sustav podržava mehanizme STUN, ICE i DERP (analogno TURN-u, ali temeljeno na HTTPS-u). Ako je komunikacijski kanal između određenih čvorova blokiran, mreža može preusmjeriti promet preko drugih čvorova.

Tailscale se razlikuje od projekta Nebula , koji je također dizajniran za stvaranje distribuiranih VPN mreža s mesh usmjeravanjem, koristeći Wireguard protokol za organiziranje prijenosa podataka između čvorova, dok Nebula koristi razvoje iz projekta Tinc, koji koristi AES-256 algoritam za šifriranje GSM paketa (Wireguard koristi ChaCha20 šifriranje, koje u testovima pokazuje veće performanse i odzivnost).

Zasebno se razvija još jedan sličan projekt, Innernet, u kojem se Wireguard protokol također koristi za razmjenu podataka između čvorova. Za razliku od Tailscalea i Nebule, Innernet koristi drugačiji sustav odvajanja pristupa temeljen na ACL-ovima; oznake nisu povezane s pojedinačnim čvorovima i podmrežama kako bi se odvojili i izolirali različiti rasponi IP adresa, kao u konvencionalnim internetskim mrežama.

Također, Innernet koristi Rust umjesto Go, a vrijedno je spomenuti da je Innernet 1.5 s poboljšanom podrškom za prijelaz NAT objavljen prije nekoliko dana. Postoji i Netmaker projekt koji vam omogućuje povezivanje mreža s različitim topologijama pomoću Wireguarda, ali njegov kôd se isporučuje pod SSPL -om (Server Side Public License), koji nije otvoren zbog prisutnosti diskriminatornih zahtjeva.

Tailscale se distribuira putem freemium modela, nudeći besplatan pristup za pojedince i plaćeni pristup za tvrtke i timove. Klijentske komponente Tailscalea, s izuzetkom grafičkih aplikacija za Windows i macOS, razvijene su kao projekti otvorenog koda pod BSD licencom.

Tailscaleov softver za vanjske poslužitelje, koji autentificira nove klijente , koordinira upravljanje ključevima i organizira komunikaciju između čvorova, vlasnički je. Projekt Headscale rješava ovaj problem i pruža implementaciju otvorenog koda neovisnu o komponentama Tailscale poslužitelja.

Headscale preuzima funkcije razmjene javnih ključeva između čvorova , a također obavlja operacije dodjeljivanja IP adresa i distribucije tablice usmjeravanja između čvorova.

U svom trenutnom obliku, Headscale implementira sve osnovne značajke upravljačkog poslužitelja, s izuzetkom podrške za MagicDNS i Smart DNS. Konkretno, podržava registraciju čvorova (uključujući putem weba), prilagođavanje mreže za dodavanje ili uklanjanje čvorova, podmrežavanje pomoću imenskih prostora (omogućujući stvaranje VPN-a za više korisnika), organiziranje pristupa dijeljenih čvorova podmrežama u različitim imenskim prostorima, kontrolu usmjeravanja (uključujući dodjeljivanje izlaznih čvorova za pristup vanjskom svijetu), dijeljeni pristup putem ACL-ova i izvršavanje DNS-a.

Headscale kôd je napisan u Go i distribuira se pod BSD licencom. Projekt razvija Juan Font iz Europske svemirske agencije.

Konačno, ako ste zainteresirani saznati više, detalje možete pronaći na sljedećoj poveznici.


Dodaj kao preferirani izvor na Googleu