Transparentni proxy DNAT: zašto je povratna ruta važna
Shvatite zašto DNAT može dostaviti zahtev odvojenom proxyju dok odgovor zaobilazi gateway i prekida vezu.
Preusmereni SYN može stići do Squida dok klijent još uvek dobija tajmaut. U DNAT postavci povratni paket takođe mora stići do gatewaya koji poseduje stanje prevođenja.
Razmotrite ovaj hipotetički 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 directlyKlijent se prvobitno povezao na adresu veb-sajta. Nakon DNAT-a proxy vidi izvor klijenta i može koristiti rutu lokalne podmreže da odgovori direktno. Taj odgovor zaobilazi obrnuto prevođenje gatewaya i može stići do klijenta sa adrese proxyja umesto sa očekivane adrese veb-sajta. Gateway ne može popraviti pakete koje nikada ne primi.
| Pristup | Posledica |
|---|---|
| Provoditi odgovore proxyja kroz gateway koji prevodi | Dolazna veza ka proxyju može zadržati izvornu adresu klijenta |
| Primeniti i odgovarajuće prevođenje izvora | Proxy odgovara gatewayu kao svom partneru, ali sada vidi taj prevedeni izvor umesto izvornog klijenta |
Ne uklanjajte SNAT zbog lepših zapisa bez provere povratne rute. Široka primena menja i izvorne ACL-ove i atribuciju; prihvatite tu posledicu kao deo dizajna.
Pouzdan HTTP skok može preneti metapodatke klijenta u zaglavlju prosleđivanja, ali NAT ne stvara to zaglavlje niti ga pretvara u identitet TCP partnera. Čuvanje izvora na vezi prema Squidu ne čuva ga ni na Squidovoj odvojenoj vezi prema veb-sajtu.
Najzad, dizajn presretanja još uvek mora da obezbedi podatke o odredištu koje Squid zahteva. Simetrično povratno rutiranje rešava ovaj mehanizam tajmauta, ne celu konfiguraciju transparentnog proxyja.