Brojač TPROXY može rasti dok aplikacija ne prima ništa. Pravilo se podudarilo, 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 podobnog 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.

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

ZapažanjeSljedeća provjera
Nema relevantnih dolaznih paketaPut saobraćaja i ulazni interfejs
Paketi stižu; brojač presretanja mirujePorodica adresa, lanac i uslovi podudaranja
Pravilo se podudara; lokalna isporuka ne uspijevaOznaka i izbor rute politike
Socket sluša; aplikacija ništa ne vidiSposobnost transparentnog socketa i vlasnik listenera
Zahtjev počinje; kasniji odgovori ne uspijevajuPodudaranje 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

Primjer kernela uključuje podudaranje 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 uspije.

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

Zabilježite kako postojeća aplikacija dobija izvorno odredište. REDIRECT mijenja odredište i oslanja se na odgovarajući mehanizam oporavka; TPROXY zahtijeva svoj transparentni socket i rutiranje. Birajte prema aplikaciji i politici izvorne adrese.

Prije promjene 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