Tradução de IP para proxy de endereço IP da web sem entrada de DNS

Tradução de IP para proxy de endereço IP da web sem entrada de DNS

Usamos um sistema de proxy baseado em DNS, que faz proxy de determinados endereços com base na entrada do DNS, então, por exemplo, para website1.com, o DNS retorna o IP se for o proxy, e a solicitação é enviada através dele, mas para website2.com, o DNS retorna o endereço normal e a solicitação é enviada diretamente. Não tem problema

No entanto, isso só funciona para chamadas baseadas em nomes. Precisamos ser capazes de fazer o mesmo para determinados endereços IP, mas existe alguma maneira de fazer isso?

Por exemplo, um usuário navega para um site com IP 1.2.3.4, mas SEM entrada DNS, nem A nem PTR. Precisaríamos então que a chamada não fosse para o IP 1.2.3.4, mas para o nosso servidor 10.0.0.4. Existe alguma maneira de fazer isso? Percebemos que isso precisaria ser definido na máquina cliente, mas ainda assim - existe alguma maneira de fazer isso?

Os clientes podem ser qualquer coisa, Windows, Mac, Linux, Android, o que for.. provavelmente não é possível em todos, mas é possível em algum deles?

Responder1

Conforme você especificou a rede, há uma opção no nível da rede. Forneci uma solução de rede abaixo sinalizada com REDE. Apenas alguns protocolos são comumente usados ​​em proxy, mas a maioria funciona bem com NAT (a solução de rede). HTTP e HTTPS são comumente proxy, então essa é minha primeira resposta.

Estou confuso com sua descrição do proxy baseado em DNS. É comum que o DNS especifique endereços IP diferentes para endereços diferentes ou que sites relacionados tenham o mesmo endereço IP. Como você está especificando sites como seus nomes de host, acredito que podemos presumir que você deseja fazer proxy de sites. Acredito que o termo que você está procurando é "hospedagem virtual baseada em nome" ou "proxy baseado em nome"

Para HTTP ou HTTPS, muitos servidores podem fazer proxy do tráfego com base no endereço IP e/ou no nome especificado no cabeçalho HOST. O Apache Web Server usa VirtualHosts para separar sites. Outro software que pode fazer proxy do tráfego tem funcionalidade igual ou semelhante. No Apache, para fazer proxy baseado em IP e baseado em IP para o mesmo site, você criaria um VirtualHost para o endereço IP e adicionaria os nomes necessários a esse host virtual. Você então configuraria esse VirtualHost para fazer proxy de todo o site ou parte dele.

REDE: Se quiser redirecionar um endereço IP para um endereço diferente, isso pode ser feito por um roteador. O mecanismo utilizado é a chamada NAT (Network Address Translation). Nesse caso, você precisaria de DNAT (tradução de endereço de rede de destino). Alguns roteadores podem fazer NAT em um endereço por porta (serviço). Nesse caso, você desejaria que as entradas DNS relacionadas retornassem o endereço IP que está sendo traduzido.

EDIT: Os comentários adicionais fornecem informações adicionais. Pelo que entendi os requisitos: - O proxy será apenas para usuários de determinados endereços/intervalos de endereços, nem todo o tráfego para o nome/IP será proxy.
- As solicitações com proxy devem parecer originadas do proxy e não do host original. - A solução atual fornece registros de endereços diferentes dependendo da origem da solicitação. (Acredito que a solução existente esteja quebrada aqui. A solicitação de DNS se origina do servidor DNS que o cliente está usando, que pode não ser o dispositivo do cliente. As respostas de DNS são armazenadas em cache, portanto, você não pode confiar em uma solicitação de DNS anterior à solicitação.)

A solução que acredito que provavelmente funcionaria é lidar com isso com regras NAT em um dispositivo na frente do servidor e do proxy. Isso faria NAT com todo o tráfego que você deseja proxy para seu dispositivo proxy com base no endereço IP de origem e passaria outro tráfego diretamente para o servidor.

informação relacionada