Pregledni proxy DNAT: zakaj je povratna pot pomembna
Razumite, zakaj lahko DNAT dostavi zahtevo ločenemu proxyju, medtem ko odgovor obide prehod in prekine povezavo.
Preusmerjeni SYN lahko prispe do Squida, medtem ko odjemalec še vedno čaka na potek. V postavitvi DNAT mora tudi povratni paket prispeti do prehoda, ki ima stanje prevajanja.
Razmislite o tem hipotetičnem LAN-u:
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 directlyOdjemalec se je sprva povezal na naslov spletnega mesta. Po DNAT proxy vidi vir odjemalca in lahko uporabi pot lokalne podomrežja za neposreden odgovor. Ta odgovor zgreši obratno prevajanje prehoda in lahko doseže odjemalca z naslova proxyja namesto s pričakovanega naslova spletnega mesta. Prehod ne more popraviti paketov, ki jih nikoli ne prejme.
| Pristop | Posledica |
|---|---|
| Voditi odgovore proxyja skozi prehod, ki prevaja | Dohodna povezava do proxyja lahko obdrži izvorni naslov odjemalca |
| Uporabiti tudi ustrezno prevajanje vira | Proxy odgovarja prehodu kot svojemu partnerju, a zdaj vidi ta prevedeni vir namesto prvotnega odjemalca |
Ne odstranjujte SNAT zaradi lepših dnevnikov, ne da bi preverili povratno pot. Široka uporaba spreminja tudi izvorne ACL in dodeljevanje; sprejmite to posledico kot del zasnove.
Zaupanja vreden HTTP skok lahko prenese metapodatke odjemalca v glavi za posredovanje, vendar NAT te glave ne ustvari in je ne spremeni v identiteto partnerja TCP. Ohranjanje vira na povezavi do Squida ga ne ohrani niti na ločeni povezavi Squida s spletnim mestom.
Nazadnje mora zasnova prestrezanja še vedno zagotoviti podatke o cilju, ki jih Squid zahteva. Simetrično povratno usmerjanje reši ta mehanizem poteka, ne celotne konfiguracije preglednega proxyja.