Μοιραστείτε μία σύνδεση VPN με κάθε συσκευή στο LAN σας
Το μοίρασμα ενός τούνελ απαιτεί προώθηση, μετάφραση και διαδρομή επιστροφής. Συγκρίνετε το μοίρασμα από τον κεντρικό υπολογιστή, μια διαδρομή δρομολογητή προς αυτόν και μια πύλη που κατέχει το τούνελ.
Ένας φορητός υπολογιστής κρατά το τούνελ, το υπόλοιπο σπίτι θέλει την ίδια πρόσβαση, και η πρώτη προσπάθεια είναι να δείξουμε τα πάντα προς τον συνδεδεμένο υπολογιστή. Αποτυγχάνει για λόγους που δεν έχουν καμία σχέση με το VPN: ο κεντρικός υπολογιστής που λαμβάνει πρέπει να προωθήσει το πακέτο, να ξαναγράψει την πηγή του και να βεβαιωθεί ότι οι απαντήσεις βρίσκουν τον δρόμο της επιστροφής. Αν λείπει ένα από τα τρία, ο συνδεδεμένος φορητός συνεχίζει να λειτουργεί, ενώ κάθε άλλη συσκευή λήγει σε timeout. Η λύση είναι σχεδιασμός δρομολόγησης, όχι ρύθμιση πελάτη.
Γιατί αποτυγχάνει το να δείχνουμε τις συσκευές στον κεντρικό
Ένας κεντρικός υπολογιστής που λαμβάνει πακέτο με διεύθυνση προς απομακρυσμένο δίκτυο γίνεται δρομολογητής εκείνη τη στιγμή, είτε κάποιος τον έχει ρυθμίσει έτσι είτε όχι. Η προώθηση είναι απενεργοποιημένη από προεπιλογή στο Linux και στα Windows, εκτός αν κάποια λειτουργία την ενεργοποιήσει. Η μετάφραση έχει σημασία γιατί η απομακρυσμένη πλευρά πρέπει να ξέρει πού να στείλει τις απαντήσεις, και μια ιδιωτική διεύθυνση LAN δεν σημαίνει τίποτα γι’ αυτήν. Η διαδρομή επιστροφής είναι το τρίτο κομμάτι, και αυτό ξεχνούν οι άνθρωποι όταν το πρώτο ping φαίνεται να πετυχαίνει.
Διαγνώστε με αυτή τη σειρά αντί να αλλάζετε ρυθμίσεις στην τύχη. Κάθε κομμάτι που λείπει παράγει ένα ελαφρώς διαφορετικό σύμπτωμα.
Ενεργοποιήστε την προώθηση και τη μετάφραση στον κεντρικό
Δύο αλλαγές στον συνδεδεμένο κεντρικό καλύπτουν τα δύο πρώτα κομμάτια: ενεργοποιήστε την προώθηση IPv4 και μεταφράστε την κίνηση LAN στη διεπαφή του τούνελ.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADEΔιατηρήστε την τιμή sysctl σε αρχείο κάτω από /etc/sysctl.d, και ελέγξτε ξανά τον κανόνα MASQUERADE μετά από επανεκκίνηση, αφού τα frontend του τείχους προστασίας μπορούν να καθαρίσουν προσαρμοσμένες αλυσίδες. Στα Windows η λειτουργία μοιράσματος εκτελεί και τα δύο βήματα, αλλά επίσης αλλάζει διεύθυνση στον προσαρμογέα LAN σε σταθερό υποδίκτυο και σβήνει την πύλη του, κάτι που σπάει τη στατική διευθυνσιοδότηση και την προώθηση θυρών. Επαναφέρετε τη διαδρομή του δρομολογητή προς τον κεντρικό στη νέα του διεύθυνση πριν συμπεράνετε ότι το μοίρασμα απέτυχε. Μετά παρακολουθήστε τους μετρητές κανόνων να αυξάνονται καθώς μια δεύτερη συσκευή στέλνει κίνηση.
Δώστε στο LAN διαδρομή που επιβιώνει από επανεκκινήσεις
Οι άλλες συσκευές χρειάζονται διαδρομή προς το απομακρυσμένο πρόθεμα, και οι δύο τρόποι να την παρέχετε διαφέρουν σε εύρος επιρροής.
ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0Το να δείξουμε την προεπιλεγμένη πύλη ενός πελάτη προς τον κεντρικό στέλνει όλη την κίνησή του μέσα από τον κεντρικό, μαζί με τοπική εκτύπωση και κοινή χρήση αρχείων, οπότε άσχετα πράγματα σταματούν όταν ο κεντρικός κοιμάται. Το να προσθέσουμε συγκεκριμένη διαδρομή στον δρομολογητή για το απομακρυσμένο πρόθεμα είναι στενότερο: μόνο προορισμοί πίσω από το τούνελ πηγαίνουν στον συνδεδεμένο υπολογιστή, και το υπόλοιπο LAN συνεχίζει να λειτουργεί. Τα υποδίκτυα παραπάνω είναι παραδείγματα, οπότε αντικαταστήστε τα με τις δικές σας περιοχές LAN και τούνελ. Σε κάθε περίπτωση, δοκιμάστε από δεύτερη συσκευή με το τούνελ ανοιχτό και μετά κλειστό.
Προσέξτε το MTU πριν κατηγορήσετε το τούνελ
Τα τούνελ μικραίνουν το χρησιμοποιήσιμο μέγεθος πακέτου, και η δεύτερη συσκευή δεν έχει ιδέα. Μεγάλες μεταφορές και χειραψίες TLS κολλάνε ενώ μικρά αιτήματα πετυχαίνουν.
ping -M do -s 1400 10.8.0.5Μια απάντηση αποδεικνύει ότι αυτό το μέγεθος περνά τη διαδρομή χωρίς κατάτμηση και ένα timeout σημαίνει ότι η επιβάρυνση ενθυλάκωσης έσπρωξε το πακέτο πέρα από το MTU του τούνελ. Χαμηλώστε το MTU στη διεπαφή μοιράσματος ή περιορίστε το μέγιστο μέγεθος τμήματος στον προωθητή, και μετά επαναλάβετε την ίδια δοκιμή. Δοκιμάστε πρώτα το ίδιο μέγεθος στην πλευρά του LAN, γιατί μια τοπική αποτυχία δείχνει στο LAN και όχι στο τούνελ. Καταγράψτε το μέγεθος που λειτουργεί, αφού μια μεταγενέστερη αλλαγή παρόχου ή τούνελ μπορεί να το μετακινήσει.
Για μία επιπλέον συσκευή, το μοίρασμα από τον κεντρικό αρκεί. Για ένα νοικοκυριό, βάλτε τη διαδρομή στον δρομολογητή. Όταν η πρόσβαση πρέπει να επιβιώσει όταν ο φορητός φύγει μαζί σας, το ίδιο το τούνελ ανήκει σε αποκλειστική πύλη.