Cenário
Eu tenho um pequeno site em um PC com Windows 10 Pro N com (por exemplo) ip público: 123.456.78
se eu digitar esse ip de qualquer lugar, o site abre bem.
Agora também comprei 2 nomes de domínio, por exemplo, www.somewebsiteOne.com
e www.somewebsiteTwo.org
em 2 vendedores de domínio diferentes. E depende de um serviço DNS que encaminha www.somewebsiteTwo.ddns.net
para 123.456.78
. Nos vendedores de domínio, posso encaminhar www.somewebsiteTwo.org
para www.somewebsiteTwo.ddns.net
. Minha intenção é substituir a dependência do servidor DNS pelo meu servidor DNS de código aberto auto-hospedado usando Technitium.
Para verificar se meu próprio servidor DNS está funcionando, eu:
- Abra o PowerShell em um computador diferente em uma rede diferente.
- digite: nslookup www.somewebsiteTwo.org 123.456.78
- O que de fato retorna o endereço IP 123.456.78
Problema
Agora, se eu tentar inserir o endereço IP desse servidor DNS em qualquer um dos 2 vendedores de domínio, serei obrigado a inserir:
- nome de anfitrião
- Endereço de IP
Onde para o nome do host eu posso inserir algo como www.somewebsiteTwo.ddns.net
(que é um servidor DNS que encaminha www.somewebsiteTwo.org
para 123.456.78
e para o endereço IP 123.456.78
. Depois de ligar para um dos dois, fui explicado que eles usam o nome do host e não o endereço IP para encontrar meu DNS público pessoal servidor, não o endereço IP.
Isso significa essencialmente que preciso de um servidor DNS para encaminhar algum nome de host do meu servidor DNS público pessoal para o endereço IP do meu servidor DNS. O que derrota minhas intenções. Portanto eu tenho o seguinte:
Pergunta
Como posso determinar e usar um nome de host funcional que se refira ao meu servidor DNS público pessoal em 123.456.78
?
Tentativas
- Tentei inserir o nome do host do meu pc, por exemplo, o que é retornado em cmd at command
hostname
. Mas isso não é considerado um nome de host válido. - Tentei entrar
123.456.78
, mas esse não é considerado um nome de host válido. - Tentei entrar
http://123.456.78/
mas não funciona. - Os endereços IP não funcionam como nome de host referente a um servidor DNS porque:
O nome de host a ser usado para um servidor DNS e ao registrar e usar um (sub)domínio DNS deve ser um nome de host DNS válido e totalmente qualificado, como por exemplo ns1.example.com. ou customer-5363.dsl-users.isp.example.net . O protocolo não permite um endereço IP. Se você quiser usar um registro DNS como ns1.example.com para registrar o domínio example.com, seu registrador precisará primeiro configurar o registro de cola correto
Responder1
Depois de ligar para um dos dois, fui explicado que eles usam o nome do host e não o endereço IP para encontrar meu servidor DNS público pessoal, não o endereço IP.
Isso significa essencialmente que preciso de um servidor DNS para encaminhar algum nome de host do meu servidor DNS público pessoal para o endereço IP do meu servidor DNS. O que derrota minhas intenções.
Isso não está totalmente correto.
É verdade que os registros NS, usados para delegações de domínio,apenaspegue nomes de host e não endereços brutos.
No entanto, você tem permissão para especificar um nome de host que esteja sob seu próprio domínio, e é por isso que existem campos de endereço IP ao lado: eles permitem que vocêdefiniro nome do host e usá-lo ao mesmo tempo. Na verdade, é a isso que a mensagem de suporte se refere quando menciona "registros de cola", que permitem esse tipo de 'loop'.
(Observe que você também deve adicionar exatamente as mesmas definições de nome de host em seu próprio servidor DNS – os registros cola no registrador são considerados uma cópia e os em seu servidor, a versão oficial.)
Por exemplo, quando você insere o nameserver ns1.somewebsite.com
, o registrador publica este registro DNS:
somewebsite.com. NS ns1.somewebsite.com.
Como o nome do host do servidor de nomes está no domínio que ele está hospedando, isso claramente não funcionaria como está, pois criaria um loop. Então vocêtambémprecisa inserir o endereço IP do servidor no campo correspondente, e isso permite ao registrador publicar um segundo registro DNS (o registro "cola"):
somewebsite.com. NS ns1.somewebsite.com.
ns1.somewebsite.com. A 12.34.56.78
Sempre que um resolvedor tentar consultar os servidores de nomes do seu domínio, seus endereços IP dos registros cola serão sempre anexados à mesma resposta, evitando o problema de loop.
Responder2
Na minha pergunta, o nome do host era apenas um conjunto arbitrário de caracteres, geralmente ns1
seguido ns2
por <website without the http://www.>
, por exemplo, se o seu site for swag.org
você pode criar ns1.swag.org
nas configurações do seu próprio servidor DNS e depois inserir o "nome do host" ns1.swag.org
nos seus registros. Você (geralmente) precisa de 2 servidores DNS, então você cria outro "nome de host" ns2.swag.org
e também o insere. Depois, no IP, basta inserir o endereço IP público do seu pc que hospeda o servidor DNS (que você também inseriu na ns1.swag.org
entrada nas configurações do Technitium/DNS.
Abaixo está um exemplo de como fazer tudo isso com fotos.
Configurações verificadas para hospedar seu próprio servidor DNS:
- Resumindo, coloque essas configurações no painel de configurações do technitium (substitua pelo
your ip
endereço IP público do seu computador/host/dispositivo em que você hospeda seu site. (OA
ns1.<yourwebsite>
`é um registro de cola que informa ao computador que vincula as pessoas ao seu website , "quando você está procurando por este nome de host/site, você pode olhar para este ip para encontrar o nome de host/site", (mas então ele entraria em um loop infinito então você diz ok, pare aqui, você encontrou o site em este IP.)
- Em seguida, crie o registro DNS personalizado em seu registrador de domínio. Isso é feito de forma diferente para cada vendedor de domínio. Este é o exemplo para namecheap. Resumindo, você deseja digitar o nome do host do seu servidor DNS (se você inserir
ns1.<yourwebsite adres>
o technitium, digite-o, junto com o endereço IP público do seu computador.
- Você pode inspecionar se o registro do servidor DNS/cola se o ip foi inserido corretamente pesquisando:
ns1
ouns2
(se você digitouns1.<yourwebsite>
:
- Não se esqueça de selecionar também seu próprio DNS personalizado nas configurações do site, caso contrário, você configurou tudo corretamente em seu servidor DNS local e disse ao registrador: ei, DNS personalizado, veja este IP para meu próprio servidor DNS, mas depois em no final o registrador ainda procura em seu próprio servidor DNS padrão, (onde não encontra seu ip, você precisa pagar por isso).
Notas
- Essas configurações ainda não permitem
https://www.yourwebsite.something
. Para isso você precisa de um certificado SSL, você pode obter um gratuitamente no openssl e o Technitium realmente suporta https. No entanto, ainda não implementei isso. - Um conjunto de instruções mais detalhado e elaborado é encontrado em:https://github.com/at-0/DnsServerjunto com o servidor DNS de código aberto Technitium, feito por outra pessoa, eu apenas bifurquei e adicionei instruções.