Como o squid entende o endereço IP de destino no modo transparente?

1

No modo transparente, as regras de 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

Conforme meu conhecimento, 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 onde encaminhá-lo, já que o IP de destino mudou agora?

    
por Aniket 04.05.2015 / 16:50

2 respostas

1

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

    
por 04.05.2015 / 17:11
0

Isso é muito parecido com o gateway.

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

Proxy transparente faz o mesmo. Todos os pacotes para o 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 - src , dst e as portas correspondentes, e então envia o pacote como o gateway, ou imediatamente envia uma resposta se já foi armazenado em cache antes.

A idéia principal de que a porta de destino é armazenada em cada pacote enquanto o pacote pode ser roteado para os diferentes hosts / portas em trânsito.

    
por 04.05.2015 / 16:58