Resolvendo DNS para endereços IP internos?

2

Eu gostaria de fornecer serviços de várias máquinas internas, através de um DNS interno para clientes externos.

Isso é de um endereço IP externo único baseado em casa, em um roteador no nível do consumidor, espero ter que fornecer o roteamento interno de uma máquina dentro da rede.

No momento, tenho as máquinas resolvendo para outros clientes internos, desde que eles tenham o DNS interno em sua lista de servidores de nomes.

No entanto, se eu tentar resolver esses nomes / usar os serviços de clientes externos, eles resolverão apenas para a caixa gateway / DNS, preciso que as máquinas internas sejam resolvidas.

O encaminhamento de porta não ajuda, porque tenho várias caixas fornecendo serviços semelhantes (ssh, http / https, correio etc.)

Este diagrama pode ajudar a explicar a configuração e o que eu gostaria de fazer ... (ou como é chamado;))

Qualquer ajuda seria muito apreciada.

Finalmente, eu só preciso fazer isso com um proxy reverso?

rede

ocodo
fonte

Respostas:

3

O problema não é DNS, o problema é IPs.

Se você deseja acesso externo, deseja IPs acessíveis externamente. Para uma máquina, o encaminhamento de porta faz o truque. Para várias máquinas, você pode encaminhar, por exemplo, a porta 22 em uma máquina para a porta 22 no roteador e a porta 22 da outra máquina para dizer a porta 122 no roteador. Você irá ssh para example.com:122.

Se a porta especificamente especificada não for uma opção, para protocolos http / https, o proxy reverso servirá, pois a única máquina de correio deve ser suficiente. Para ssh e a maioria dos outros protocolos, sua única maneira é ter vários IPs públicos

Alex
fonte
0

Então, decidi adicionar minha própria resposta, pois as respostas dadas não responderam realmente à pergunta explicitamente.

Usando o Nginx, eu configuro um proxy reverso que resolve nomes no DNS interno. Isso abrange serviços da Web (você pode adicionar mais portas de escuta, por exemplo, para acessar o administrador da Web ou serviços de correio. (Eu só tenho um servidor de correio, o que é bastante típico, por isso é apenas a porta encaminhada e não precisa do proxy)

server {
    listen       80;

    server_name  a.example.com b.example.com c.example.com;
    access_log   /var/log/nginx/proxy.access.log;

    location / {            
        resolver          192.168.1.102; # Local DNS resolution
        proxy_pass        http://$host$uri; # wildcard 
        proxy_redirect    off;
        proxy_set_header  Host            $host;
        proxy_set_header  X-Real-IP       $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Para lidar com o ssh, decidi que poderia usar o encaminhamento de porta, no entanto, é possível configurar o sshd para fazer um proxy reverso por meio de um encapsulamento, esta resposta tem alguns detalhes:

https://serverfault.com/a/244409/56132

ocodo
fonte