Resolver o DNS para endereços IP internos?

2

Gostaria de fornecer serviços a partir 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 de nível de consumidor, estou esperando ter que fornecer o roteamento interno de uma máquina dentro da rede.

No momento, tenho as máquinas resolvidas para outros clientes internos, desde que elas 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 apenas serão resolvidos para a caixa de gateway / DNS. Em vez disso, preciso que as máquinas internas sejam resolvidas.

O encaminhamento de porta não ajuda, porque eu tenho várias caixas fornecendo serviços similares (ssh, http / https, mail, 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.

Por fim, preciso apenas fazer isso com um proxy reverso?

    
por ocodo 29.03.2013 / 07:41

2 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 ea porta 22 da outra máquina, a porta 122 no roteador. Você vai ssh para example.com:122.

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

    
por 29.03.2013 / 11:56
0

Então, decidi adicionar minha própria resposta, já que as respostas dadas não responderam a pergunta explicitamente.

Usando o Nginx, eu configurei um proxy reverso que resolve nomes contra o DNS interno. Isso abrange serviços da web (você pode adicionar mais portas de escuta, por exemplo, para acessar o web admin ou serviços de email. (Eu só tenho um servidor de email, o que é bastante típico, por isso é encaminhado por porta 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 usar apenas o encaminhamento de porta, mas é possível configurar o sshd para fazer um proxy reverso através de um túnel, esta resposta tem alguns detalhes:

link

    
por 30.03.2013 / 08:51

Tags