Brojač TPROXY može rasti dok aplikacija ne prima ništa. Pravilo se poklopilo, ali lokalna isporuka i dalje zavisi od rutiranja politike i kompatibilnog prijemnog socketa.

Linux TPROXY može presresti saobraćaj bez prepisivanja odredišta kao što to radi DNAT. Zato paketi upućeni na nelokalno odredište moraju stići do odgovarajućeg lokalnog socketa.

Pratite put isporuke

  1. Saobraćaj stiže na host za presretanje preko predviđenog interfejsa i porodice adresa.
  2. Pravilo presretanja i oznaka paketa određuju politiku lokalne isporuke.
  3. Odgovarajuće pravilo politike bira rutu koja pakete isporučuje lokalno.
  4. Proxy koristi podržani transparentni listener sa potrebnom opcijom socketa.

Primer IPv4 u kernelu zahteva podršku aplikacije za IP_TRANSPARENT. Običan listener na istom portu ili globalno nelokalno povezivanje ne dokazuje tu podršku.

ZapažanjeSledeća provera
Nema relevantnih dolaznih paketaPut saobraćaja i ulazni interfejs
Paketi stižu; brojač presretanja mirujePorodica adresa, lanac i uslovi poklapanja
Pravilo se poklapa; lokalna isporuka ne uspevaOznaka i izbor rute politike
Socket sluša; aplikacija ništa ne vidiSposobnost transparentnog socketa i vlasnik listenera
Zahtev počinje; kasniji odgovori ne uspevajuPoklapanje uspostavljenog socketa i povratne rute

Čuvajte učitanu konfiguraciju i mrežni imenski prostor uz svako zapažanje. Kasnije pravilo može prepisati oznaku ili izabrati drugu rutu. Ako se presretanje dešava na hostu dok listener radi u kontejneru, valjana lokalna ruta hosta ne isporučuje automatski u taj kontejner.

Uračunajte kasnije pakete

Primer kernela uključuje poklapanje socketa i DIVERT put koji označava pakete transparentnih socketa. Ako ga izostavite, kasniji saobraćaj može ostati na drugom putu čak i kada početno presretanje uspe.

Koristite transparentni režim koji aplikacija podržava i odgovarajuću dokumentaciju kernela za svaku porodicu adresa. IPv4 naredba lokalne rute ne konfiguriše IPv6, a podrška u jednoj porodici ne dokazuje ponašanje socketa u drugoj.

TPROXY takođe ne stvara SOCKS pregovore. Komponenta od transparentnog do SOCKS-a ipak mora otkriti odredište i pregovarati sa svojim upstream serverom.

Prelazak sa REDIRECT

Zabeležite kako postojeća aplikacija dobija izvorno odredište. REDIRECT menja odredište i oslanja se na odgovarajući mehanizam oporavka; TPROXY zahteva svoj transparentni socket i raspored rutiranja. Birajte prema aplikaciji i politici izvorne adrese.

Pre promene režima presretanja povežite brojače sa izabranom rutom, sposobnošću socketa i zapisom aplikacije. Na distribuciji koja pruža potrebne mogućnosti, korak isporuke koji nedostaje bolje je polazište od ponovnog kompajliranja kernela.

Povezani članci