Διεύθυνση VPN έναντι μίσθωσης DHCP στο LAN: ποιος δίνει τη IP της σήραγγας;
Ο πελάτης VPN δείχνει μια διεύθυνση που δεν εμφανίζεται ποτέ σε αρχείο μισθώσεων LAN. Διαβάστε τον πελάτη, το φορτίο IKEv2 και τη δεξαμενή της πύλης για να βρείτε τον πραγματικό εκχωρητή.
Συνδέστε τον πελάτη και κοιτάξτε τον προσαρμογέα αντί για το εικονίδιο Wi-Fi. Μια διεύθυνση όπως 10.80.0.14 μπορεί να βρίσκεται σε σήραγγα ενώ κανένας διακομιστής DHCP στο LAN του γραφείου δεν έχει καταγράψει ποτέ αυτή τη μίσθωση. Η διεργασία που επέλεξε τον αριθμό καθορίζει από πού ξεκινά η αντιμετώπιση.
Στον πελάτη όλα μοιάζουν ίδια: μία διεύθυνση IPv4, μία μάσκα, μερικές φορές μια προεπιλεγμένη πύλη. Η διαφορά εμφανίζεται μόνο όταν ρωτήσετε ποιος απαντά για αυτή τη διεύθυνση και ποιος κρατά αρχείο γι' αυτήν.
Διαβάστε τη διεύθυνση της σήραγγας από την πλευρά του πελάτη
Τα Windows δείχνουν τη διαφορά αν διαβάσετε ολόκληρο το μπλοκ και όχι την πρώτη γραμμή. Το ipconfig /all εκτυπώνει περιγραφή προσαρμογέα, φυσική διεύθυνση και γραμμή DHCP. Ένας προσαρμογέας κλήσης PPP ή IKEv2 αναφέρει συνήθως το DHCP ως απενεργοποιημένο, επειδή η σύνδεση διαπραγματεύτηκε τη διεύθυνσή της κατά την κλήση αντί να τη μισθώσει από διακομιστή LAN. Ένας προσαρμογέας σήραγγας με ενεργό DHCP είναι ασυνήθιστος και αξίζει ξεχωριστή έρευνα.
Το Linux χωρίζει την ίδια πληροφορία σε δύο εργαλεία. Το ip -4 addr show dev tun0 δίνει τη διεύθυνση και το μήκος προθέματος. Το nmcli -f IP4 connection show work αποκαλύπτει αν η τιμή ήρθε από το προφίλ σύνδεσης, από ανταλλαγή DHCP στη ζεύξη ή από ωθημένη διαμόρφωση. Το WireGuard είναι η πιο καθαρή περίπτωση, αφού το wg-quick εφαρμόζει τη γραμμή Address από το αρχείο διαμόρφωσης όταν εμφανίζεται η διεπαφή και κανένας ομότιμος δεν εκχωρεί τίποτα κατά τη σύνδεση.
Το πρόθεμα λέει επίσης κάτι. Ένα /32, ή μάσκα 255.255.255.255, σημαίνει ότι η πύλη περιμένει δρομολόγηση προς μία διεύθυνση κεντρικού υπολογιστή, ενώ μια ευρύτερη μάσκα υποδηλώνει υποδίκτυο στη ζεύξη κάπου πίσω από τη σήραγγα.
Τι μεταφέρει το φορτίο διαμόρφωσης του IKEv2
Το IKEv2 έχει ξεχωριστό μηχανισμό για αυτή τη δουλειά. Το φορτίο διαμόρφωσης που περιγράφεται στο RFC 7296, ενότητα 3.15.1 μεταφέρει χαρακτηριστικά όπως INTERNAL_IP4_ADDRESS, INTERNAL_IP4_NETMASK, INTERNAL_IP4_DNS και τα αντίστοιχα IPv6. Ο πελάτης στέλνει χαρακτηριστικό με μηδενικό μήκος όταν δεν έχει προτίμηση και ο απαντών επιστρέφει την τιμή που θέλει να χρησιμοποιηθεί. Η ανταλλαγή ταξιδεύει μέσα στο IKE_AUTH, ήδη κρυπτογραφημένη, ώστε καμία εκπομπή DHCP να μη διασχίζει ποτέ τη σήραγγα.
Ακολουθούν δύο συνέπειες. Πρώτον, τη διεύθυνση τη διαλέγει ο απαντών ή όποιο σύστημα εξουσιοδότησης συμβουλεύεται, γι' αυτό μια δεξαμενή μπορεί να ζει στην πύλη, σε απάντηση RADIUS ή σε αντιστοίχιση παρόχου ταυτότητας. Δεύτερον, το χαρακτηριστικό DNS είναι χωριστό από το χαρακτηριστικό διεύθυνσης. Η λήψη του 10.80.0.14 δεν λέει τίποτα για το ποιος αναλυτής επέστρεψε ή αν επέστρεψε καθόλου.
Το χαρακτηριστικό μάσκας δικτύου είναι προαιρετικό στην πράξη. Πολλές εγκαταστάσεις επιστρέφουν μόνο διεύθυνση και αφήνουν τον πελάτη να εγκαταστήσει διαδρομή κεντρικού υπολογιστή, γι' αυτό η ίδια δεξαμενή μπορεί να φαίνεται ως /32 σε έναν πελάτη και ως /24 σε άλλον.
Όπου συγκρούονται εύρος DHCP του LAN και δεξαμενή VPN
Το πρόβλημα ξεκινά όταν και οι δύο εκχωρητές δείχνουν στο ίδιο εύρος. Ένας διακομιστής DHCP για 10.20.30.0/24 δεν γνωρίζει τίποτα για δεξαμενή VPN ρυθμισμένη για 10.20.30.128/25, οπότε τίποτα δεν τον εμποδίζει να μισθώσει το 10.20.30.140 σε εκτυπωτή ενώ η πύλη δίνει την ίδια διεύθυνση σε απομακρυσμένο πελάτη. Η σύγκρουση μένει σιωπηλή για μέρες και μετά εμφανίζεται ως περιστασιακό διπλότυπο.
Ένας δρομολογημένος σχεδιασμός τοποθεσίας-σε-τοποθεσία αποφεύγει τη σύγκρουση εκ κατασκευής. Ένας κεντρικός υπολογιστής στο υποκατάστημα κρατά τη διεύθυνση που του έδωσε ο τοπικός διακομιστής DHCP. Οι διεπαφές σήραγγας στις δύο πύλες φέρουν τις δικές τους διευθύνσεις ζεύξης και ο πίνακας δρομολόγησης αποφασίζει πώς ταξιδεύουν τα πακέτα. Οι διευθύνσεις πελατών απομακρυσμένης πρόσβασης είναι τρίτη κατηγορία και δεν πρέπει να αναμειγνύονται με τις διευθύνσεις ζεύξης της πύλης.
Η γεφύρωση της σήραγγας στο LAN αφαιρεί αυτόν τον διαχωρισμό. Αν ο σχεδιασμός χρειάζεται πραγματικά έναν τομέα εκπομπής, το άκρο VPN πρέπει να συμμετέχει στις ίδιες αποφάσεις εκχώρησης με τον διακομιστή DHCP, μέσω αναμεταδότη ή κοινής έγκυρης πηγής, αντί να εκδίδει διευθύνσεις μόνο του.
Επαληθεύστε ποια διεργασία κατέχει τη διεύθυνση
Αποδείξτε την κυριότητα πριν αλλάξετε εύρος. Στον πελάτη, καταγράψτε διεύθυνση και πρόθεμα. Στο LAN, αναζητήστε στη βάση μισθώσεων. Στην πύλη, απαριθμήστε τις δεξαμενές που είναι ρυθμισμένη να δίνει. Μια διεύθυνση που βρίσκεται στο αρχείο μισθώσεων ανήκει σε διακομιστή DHCP, άρα η σήραγγα είναι γεφυρωμένη ή αναμεταδιδόμενη· μια διεύθυνση που βρίσκεται μόνο στη δεξαμενή της πύλης ανήκει στο άκρο της σήραγγας.
# client: address and prefix on the tunnel interface
ip -4 addr show dev tun0
# LAN DHCP server: is this address leased to anyone?
grep -c '10.80.0.14' /var/lib/dhcp/dhcpd.leases
# gateway: pools that remote-access clients draw from
sudo swanctl --list-pools
Καταγράψτε τέσσερα πράγματα μόλις η απάντηση είναι σαφής: ποιο συστατικό εκχωρεί τη διεύθυνση του πελάτη, ποιο εύρος είναι δεσμευμένο γι' αυτήν, πώς φτάνει η επιστροφική κίνηση σε αυτό το εύρος και ποιοι πόροι τη δέχονται. Αυτές οι τέσσερις εγγραφές μετατρέπουν μια γραμμή εικονικού προσαρμογέα σε επιχειρησιακό γεγονός.
Επαναλάβετε τον έλεγχο για το χαρακτηριστικό DNS όσο είστε εκεί. Μια δεξαμενή που δίνει διευθύνσεις χωρίς αναλυτή αφήνει τον πελάτη στο τοπικό DNS του, που είναι διαφορετική αστοχία από δεξαμενή που δίνει διεύθυνση την οποία το LAN χρησιμοποιεί ήδη.