Un contador TPROXY pode subir mentres a aplicación non recibe nada. A regra coincidiu, pero a entrega local aínda depende do encamiñamento por políticas e dun socket receptor compatible.

Linux TPROXY pode interceptar tráfico sen reescribir o destino como fai DNAT. Por iso os paquetes dirixidos a un destino non local deben chegar a un socket local axeitado.

Siga a ruta de entrega

  1. O tráfico chega ao host de interceptación pola interface e a familia de enderezos previstas.
  2. A regra de interceptación e a marca do paquete identifican a política de entrega local.
  3. Unha regra de política coincidente escolle unha ruta que entrega os paquetes localmente.
  4. O proxy usa un oínte transparente compatible coa opción de socket necesaria.

O exemplo de IPv4 do núcleo require compatibilidade da aplicación con IP_TRANSPARENT. Un oínte normal no mesmo porto, ou un axuste global de vinculación non local, non demostra esa compatibilidade.

ObservaciónSeguinte comprobación
Non hai paquetes de entrada relevantesRuta do tráfico e interface de entrada
Chegan paquetes; o contador de interceptación non se moveFamilia de enderezos, cadea e condicións de coincidencia
A regra coincide; falla a entrega localMarca e selección de ruta de política
O socket escoita; a aplicación non ve nadaCapacidade de socket transparente e propietario do oínte
A petición comeza; as respostas posteriores fallanCoincidencia de socket establecido e rutas de volta

Conserve a configuración cargada e o espazo de nomes de rede con cada observación. Unha regra posterior pode sobrescribir unha marca ou escoller outra ruta. Se a interceptación ocorre no host mentres o oínte se executa nun contedor, unha ruta local válida do host non entrega automaticamente nese contedor.

Contar cos paquetes posteriores

O exemplo do núcleo inclúe a coincidencia de socket e unha ruta DIVERT que marca os paquetes dos sockets transparentes. Omitila pode deixar o tráfico posterior noutra ruta aínda que a interceptación inicial funcione.

Use o modo transparente compatible coa aplicación e a documentación do núcleo correspondente para cada familia de enderezos. Unha orde de ruta local de IPv4 non configura IPv6, e a compatibilidade nunha familia non demostra o comportamento do socket da outra.

TPROXY tampouco xera a negociación SOCKS. Un compoñente de transparente a SOCKS aínda debe descubrir o destino e negociar co seu servidor ascendente.

Pasar de REDIRECT

Anote como obtén a aplicación existente o destino orixinal. REDIRECT cambia o destino e depende do mecanismo de recuperación axeitado; TPROXY necesita o seu socket transparente e a súa disposición de encamiñamento. Escolla segundo a aplicación e a política de enderezo de orixe.

Emparexe os contadores coa ruta escollida, a capacidade do socket e o rexistro da aplicación antes de cambiar de modo de interceptación. Nunha distribución que achegue os medios necesarios, un paso de entrega ausente é un mellor punto de partida que recompilar o núcleo.

Artigos relacionados