Como o squid entende o endereço IP de destino em modo transparente

Como o squid entende o endereço IP de destino em modo transparente

No modo transparente, as seguintes regras do iptable são usadas para redirecionar o tráfego para o squid.

iptables -I PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 3128

Pelo que sei, REDIRECT altera o endereço IP de destino para o IP da interface local.

Então, quando o tráfego chega ao squid, como o squid sabe para onde encaminhá-lo, já que o IP de destino mudou agora?

Responder1

Você está certo de que, com o REDIRECT, o Squid não consegue ver o IP de destino original pretendido; em vez disso, resolverá o host fornecido pelo cliente no Host:cabeçalho HTTP, que é obrigatório no HTTP 1.1.

Responder2

Isso é muito semelhante ao gateway.

Quando o host cliente não sabe onde reside o host de destino, ele envia o pacote para o gateway padrão. E o gateway define para onde esse pacote deve ser enviado.

O proxy transparente faz o mesmo. Todos os pacotes para xxx.xxx.xxx.xxx:80 são desviados para a porta 3128 em vez da porta mencionada no cabeçalho do pacote. O Squid analisa o pacote e seus cabeçalhos - srce dstas portas correspondentes e, em seguida, envia o pacote como o gateway faz, ou envia imediatamente uma resposta se ele foi armazenado em cache antes.

A ideia principal é que a porta de destino seja armazenada dentro de cada pacote, enquanto o pacote pode ser roteado para diferentes hosts/portas em trânsito.

informação relacionada