Γιατί ένας διακομιστής VPN πίσω από CGNAT δεν δέχεται ποτέ συνδέσεις
Μια διεύθυνση 100.64, ένα δυναμικό όνομα DNS που επιλύεται αλλού και καμία εισερχόμενη χειραψία είναι ένα πρόβλημα: NAT παρόχου. Επιβεβαιώστε το και μετά προωθήστε την εξερχόμενη κίνηση.
Ο δρομολογητής αναφέρει διεύθυνση WAN που αρχίζει με 100.72, το δυναμικό όνομα DNS επιλύεται σε άλλη δημόσια διεύθυνση και ο διακομιστής VPN σε αυτόν τον δρομολογητή δεν ολοκληρώνει ποτέ χειραψία από έξω. Η προώθηση θυρών είναι ρυθμισμένη, η υπηρεσία εκτελείται και μια δοκιμή από το LAN εξακολουθεί να λειτουργεί. Τίποτα στο αρχείο καταγραφής του δρομολογητή δεν μοιάζει με σφάλμα. Αυτός ο συνδυασμός είναι NAT επιπέδου παρόχου και κανένας κανόνας τείχους προστασίας δεν μπορεί να ανοίξει θύρα σε διεύθυνση που κρατά ο πάροχος.
Η επιβεβαίωση της κοινόχρηστης διεύθυνσης χρειάζεται δύο λεπτά και αποτρέπει μια εβδομάδα αλλαγών ρυθμίσεων.
Τα σημάδια που δείχνουν NAT παρόχου
Συγκρίνετε τη διεύθυνση WAN στη σελίδα κατάστασης του δρομολογητή με τη διεύθυνση που αναφέρει μια εξωτερική αναζήτηση. Μια διεύθυνση WAN εντός του 100.64.0.0/10 είναι το σύνηθες σημάδι, και τα ιδιωτικά εύρη 10/8, 172.16/12 και 192.168/16 σημαίνουν το ίδιο. Αν το traceroute δείχνει το ίδιο δημόσιο άλμα επαναλαμβανόμενο ή ένα πρώιμο άλμα απαντά με ιδιωτική διεύθυνση, ένας άλλος μεταφραστής βρίσκεται ανάμεσα στον δρομολογητή και το διαδίκτυο. Ορισμένοι πάροχοι εμφανίζουν τη διεκχωρημένη διεύθυνση μόνο στην πύλη πελατών, οπότε εξαγάγετε αυτή την τιμή μαζί με το traceroute.
Η αλλαγή πρωτοκόλλων ή θυρών δεν βοηθά, γιατί το πρόβλημα είναι η εισερχόμενη προσβασιμότητα και όχι μια κλειστή θύρα.
Γιατί η προώθηση και το δυναμικό DNS δεν μπορούν να το διορθώσουν
Ένας κανόνας προώθησης θύρας αντιστοιχίζει μια θύρα στη διεπαφή WAN του δρομολογητή, αλλά η εισερχόμενη κίνηση δεν φτάνει ποτέ σε αυτή τη διεπαφή: ο πάροχος τη μεταφράζει πρώτα και προωθεί μόνο ό,τι επιτρέπει ο δικός του πίνακας. Η δημοσίευση της κοινόχρηστης διεύθυνσης στο δυναμικό DNS κατευθύνει τους πελάτες σε πύλη παρόχου που χρησιμοποιούν πολλοί συνδρομητές, γι' αυτό το όνομα επιλύεται και η χειραψία εξακολουθεί να αποτυγχάνει. Οι δοκιμές hairpin πετυχαίνουν επειδή ο δρομολογητής απαντά στον δικό του κανόνα από μέσα, και το UPnP έχει ακριβώς το ίδιο τυφλό σημείο.
Ούτε η επαναρρύθμιση του πελάτη θα βοηθήσει, αφού η αποτυχία συμβαίνει πριν διαβαστεί οποιαδήποτε ρύθμιση πελάτη.
Προώθηση μέσω VPS με ρητές διαδρομές
Βάλτε μια δημόσια διεύθυνση μπροστά νοικιάζοντας το μικρότερο VPS που μπορεί να μεταφέρει την κίνηση και μετά κάντε τον οικιακό δρομολογητή να καλέσει προς αυτό. Το εξερχόμενο UDP από το οικιακό δίκτυο περνά το NAT του παρόχου, άρα η σήραγγα στήνεται από μέσα και το VPS γίνεται το προσβάσιμο άκρο. Η οικιακή πλευρά γίνεται πελάτης με σταθερή διεύθυνση σήραγγας, όχι διακομιστής.
Στο VPS προσθέστε καταχώριση καταλόγου ειδική για τον πελάτη, ώστε ο διακομιστής να ξέρει ποιος ομότιμος κατέχει το οικιακό υποδίκτυο, και προσθέστε αντίστοιχη διαδρομή πυρήνα.
# /etc/openvpn/server/ccd/home-site.conf ifconfig-push 10.8.0.10 255.255.255.0 iroute 192.168.50.0 255.255.255.0 # server.conf client-config-dir /etc/openvpn/server/ccd route 192.168.50.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0"
Η γραμμή iroute λέει στο OpenVPN ποιος πελάτης λαμβάνει την κίνηση για το οικιακό υποδίκτυο· η γραμμή route βάζει αυτό το υποδίκτυο στον πίνακα πυρήνα του VPS ώστε τα πακέτα να μπαίνουν στη σήραγγα. Για δημοσιευμένη υπηρεσία, προσθέστε κανόνα NAT προορισμού που προωθεί τη δημόσια θύρα στο 10.8.0.10 και ενεργοποιήστε το net.ipv4.ip_forward.
Δοκιμάστε τη διαδρομή από έξω
Επαληθεύστε κάθε άλμα στη δημόσια πλευρά, γιατί μια επιτυχημένη σήραγγα δεν αποδεικνύει ότι η υπηρεσία είναι προσβάσιμη. Η κατάσταση ακρόασης και η σύλληψη πακέτων στο VPS διαχωρίζουν το «δεν έφτασε τίποτα» από το «έφτασε και απορρίφθηκε».
ss -lunp | grep 1194 tcpdump -ni any udp port 1194 nft list ruleset | grep -A4 dnat # from a phone on mobile data, not the home Wi-Fi nc -vz -u 203.0.113.10 1194
Αν η σύλληψη δείχνει πακέτα από το τηλέφωνο αλλά καμία απάντηση, επόμενη στάση είναι η ρύθμιση του διακομιστή ή το τείχος προστασίας. Αν η σύλληψη δεν δείχνει τίποτα, ο πελάτης ακόμη επιλύει ή στέλνει σε λάθος διεύθυνση.
Εναλλακτικές που αξίζει να κοστολογηθούν πρώτα
Μια αποκλειστική διεύθυνση IPv4 από τον πάροχο είναι η συντομότερη λύση και συνήθως είναι ένα μικρό μηνιαίο τέλος. Το εγγενές IPv6 αφαιρεί τη μετάφραση και στα δύο άκρα όταν το VPN, το δίκτυο του πελάτη και οι εγγραφές DNS το υποστηρίζουν όλα. Μια επικάλυψη πλέγματος με δρομολογητή υποδικτύου μέσα στο οικιακό δίκτυο πετυχαίνει την ίδια προώθηση χωρίς VPS, με κόστος την εξάρτηση από υπηρεσία συντονισμού.
Επιλέξτε την προώθηση όταν η απαίτηση είναι σταθερή εισερχόμενη πρόσβαση και κάθε κανόνας πρέπει να μένει υπό τον έλεγχό σας. Επιλέξτε τη διεύθυνση του παρόχου όταν το επιτρέπει ο προϋπολογισμός και ο στόχος είναι απλώς να σταματήσετε να το σκέφτεστε.