Με το ZeroTier θα δικτυώσουμε απομακρυσμένες συσκευές χωρίς να χρειαζόμαστε στατικές IP, ρυθμίσεις σε router, firewalls κλπ. και θα τα εμφανίζουμε σαν συσκευές στο τοπικό μας δίκτυο.
Τι είναι το ZeroTier
Το ZeroTier είναι η εταιρεία που παρέχει ένα ανοιχτού κώδικα λογισμικό, zerotier-one, για την δημιουργία και διαχείριση virtual software defined networks (SDNs).
Με το ZeroTier ο διαχειριστής μπορεί να δημιουργήσει ένα εικονικό τοπικό δίκτυο συσκευών τα οποία όμως δεν είναι απαραίτητο ότι είναι στο ίδιο δίκτυο, κτήριο, πόλη, χώρα ή ήπειρο.
Με αυτό τον τρόπο διευκολύνει την δουλειά του όταν θέλει π.χ. να συνδεθεί απομακρυσμένα σε κάποια από αυτές τις συσκευές π.χ. με SSH, RDP, VNC, Remmina κλπ. Σε διαφορετική περίπτωση, θα πρέπει πρώτα να διασφαλίσει τις απαραίτητες ρυθμίσεις σε routers, firewalls, IPs κλπ για να μπορέσει να δημιουργήσει μια ασφαλής σύνδεση π.χ. VPN.
Επίσης, με το zerotier, η σύνδεση μεταξύ των συσκευών είναι peer-2-peer και κρυπτογραφημένη από-άκρο-σε-άκρο. Χρησιμοποιείται ασύμμετρη κρυπτογράφηση δημόσιου κλειδιού βασισμένη στην Curve25519, μια παραλλαγή ελλειπτικής καμπύλης 256-bit. Όλη η κυκλοφορία κρυπτογραφείται από άκρη σε άκρη στο επίπεδο OSI 1 χρησιμοποιώντας το Salsa20 256-bit και γίνεται έλεγχος ταυτότητας χρησιμοποιώντας τον αλγόριθμο ελέγχου ταυτότητας μηνυμάτων Poly1305 (MAC). Το MAC υπολογίζεται μετά από την κρυπτογράφηση (encrypt-then-MAC) και η σύνθεση κρυπτογράφησης/MAC που χρησιμοποιείται είναι ταυτόσημες με την εφαρμογή αναφοράς NaCl.
Κάθε συνδεδεμένη συσκευή, εκτός από την τοπική IP που λαμβάνει από το router του, λαμβάνει και μια IP από το ZeroTier εικονικό δίκτυο το οποίο «βλέπουν» οι συνδεδεμένες συσκευές.

Σύνδεση δύο οι περισσοτέρων συσκευών με το ZeroTier
Όσο και αν πολύπλοκα ακούστηκαν αυτά, τόσο απλούστερη είναι η προσθήκη συσκευών στο εικονικό τοπικό δίκτυό μας.
- Πάμε στο https://zerotier.com και δημιουργούμε έναν λογαριασμό
- Αφού συνδεθείτε πατήστε «Create network». Αυτό θα σας δώσει το Network ID στο οποίο παρακάτω θα προσθέσετε τις συσκευές σας.
- Στις ρυθμίσεις του, κρατήστε τις προεπιλογές που σας έχει δώσει
- Για να προσθέσετε τις συσκευές, πηγαίνετε σε κάθε συσκευή και κάνετε εγκατάσταση το zerotier client https://www.zerotier.com/download.shtml
- Έπειτα σε κάθε συσκευή (τουλάχιστον 2 συσκευές), μέσω του λογισμικού zerotier client, κάνετε «Join network» προσθέτοντας το Network ID του λογαριασμού σας για να εμφανιστούν οι συσκευές στο εικονικό δίκτυό σας.
- Τέλος πηγαίνετε στον ZeroTier λογαριασμό σας και τικάρετε το κουτάκι αριστερά των εμφανιζόμενων συσκευών, για να επιτρέπετε να βλέπουν τις άλλες συσκευές του δικτύου σας.
Αυτό ήταν! Πλέον οι συσκευές θα είναι λες και βρίσκονται κάτω από το ίδιο router ενώ μπορεί να βρίσκονται σε άλλα δίκτυα.
Σύνδεση Debian laptop και RaspberryPi 4
Ακολουθεί ένα παράδειγμα που ακολούθησα τα παραπάνω βήματα για να έχω πρόσβαση SSH στο Raspberry Pi4 του σπιτιού από όπου και αν βρίσκομαι χωρίς να χρειάζεται να έχω κάποια static IP, DDNS name, Port Forwarding κλπ.
- Αφού έχω ακολουθήσει μια φορά τα βήματα 1-3, πήγα στο Debian laptop και έτρεξα τον εγκαταστάτη που δίνουν:
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
- Αφού ολοκληρώθηκε πλέον έχω εγκατεστημένη την υπηρεσία διασύνδεσης με το zerotier. Για να προσθέσω το Debian στο δίκτυο έτρεξα:
sudo zerotier-cli join <NetworkID>
Τα ίδια έτρεξα και στο Raspberry Pi 4 που τρέχει Ubuntu 20.04 arm64bit.
Τέλος πήγα στο ZeroTier λογαριασμό και τίκαρα το κουτάκι αριστερά των εμφανιζόμενων συσκευών, για να επιτρέψω να βλέπουν τις άλλες συσκευές μου.

Πλέον μπορώ να κάνω SSH στο RaspberryPi, να δημιουργήσω VNC σύνδεση, χωρίς να κάνω ρυθμίσεις στο απομακρυσμένο router.
Επίλογος
Μπορείτε να φανταστείτε τον ZeroTier λογαριασμό σας κάτι σαν παγκόσμιο router στο οποίο βάζετε συσκευές για να «μιλάνε» μεταξύ τους χωρίς να σας νοιάζει το που βρίσκονται. Το zerotier μπορείτε να το προσθέσετε και στο MikroTik router σας.
Ο δωρεάν λογαριασμός, σας επιτρέπει την προσθήκη έως 50 συσκευών ενώ αν χρειάζεστε περισσότερες συσκευές μπορείτε να πάρετε συνδρομή. Τέλος αν έχετε τις τεχνικές γνώσεις, μπορείτε να το εγκαταστήστε σε δικό σας Server.
Μου άνοιξε τα μάτια σε πολλά πράγματα το άρθρο. Αρχίζω τα πειράματα στην εταιρεία για αντικατάσταση του προηγούμενου network implementation!! Ευχαριστώ πολύ!
Χαίρομαι !
Εξαιρετικά χρήσιμο άρθρο! Ευχαριστούμε πολύ!
Νασε καλά ! Χαίρομαι που το βρήκες χρήσιμο
Salih, ευχαριστω πολύ για την ιδέα αυτή, ειναι κατι που εψαχνα, αλλά αν γίνεται ισως να μπορούσες να μου εξηγήσεις με «πολύ απλά λόγια» ;) αν γίνεται και πώς να έχω πρόσβαση μεσω ZeroTier (μεταξυ δυο client PC1 και PC2 ) , στο υπόλοιπο δύκτιο;δηλαδή σε δυκτιακά εξαρτηματα , οπου ομως δεν μπορεί να στειθεί client ZeroTier ; πχ σε καποιο ρουτερ ή printer που υπάρχει στο ενα δύκτιο, αλλα η μονη συνδεση με το Ζ/Τειναι μεσω client απο το ενα PC ? κάτι ειδα για «Route» , αλλά δεν το έχω με την υποδυκτίωση και γιαυτο ρωτάω μηπως μπορεις να βοηθεισης; Ευχαριστω.
Δυστυχώς αν δεν γνωρίζεις από routing, ότι και να διαβάσεις θα σου φαίνονται κινέζικα :)
Ευχαριστω , εστω και για τον κόπο που μπήκες να απαντησεις… αλλά οπως φαίνεται ολοι οι 0,77% (τοσοι πολύ ειναι οι χρήστες του Linux) εισαστε πολυμαθείς και όλοι οι άλλοι που έστω προσπαθούν, ή ζητανε μια βοήθεια , να μας φαίνονται κινέζικα… Συνεχίστε καλά τα πάτε… (Ασχετα αν εγώ ασχολούμε με αυτα τα ριμάδια , πιθανώς πριν γεννηθείς εσύ, και μου φαίνονται κινέζικα οπως λές :D ) τα λέμε ισως στο forum που εισαι τακτικός : linux-user, καλή συνέχεια, ενώ εγω θα προσπαθώ να καταλάβω κινέζικα .
Το routing είναι κομμάτι της τεχνολογίας δικτύων και όχι του Linux που είναι στο 0.7799% της παγκόσμιας αγοράς των Desktop.
Δηλαδή είτε ασχολείσαι με το Windows που είναι στο 95% της αγοράς των desktop αλλά στο 5-10% των server (όπου το Linux είναι >70%) όταν μπεις στην διαδικασία να προσπαθήσεις να κανεις να επικοινωνούν δυο συσκευές τοπικά η απομακρυσμένα, μπαίνεις στα χωράφια των «δικτυαδων» και όχι των Linux’αδων
Ακόμα και για εμένα, είναι λίγο κινεζικά τα θέματα των δικτύων :)
Σε ευχαριστω, θα το ψάξω, ήδη το ψαχνω και μόλις βρω την απάντηση θα την αναρτησω και εδω, να την μαθουν και άλλοι σαν εμενα (Boomers) 8) .
Σου ειχα πεί οτι αν το υλοποιήσω, θα σου ανεβασω την λύση. :D Λοιπόν επειδή η βοήθεια και των forums αλλά και διαφόρων «ειδικών» ειναι ανύπαρκτη στο συγκεκριμένο θέμα, μου κόστισε 71 € (τοσο αγορασα ενα mikrotik με ARM cpu) το εγκατέστησα και εχω συνδεση τελικά σε ολο μου το δύκτιο, (τα raspberry pi, εχουν τεράστια ελλειψη και δεν βρισκονται πουθενα). Αυτά.
Αυτό με την έλλειψη των Rpi πραγματικά με έχει ξενερώσει άσχημα ! Τόσα ωραία projectακια στα πλάνα και να μην μπορείς να τα υλοποιήσεις…