Ένα ανακατευθυνόμενο 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.

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