Διαφανές proxy DNAT: γιατί μετράει η διαδρομή επιστροφής
Κατανοήστε γιατί το DNAT μπορεί να παραδώσει ένα αίτημα σε ξεχωριστό proxy ενώ η απάντηση παρακάμπτει την πύλη και σπάει τη σύνδεση.
Ένα ανακατευθυνόμενο SYN μπορεί να φτάσει στο Squid ενώ ο πελάτης εξακολουθεί να λήγει σε timeout. Σε ρύθμιση DNAT, το πακέτο επιστροφής πρέπει να φτάσει και στην πύλη που κατέχει την κατάσταση μετάφρασης.
Σκεφτείτε αυτό το υποθετικό LAN:
client 192.168.40.25 → gateway 192.168.40.1
DNAT → proxy 192.168.40.10
proxy 192.168.40.10 → client 192.168.40.25 directlyΟ πελάτης συνδέθηκε αρχικά σε μια διεύθυνση ιστότοπου. Μετά το DNAT, το proxy βλέπει την πηγή του πελάτη και μπορεί να χρησιμοποιήσει τη διαδρομή του τοπικού υποδικτύου για να απαντήσει απευθείας. Αυτή η απάντηση χάνει την αντίστροφη μετάφραση της πύλης και μπορεί να φτάσει στον πελάτη από τη διεύθυνση του proxy αντί για την αναμενόμενη διεύθυνση ιστότοπου. Η πύλη δεν μπορεί να επιδιορθώσει πακέτα που δεν λαμβάνει ποτέ.
| Προσέγγιση | Συνέπεια |
|---|---|
| Δρομολόγηση των απαντήσεων του proxy μέσω της πύλης που μεταφράζει | Η εισερχόμενη σύνδεση προς το proxy μπορεί να διατηρήσει τη διεύθυνση πηγής του πελάτη |
| Εφαρμογή και κατάλληλης μετάφρασης πηγής | Το proxy απαντά στην πύλη ως ομότιμό της, αλλά τώρα βλέπει εκείνη τη μεταφρασμένη πηγή αντί για τον αρχικό πελάτη |
Μην αφαιρείτε το SNAT για ομορφότερα logs χωρίς να επαληθεύσετε τη διαδρομή επιστροφής. Η ευρεία εφαρμογή του αλλάζει επίσης τα ACL πηγής και την απόδοση· αποδεχτείτε αυτή τη συνέπεια ως μέρος του σχεδιασμού.
Ένα αξιόπιστο HTTP hop μπορεί να μεταφέρει μεταδεδομένα πελάτη σε κεφαλίδα προώθησης, αλλά το NAT δεν δημιουργεί αυτή την κεφαλίδα ούτε τη μετατρέπει σε ταυτότητα TCP peer. Η διατήρηση πηγής στη σύνδεση προς το Squid επίσης δεν τη διατηρεί στη χωριστή σύνδεση του Squid με τον ιστότοπο.
Τέλος, ο σχεδιασμός υποκλοπής πρέπει ακόμη να παρέχει τις απαιτούμενες από το Squid πληροφορίες προορισμού. Η συμμετρική δρομολόγηση επιστροφής λύνει αυτόν τον μηχανισμό timeout, όχι ολόκληρη τη ρύθμιση διαφανούς proxy.