Eu tenho uma configuração bastante simples que consiste em 2 servidores e alguns usuários.
server #1, int -> server na minha LAN doméstica onde meu aplicativo mora, neste caso é nextcloud (com servidor web nginx, acessível por HTTPS) e algumas outras coisas. Este não tem endereço IP externo acessível, não há como se conectar a ele de fora da minha rede, exceto por ...
server #2, ext -> server fora da minha LAN que tem um ip addr acessível do mundo. Ambos os servidores estão 'vinculados' entre si usando uma conexão wireguard sobre um link não tão bom (o que é crucial aqui, pois preciso evitar ao máximo a transferência de dados através dele) Acho que também vale a pena mencionar que as conexões do meu A LAN não é roteada pelo servidor ext. (Wireguard NÃO é o gateway padrão)
Na minha rede doméstica eu tenho um serviço de DNS PiHole que tem uma substituição para cloud.myplace.com para que aponte para o ip da minha rede local (cloud.myplace.com também é um nome de domínio normal que comprei, então é possível usar de fora da minha rede, atualmente está apontando para ext server)
Para acessar o servidor de fora da minha LAN planejei usar o proxy nginx que só passará os dados entre o usuário e meu servidor. Então quando conectado a LAN eu tenho uma conexão https direta, e quando estou na internet, a conexão deve ser proxy através de servidor externo, através de um wg vpn, para meu servidor int. O fator mais importante para mim é a rapidez com que meus aplicativos locais estão funcionando na minha rede local e que eles funcionam a partir de WAN, sem alterações E nos aplicativos clientes (essa transferência de LAN para WAN deve ser transparente para eles)
Mas este é um lugar onde estou um pouco confuso ... todo o plano de usar um serviço DNS local para apontar para um IP local é um pouco fedorento para mim, parece que deve ser possível deixar o nginx decidir como roteie as conexões dependendo de onde a conexão está vindo.
Criar entradas DNS próprias é uma boa ideia? Existe a possibilidade de um dia me morder? (IDK porque alguns sistemas/aplicativos sobrescrevem o DNS ou não confiam em alguns, alguns aplicativos podem armazenar em cache o IP? ou alguma situação semelhante) Ou esta é uma situação perfeitamente saudável e não preciso me preocupar com nada?
Se não, qual é a maneira correta de roteamento para uma única instância na LAN? Seria perfeito, por exemplo, se eu pudesse armazenar em cache alguns dados NC no servidor remoto para não ter que enviar tudo por VPN
Espero que isso seja "pão com manteiga" para a maioria de vocês e que a solução seja óbvia e simples, só não sei como encontrar :) Br, Bartoszek
Esta é uma solução válida.
Existem alguns motivos pelos quais você deseja substituir um DNS público por um local.
1. O servidor está em casa e acessível por um IP público, mas não acessível internamente pelo IP público devido ao hairpinning NAT, mas o servidor é acessível pelo IP interno.
Nesse caso, você configura uma entrada DNS localmente de forma que o URL permaneça o mesmo em todos os lugares, mas funcione dentro e fora do local (por exemplo, alguém tem um laptop e deseja acessá-lo interna e externamente).
2. O servidor está em casa, mas não é acessível ao público.
Nesse caso, você configura um DNS local para apontar para o endereço IP interno e não importa se há uma entrada DNS pública ou não. Além disso, uma entrada DNS pública pode ser feita para apontar para uma página da Web que forneceria uma mensagem curta e não descritiva para alertar as pessoas de que elas não podem acessá-la, a menos que sejam internas. (para ajudar a solucionar problemas para a equipe de TI)
3. Existe uma rota pública, mas os usuários internos devem se conectar a um servidor diferente.
Nesse caso, você configura o DNS local para apontar para um servidor diferente. Por exemplo, para um cluster de servidor de terminal, o externo apontaria para o servidor de gateway, mas internamente você pode querer se conectar a um cluster ou servidor de gerenciamento diferente.
Apenas tenha em mente a solução de problemas para sempre pingar o FQDN e ver se ele responde interna ou externamente para descobrir seus problemas. Por exemplo. você espera que o endereço IP seja interno, mas o ping revela o IP externo.