Počítadlo TPROXY může růst, i když aplikace nic nepřijímá. Pravidlo odpovídalo, ale místní doručení stále závisí na směrování politiky a kompatibilním přijímajícím socketu.

Linux TPROXY dokáže zachytit provoz, aniž by přepisoval cíl jako DNAT. Pakety adresované na nelokální destinaci proto musí dorazit do vhodného místního socketu.

Sledujte cestu doručení

  1. Provoz dorazí k hostiteli zachycení přes zamýšlené rozhraní a rodinu adres.
  2. Pravidlo zachycení a značka paketu určují politiku místního doručení.
  3. Odpovídající pravidlo politiky vybere trasu, která pakety doručí místně.
  4. Proxy používá podporovaný transparentní listener s požadovanou volbou socketu.

Příklad IPv4 v jádře vyžaduje podporu aplikace pro IP_TRANSPARENT. Běžný listener na stejném portu nebo globální nastavení nelokálního navázání tuto podporu neprokazuje.

PozorováníDalší kontrola
Žádné relevantní příchozí paketyCesta provozu a vstupní rozhraní
Pakety dorazí; počítadlo zachycení se neměníRodina adres, řetězec a podmínky shody
Pravidlo odpovídá; místní doručení selháváZnačka a volba trasy politiky
Socket naslouchá; aplikace nic nevidíSchopnost transparentního socketu a vlastník listeneru
Požadavek začne; pozdější odpovědi selhávajíShoda navázaného socketu a zpětné trasy

U každého pozorování si uchovejte načtenou konfiguraci a síťový jmenný prostor. Pozdější pravidlo může přepsat značku nebo zvolit jinou trasu. Pokud k zachycení dochází na hostiteli, zatímco listener běží v kontejneru, platná místní trasa hostitele automaticky nedoručuje do tohoto kontejneru.

Počítejte s pozdějšími pakety

Příklad jádra obsahuje shodu socketu a cestu DIVERT, která označuje pakety patřící transparentním socketům. Pokud ji vynecháte, pozdější provoz může zůstat na jiné cestě, i když počáteční zachycení uspěje.

Použijte transparentní režim podporovaný aplikací a odpovídající dokumentaci jádra pro každou rodinu adres. Příkaz místní trasy IPv4 nenastavuje IPv6 a podpora v jedné rodině neprokazuje chování socketu v druhé.

TPROXY také nevytváří vyjednávání SOCKS. Komponenta z transparentního na SOCKS stále musí zjistit destinaci a vyjednat se svým upstream serverem.

Přechod z REDIRECT

Zaznamenejte, jak stávající aplikace získává původní destinaci. REDIRECT mění destinaci a spoléhá na příslušný mechanismus obnovy; TPROXY potřebuje svůj transparentní socket a uspořádání směrování. Vybírejte podle aplikace a politiky zdrojové adresy.

Před změnou režimu zachycení spojte počítadla s vybranou trasou, schopností socketu a protokolem aplikace. Na distribuci, která poskytuje potřebné prostředky, je chybějící krok doručení lepším výchozím bodem než rekompilace jádra.

Související články