Redirecione todo o tráfego para hosts especificados por trás do NAT

Redirecione todo o tráfego para hosts especificados por trás do NAT

Existe a possibilidade de redirecionar todo o tráfego para hosts especificados por trás do NAT?

Por exemplo, tenho um servidor, um domínio "meudominio.com" e 3 hosts atrás de NAT. Desejo configurar 3 subdomínios:

host1.mydomain.com
host2.mydomain.com
host2.mydomain.com
e cada um deles para redirecionar todas as portas para o host especificado na rede local.

Esse redirecionamento deve fornecer uma funcionalidade como esta:
http://host1.meudominio.com(pode ser alcançado usando apache)
ssh[e-mail protegido](???)
e outros protocolos em portas diferentes

Obrigado por qualquer ajuda.

Responder1

Isso pode ser feito para HTTP e HTTPS com um "proxy reverso" que examina as informações do cabeçalho do host em uma solicitação HTTP, obtém o conteúdo apropriado e o retorna. O ISA (Internet Security and Acceleration) da Microsoft pode fazer isso, assim como o Apache/squid no Linux.

Para todas as outras portas você terá mais dificuldade, porque a maior parte do tráfego não inclui o nome do host desejado, apenas um IP de destino (por exemplo: "Quero fazer SSH para 1.2.3.4" em vez de "Quero fazer SSH para host1.meudominio. com)

Mapear portas externas específicas para portas internas é fácil (porta 22 -> host1:22, porta 23 para host2:22, porta 24 -> host3:22 etc) e às vezes é tudo o que é necessário.

Se você realmente precisar mapear todas as portas para diferentes servidores internos, precisará de vários endereços IP externos, que a maioria dos ISPs pode fornecer (pelo menos se você tiver uma conexão comercial).

Responder2

apache mod_proxy?

Responder3

Não, não é possível fazer encaminhamento de porta com base no nome DNS. O nome de domínio não faz parte do pacote IP, portanto não há como o seu roteador usá-lo para distinguir as conexões de entrada.

Quando um host remoto se conecta a host1.mydomain.com, ele resolverá esse nome para um endereço IP, que é colocado no pacote IP. Se host2.mydomain.com resolver para o mesmo endereço IP, o pacote construído terá exatamente a mesma aparência de host1.mydomain.com.

Por esse motivo é possível quando você tem vários endereços IP configurados em seu servidor.

O Apache pode distinguir o nome de domínio recebido, mas isso está no nível do aplicativo. No HTTP 1.1, um navegador enviará o nome de domínio nos cabeçalhos HTTP, nos quais o Apache pode filtrar usando hosts virtuais.

informação relacionada