VPN και οικιακό LAN στο ίδιο υποδίκτυο: πρώτα ακολουθήστε τη διαδρομή
Και οι δύο προσαρμογείς διεκδικούν το 192.168.1.0/24 και μία διαδρομή κερδίζει. Ακολουθήστε τη λίστα προσαρμογέων, τη νικήτρια διαδρομή και την επιστροφή πριν αριθμήσετε ξανά ή κατηγορήσετε το DNS.
Συνδέεστε στο VPN του γραφείου, το εικονίδιο γίνεται πράσινο, το intranet φορτώνει και ο εκτυπωτής δύο μέτρα πιο πέρα σταματά να απαντά. Ο κοινόχρηστος φάκελος που δούλευε το πρωί λήγει στο ίδιο μηχάνημα και κανένα αρχείο καταγραφής δεν αναφέρει εκτυπωτή. Η αντανακλαστική αντίδραση είναι το DNS, γιατί ένα όνομα που δεν επιλύεται μοιάζει με όνομα που δεν υπάρχει, αλλά το πρόβλημα είναι η διεύθυνση: δύο προσαρμογείς διεκδικούν τώρα το 192.168.1.0/24 και μόνο μία διαδρομή μπορεί να κερδίσει αυτό το πρόθεμα. Ακολουθήστε τη με αυτή τη σειρά και θα δείτε ποιος προσαρμογέας την πήρε πριν αλλάξετε οτιδήποτε.
Ξεκινήστε από το σύμπτωμα, όχι από τη σήραγγα
Το σημάδι είναι το εύρος. Αν το intranet δουλεύει και κάθε τοπική συσκευή αποτυγχάνει, η σήραγγα είναι υγιής και η τοπική διαδρομή όχι. Αν οι τοπικές συσκευές δουλεύουν και το intranet αποτυγχάνει, το αντίστροφο. Αν όλα δουλεύουν εκτός από έναν κεντρικό υπολογιστή, βλέπετε μία διεύθυνση που υπάρχει και στις δύο πλευρές.
Σημειώστε μία τοπική και μία απομακρυσμένη διεύθυνση πριν αγγίξετε ρύθμιση. Ο «εκτυπωτής» δεν δοκιμάζεται· το 192.168.1.40 δοκιμάζεται. Αυτό το ένα βήμα αποτρέπει τη συνηθέστερη χαμένη ώρα σε αυτό το πρόβλημα, που είναι το ξαναγράψιμο των ρυθμίσεων DNS για μια απόφαση δρομολόγησης.
Βήμα 1: δείτε και τους δύο προσαρμογείς να διεκδικούν το πρόθεμα
Ανοίξτε τις Συνδέσεις δικτύου (ncpa.cpl) και διαβάστε τους δύο προσαρμογείς δίπλα-δίπλα. Ο προσαρμογέας Ethernet δείχνει 192.168.1.50/24 με πύλη 192.168.1.1. Ο προσαρμογέας VPN δείχνει 192.168.1.201/24, που τον έστειλε ο διακομιστής. Και οι δύο είναι νόμιμοι, και οι δύο πιστεύουν ότι το πρόθεμα είναι on-link, και η στοίβα θα κρατήσει μία μόνο διαδρομή γι' αυτό.
Το Get-NetIPAddress -AddressFamily IPv4 παραθέτει τις διευθύνσεις και το Get-NetIPInterface | Sort-Object InterfaceMetric δείχνει τη σειρά με την οποία θα τις χρησιμοποιήσει η στοίβα. Αυτή η στήλη μέτρικ είναι η απόφαση που πρόκειται να διαβάσετε, οπότε σημειώστε τους αριθμούς αντί να τους θυμηθείτε.
Αποδείξτε φθηνά ότι η θεωρία του DNS είναι λάθος: το Resolve-DnsName printer.office.lan επιστρέφει την ίδια διεύθυνση με χθες. Το όνομα επιλύθηκε· μετά το πακέτο έφυγε από λάθος προσαρμογέα. Δύο λεπτά εδώ γλιτώνουν ένα απόγευμα στις ρυθμίσεις του επιλυτή.
Βήμα 2: διαβάστε τη διαδρομή που κέρδισε πραγματικά
Το Find-NetRoute -RemoteIPAddress 192.168.1.40 εκτυπώνει τη διεπαφή, το επόμενο άλμα και την πηγή που θα χρησιμοποιούσε η στοίβα για αυτή τη διεύθυνση. Αντιμετωπίστε αυτή την έξοδο ως απάντηση, όχι ως υπόδειξη. Το route print -4 δίνει ολόκληρο τον πίνακα όταν θέλετε να δείτε ποια καταχώριση έχασε και κατά πόσο.
Η εξειδίκευση νικά την πρόθεση. Ένα 192.168.0.0/25 που ωθείται νικά ένα τοπικό 192.168.0.0/24 επειδή το πρόθεμα είναι μακρύτερο, οπότε το 192.168.0.0 έως το 192.168.0.127 βγαίνει από τη σήραγγα ενώ το πάνω μισό μένει τοπικό. Το ότι ένα μισό LAN εξαφανίζεται χωρίς μήνυμα σφάλματος είναι σωστή συμπεριφορά για αυτόν τον πίνακα.
Το tracert -d 192.168.1.40 το επιβεβαιώνει έξω από τον πίνακα: αν το πρώτο άλμα είναι διεύθυνση σήραγγας αντί για τον δικό σας δρομολογητή, η διαδρομή είναι όλη η ιστορία. Στο Linux η ίδια ερώτηση είναι ip route get 192.168.1.40, που εκτυπώνει διεύθυνση πηγής και συσκευή σε μία γραμμή. Όταν η απάντηση αναφέρει tun0, σταματήστε να κοιτάτε το πρόγραμμα περιήγησης.
Βήμα 3: ελέγξτε την επιστροφή πριν κατηγορήσετε τον πελάτη
Μια σωστή διαδρομή προς τα εμπρός αποτυγχάνει ακόμα κι αν η μακρινή πλευρά δεν μπορεί να απαντήσει. Όταν ένα LAN πελάτη φτάνεται μέσω της σήραγγας, η πύλη αυτού του LAN πρέπει να ξέρει πού μένει η δεξαμενή της σήραγγας: ip route add 10.8.0.0/24 via 192.168.1.12 σε αυτόν τον δρομολογητή, και push «route 192.168.1.0 255.255.255.0» από τον διακομιστή ώστε οι πελάτες να ξέρουν την επιστροφή.
Χωρίς την πρώτη καταχώριση η απάντηση φεύγει από τον στόχο προς την προεπιλεγμένη πύλη του, που προωθεί μια ιδιωτική διεύθυνση στον πάροχο και την απορρίπτει. Το σύμπτωμα είναι μονόδρομο και εύκολο να παρερμηνευτεί: τα αιτήματα εμφανίζονται στο tun0, οι απαντήσεις ποτέ.
Ένας κανόνας masquerade στον κεντρικό υπολογιστή VPN αφαιρεί την ανάγκη για αυτή τη στατική διαδρομή: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Κρύβει επίσης τις πραγματικές διευθύνσεις πηγής, κάτι που κάνει κάθε επόμενη ερώτηση αρχείου καταγραφής δυσκολότερη. Ένας στόχος με λάθος προεπιλεγμένη πύλη παράγει την ίδια σιωπή, με ανακατεύθυνση ICMP στην καλύτερη περίπτωση και μαύρη τρύπα στη συνήθη, γι' αυτό η λήψη ανήκει και στα δύο άκρα.
Βήμα 4: διαλέξτε μια επισκευή που μπορείτε να ζήσετε
Για αυτό χρησιμοποιούνται πέντε επισκευές και δεν είναι εναλλάξιμες. Διαλέξτε με κριτήριο τι πρέπει να μένει προσβάσιμο ταυτόχρονα, όχι ποια εντολή είναι η πιο σύντομη.
| Repair | What it fixes | What it costs |
|---|---|---|
| Flip interface metrics | Alternating access: office now, home later, never both | Get-NetAdapter -Name "Ethernet 2" | Set-NetIPInterface -InterfaceMetric 21; set the VPN adapter back to 5000. A client that rewrites metrics on connect defeats it |
| Renumber one side | Every host reachable in both directions | DHCP reservations, printer queues, firewall rules and hard-coded addresses all move |
| Narrow the advertised prefix | Remote hosts really live in the upper half | Breaks the day someone adds a host below the cut |
| Translate with client-nat | Both address plans stay untouched | Stateless per-client mapping, unreadable logs, anything embedding addresses breaks |
| Publish one service with DNAT | One service on the VPN host reachable from the LAN | Both address plans stay; source addresses and reverse lookups stop being meaningful |
Οι μέτρικ είναι η φθηνή επιλογή και αυτή στην οποία καταφεύγουν πρώτα οι άνθρωποι. Η αλλαγή ισχύει για τη διεπαφή, άρα δουλεύει όσο η σήραγγα είναι πάνω, και ανήκει σε σενάριο δίπλα στον πελάτη, όχι σε ένα κέλυφος που θα ξεχάσετε. Δεν μπορεί να δώσει ταυτόχρονη πρόσβαση στην ίδια διεύθυνση σε δύο δίκτυα, και αυτό είναι το όριο που στέλνει όλους τους άλλους κάτω στον πίνακα.
Η επαναρίθμηση του οικιακού LAN σε 10.10.0.0/24 είναι η καθαρή λύση: μία ανανέωση μίσθωσης DHCP συν τις δεσμεύσεις, τις ουρές εκτύπωσης και τις σκληρά κωδικοποιημένες διευθύνσεις που αναφέρουν το παλιό εύρος. Η επαναρίθμηση της πλευράς του γραφείου συνήθως δεν είναι δική σας απόφαση. Το IPv6 εξαλείφει εντελώς τη σύγκρουση όταν το φέρουν και τα δύο δίκτυα, με μοναδικό τοπικό πρόθεμα από το fd00::/8 αντί για κάτι εύκολο να θυμάστε, αλλά δοκιμάστε την εφαρμογή over TCP, όχι με ping, γιατί το ICMP μπορεί να δουλεύει ενώ η υπηρεσία όχι.
Η δική του επιλογή μετάφρασης του OpenVPN είναι η τελευταία λύση, ωθούμενη από τον διακομιστή σε καταχώριση καταλόγου ειδική για τον πελάτη. Παίρνει τέσσερις παραμέτρους μετά το όνομα της επιλογής — κατεύθυνση, δίκτυο, μάσκα και ψευδώνυμο — και το ψευδώνυμο δεν είναι προαιρετικό: push "route 192.168.2.0 255.255.255.0" και push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Το δίκτυο και η μάσκα είναι το εύρος που βλέπει ο πελάτης (192.168.2.0/24), το ψευδώνυμο είναι το πραγματικό εύρος γραφείου στην πλευρά του διακομιστή (192.168.1.0/24), και η ωθούμενη διαδρομή είναι αυτό που κάνει το ορατό εύρος προσβάσιμο. Το γραφείο εμφανίζεται τότε σε αυτόν τον πελάτη κάτω από το 192.168.2.x. Τεκμηριώστε την αντιστοίχιση στο προφίλ, αλλιώς ο επόμενος θα το αποσφαλματώσει ως σφάλμα δρομολόγησης.
Η δημοσίευση μιας μόνο υπηρεσίας είναι η στενή εκδοχή της μετάφρασης και δεν χρειάζεται καθόλου την επιλογή του OpenVPN. Ένας κανόνας DNAT στον κεντρικό υπολογιστή VPN επαναδημοσιεύει μία θύρα, ώστε το LAN να κρατά τις διευθύνσεις του και να φτάνει την υπηρεσία στη διεύθυνση κεντρικού υπολογιστή που ήδη ξέρει. Το κόστος είναι το συνηθισμένο: η υπηρεσία βλέπει τον κεντρικό VPN ως πηγή, οπότε τα αρχεία καταγραφής ανά πελάτη και οι αντίστροφες αναζητήσεις παύουν να σημαίνουν κάτι. Αυτό καλύπτει μία ουρά εκτύπωσης ή μία σελίδα διαχείρισης, όχι κεντρικούς υπολογιστές στις δύο πλευρές που φτάνουν ο ένας τον άλλο.
Τι δεν θα δουλέψει ακόμα, και τι να καταγράψετε
Το broadcast δεν διασχίζει δρομολογημένη σήραγγα. Τα DLNA, UPnP, η περιήγηση NetBIOS και το Wake-on-LAN εξαρτώνται από broadcast ή multicast που μια συσκευή tun δεν μεταφέρει, οπότε καμία διαδρομή δεν διορθώνει την ανακάλυψη. Η γεφύρωση με dev tap επεκτείνει το τμήμα, και μαζί του τα broadcast του DHCP, το ARP και κάθε άλλο πακέτο ανακάλυψης· προτιμήστε διαδρομή κεντρικού υπολογιστή unicast, όπως route 192.168.2.1 255.255.255.255, για τη διεύθυνση στην πλευρά του LAN ενός απομακρυσμένου δρομολογητή.
Δύο δρομολογητές που χρησιμοποιούν και οι δύο το 192.168.1.1 στην ίδια διαδρομή ανήκουν στην ίδια οικογένεια προβλήματος: η τοπική διεύθυνση κερδίζει πάντα, οπότε η σελίδα του μακρινού δρομολογητή μένει απρόσιτη μέχρι να μετακινηθεί ένα LAN. Η προσθήκη δεύτερου προσαρμογέα δεν αλλάζει τίποτα σε καμία από τις δύο περιπτώσεις.
Καταγράψτε τα στοιχεία πριν επεξεργαστείτε οτιδήποτε: ip route get ή Find-NetRoute, ping -c 3 στη σχετική διεύθυνση, ένα traceroute, και tcpdump -ni tun0 icmp στον πελάτη, μετά τον πίνακα δρομολόγησης και τους μετρητές NAT στον διακομιστή. Ένα ping που δουλεύει προς τη μία κατεύθυνση και πεθαίνει προς την άλλη δείχνει την επιστροφή, όχι τη σήραγγα, και αυτή η μία διάκριση καθορίζει ποια από τις παραπάνω επισκευές χρειάζεστε πραγματικά.