En TPROXY-teller kan øke mens applikasjonen ikke mottar noe. Regelen traff, men lokal levering avhenger fortsatt av policy-ruting og en kompatibel mottakende socket.

Linux TPROXY kan fange trafikk uten å skrive om destinasjonen slik DNAT gjør. Pakker adressert til en ikke-lokal destinasjon må derfor nå en egnet lokal socket.

Følg leveringsveien

  1. Trafikken når avfangstverten på det tiltenkte grensesnittet og adressefamilien.
  2. Avfangstregelen og pakkemerket angir policyen for lokal levering.
  3. En samsvarende policy-regel velger en rute som leverer pakkene lokalt.
  4. Proxyen bruker en støttet transparent lytter med det nødvendige socket-alternativet.

Kjernens IPv4-eksempel krever applikasjonsstøtte for IP_TRANSPARENT. En vanlig lytter på samme port, eller en global ikke-lokal bind-innstilling, beviser ikke den støtten.

ObservasjonNeste kontroll
Ingen relevante inngående pakkerTrafikkvei og inngangsgrensesnitt
Pakker ankommer; avfangstellingen står stilleAdressefamilie, kjede og samsvarsbetingelser
Regelen samsvarer; lokal levering mislykkesMerke og valg av policy-rute
Socketen lytter; applikasjonen ser ingentingTransparent socket-evne og lytterens eier
Forespørselen starter; senere svar mislykkesSamsvar for etablert socket og returruter

Ta vare på den lastede konfigurasjonen og nettverksnavnerommet sammen med hver observasjon. En senere regel kan overskrive et merke eller velge en annen rute. Hvis avfangsten skjer på verten mens lytteren kjører i en container, leverer ikke en gyldig vertslokal rute automatisk inn i den containeren.

Regn med senere pakker

Kjernens eksempel inneholder socket-samsvar og en DIVERT-vei som merker pakker som tilhører transparente sockets. Utelates den, kan senere trafikk bli værende på en annen vei selv når den første avfangsten lykkes.

Bruk applikasjonens støttede transparente modus og den samsvarende kjernedokumentasjonen for hver adressefamilie. En IPv4-kommando for lokal rute konfigurerer ikke IPv6, og støtte i én familie beviser ikke socket-atferden i den andre.

TPROXY genererer heller ikke SOCKS-forhandling. En komponent fra transparent til SOCKS må fortsatt finne destinasjonen og forhandle med oppstrøms.

Gå over fra REDIRECT

Noter hvordan den eksisterende applikasjonen får den opprinnelige destinasjonen. REDIRECT endrer destinasjonen og er avhengig av riktig gjenopprettingsmekanisme; TPROXY trenger sin transparente socket og ruteoppsett. Velg etter applikasjonen og kildeadressepolicyen.

Koble tellere til den valgte ruten, socket-evnen og applikasjonsloggen før du bytter avfangstmodus. På en distribusjon som leverer de nødvendige fasilitetene, er et manglende leveringstrinn et bedre utgangspunkt enn å kompilere kjernen på nytt.

Relaterte artikler