Θέλετε η κίνηση του proxy SOCKS να βγαίνει μέσω του VPN, ενώ το υπόλοιπο σύστημα κρατά την κανονική του διαδρομή. Δύο σχεδιάσεις το κάνουν, και διαφέρουν στο τι σπάει όταν κάτι πάει στραβά. Η μία σπρώχνει μια προεπιλεγμένη διαδρομή μέσα στη σήραγγα και μετά την παρακάμπτει· η άλλη αφήνει τον κύριο πίνακα ήσυχο και στέλνει μία μόνο διεύθυνση πηγής σε δεύτερο πίνακα. Η δεύτερη είναι καθαρότερη και έχει τις δικές της παγίδες.

Δύο σχεδιάσεις, δύο διαφορετικές ακτίνες βλάβης

Η σχεδίαση πλήρους σήραγγας είναι αυτό που κάνουν προεπιλεγμένα οι περισσότεροι VPN clients: αντικαθιστούν την προεπιλεγμένη διαδρομή ώστε τα πάντα να ακολουθούν τη σήραγγα και μετά εξαιρούν ό,τι δεν πρέπει. Είναι εύκολο να τη σκεφτείς και δύσκολο να την κρατήσεις στενή, γιατί κάθε τοπική υπηρεσία που προσθέτεις κληρονομεί τη σήραγγα μέχρι να την εξαιρέσεις. Ο τρόπος αποτυχίας είναι ευρύς, αφού μία λάθος διαδρομή παίρνει μαζί της τη συνδεσιμότητα του ίδιου του συστήματος.

Η σχεδίαση με επιλογή πηγής πηγαίνει αντίστροφα. Ο κύριος πίνακας μένει όπως ήταν, και ένας κανόνας πολιτικής στέλνει πακέτα από μια συγκεκριμένη τοπική διεύθυνση σε πίνακα με προεπιλεγμένη διαδρομή μέσω της σήραγγας. Τίποτα άλλο δεν αλλάζει, που σημαίνει ότι η ακτίνα βλάβης είναι μία διεύθυνση.

Αυτή η στενότητα είναι και ο περιορισμός: η σχεδίαση δουλεύει μόνο αν τα εξερχόμενα πακέτα του proxy φέρουν πραγματικά αυτή τη διεύθυνση.

Τι κάνει η ρύθμιση external του Dante

Η ρύθμιση external επιλέγει τις διευθύνσεις που χρησιμοποιεί ο proxy για τις εξερχόμενες συνδέσεις· δεν αγγίζει την πολιτική δρομολόγησης του πυρήνα. Αυτός ο διαχωρισμός κάνει δυνατή τη δεύτερη σχεδίαση και εδώ ακριβώς οι άνθρωποι διαβάζουν λάθος την τεκμηρίωση. Το να δείξεις το external σε μια διεύθυνση σήραγγας κάνει τον proxy να παράγει τις συνδέσεις του από αυτή τη διεύθυνση, και μετά ο πίνακας δρομολόγησης αποφασίζει πού πάνε αυτά τα πακέτα.

Ο ακροατής είναι ξεχωριστό ζήτημα. Κρατήστε το internal περιορισμένο στους πελάτες που πρέπει να χρησιμοποιούν τον proxy, απαιτήστε έλεγχο ταυτότητας και κλείστε τη θύρα με firewall, γιατί ένας ανοιχτός ακροατής δεν είναι χαρακτηριστικό εξόδου VPN.

Επιβεβαιώστε ότι η ρυθμισμένη διεύθυνση ανήκει πραγματικά στη σήραγγα μέσα στον χώρο ονομάτων δικτύου του proxy.

Κατασκευή του πίνακα με επιλογή πηγής

Για διεύθυνση TUN 10.90.0.2/24 με προσβάσιμο peer στο 10.90.0.1 και αριθμό πίνακα που δεν χρησιμοποιεί τίποτα άλλο, η διάταξη είναι η εξής:

ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100

Η μη προσβάσιμη διαδρομή είναι το μέρος που οι άνθρωποι παραλείπουν. Χωρίς αυτήν, ένας πίνακας του οποίου η διαδρομή σήραγγας εξαφανίζεται πέφτει στην κοινή προεπιλογή και ο proxy φεύγει σιωπηλά από το WAN. Με αυτήν, η αναζήτηση αποτυγχάνει, που είναι ορατή αποτυχία αντί για σιωπηλή διαρροή. Η προτεραιότητα του κανόνα πρέπει επίσης να βρίσκεται μπροστά από οτιδήποτε άλλο ταιριάζει με αυτή την πηγή.

Αυτές οι τιμές περιγράφουν μία τοπολογία. Τα peer σημείο-προς-σημείο, η διευθυνσιοδότηση net30 και οι πελάτες που δίνουν διαφορετικό πρόθεμα χρειάζονται τις δικές τους διαδρομές, οπότε αντιγράψτε το σχήμα και όχι τις διευθύνσεις.

Πού διαρρέει ο κανόνας πηγής

Ένας κανόνας που ταιριάζει με διεύθυνση πηγής επηρεάζει κάθε διεργασία που τη χρησιμοποιεί, όχι μόνο τον proxy. Αν ένας άλλος daemon δεσμεύσει την ίδια διεύθυνση, η κίνησή του παίρνει επίσης τη σήραγγα και η αποτυχία θα μοιάζει με πρόβλημα άσχετης υπηρεσίας. Δώστε στον proxy μια διεύθυνση που δεν χρησιμοποιεί τίποτα άλλο, ή δεχτείτε ότι το εύρος είναι η διεύθυνση και όχι η διεργασία.

Το DNS είναι η άλλη διαρροή. Ένα socket resolver δεν χρησιμοποιεί απαραίτητα την πηγή εξωτερικών δεδομένων του proxy, οπότε οι αναζητήσεις ονομάτων μπορούν ακόμη να βγαίνουν από το WAN. Δοκιμάστε την επίλυση ξεχωριστά από την εγκατάσταση σύνδεσης και αποφασίστε αν αυτό το αποτέλεσμα είναι αποδεκτό.

Το IPv6 χρειάζεται δικούς του κανόνες και διαδρομές, γιατί μια διάταξη IPv4 δεν αποδεικνύει τίποτα γι' αυτό.

Διαλέξτε με κριτήριο την αποτυχία που αντέχετε

Διαλέξτε την πλήρη σήραγγα όταν το σύστημα πρέπει να προστατευτεί ως σύνολο και μπορείτε να συντηρείτε τη λίστα εξαιρέσεων. Διαλέξτε δρομολόγηση με βάση την πηγή όταν το σύστημα πρέπει να κρατήσει τη δική του διαδρομή και μόνο μία υπηρεσία πρέπει να ανακατευθυνθεί. Και οι δύο είναι θεμιτές· το λάθος είναι να διαλέξετε τη μία και μετά να τη δοκιμάσετε σαν να ήταν η άλλη.

Όποια κι αν διαλέξετε, επαληθεύστε και από τις δύο πλευρές: ένα αίτημα μέσω του proxy και ένα άμεσο αίτημα από το σύστημα, με την παρατηρούμενη διεύθυνση εξόδου καταγεγραμμένη για το καθένα.

Αν η σήραγγα πέσει, αποφασίστε εκ των προτέρων αν ο proxy πρέπει να αποτύχει ή να επιστρέψει, και αφήστε τον πίνακα δρομολόγησης να εκφράσει αυτή την απόφαση.

Σχετικά άρθρα