Por que devo usar um FQDN em vez do endereço IP do servidor?

29

No meu trabalho com servidores, me deparei com arquivos de configuração onde você deve inserir o endereço em um servidor externo. Vi alguns usarem o endereço IP do servidor diretamente, mas ouvi muitas recomendações para usar um nome de domínio totalmente qualificado (FQDN) de nome de host . Por que devo usar um nome de host em vez do endereço IP direto?

Porque se você usar um nome de host, precisará de um servidor DNS local que vincule cada nome de host a um endereço IP. Qual é a desvantagem entre usar um nome de host ou um endereço IP?

Emil Rowland
fonte
5
se você tiver IP dinâmico, provavelmente será mais fácil alterar o registro DNS. e por que um servidor DNS local? Por que não fazer com que todas as máquinas tenham IP publicamente resolvíveis? Outra desvantagem dos IPs é que, mesmo que não sejam dinâmicos, provavelmente ainda dependem da localização física, dificultando a migração para um local diferente. basicamente, parece que você está perguntando por que o DNS foi inventado. esta pergunta foi respondida muitas vezes em outros lugares.
Janus Troelsen
11
Sempre foi uma recomendação (em RFCs, por exemplo) que, no nível do aplicativo , apenas se lida com nomes de host. No entanto, alguns aplicativos nem sequer funcionam a menos que com IP. No entanto, eu mesmo sou culpado de muitas vezes entrar em contato com meus dispositivos por IP em vez do nome do host - mas que mau hábito certamente vai acabar assim que temos totalmente migraram para IPv6 :)
Hagen von Eitzen
Como é claro, o servidor externo estará protegendo todas as comunicações com SSL, e os certificados SSL serão assinados para o FQDN, e seu aplicativo não poderá verificar o servidor certo se você usar o endereço IP. Direita? : |
TessellatingHeckler
11
@HagenvonEitzen Com certeza você nunca vai digitar ::1? :-)
um CVn

Respostas:

54

O uso de um endereço IP garante que você não confie em um servidor DNS. Ele também tem o benefício de impedir ataques por meio de falsificação de DNS.

Usar um FQDN em vez de um endereço IP significa que, se você migrar seu serviço para um servidor com um endereço IP diferente, poderá alterar o registro no DNS, em vez de tentar encontrar em qualquer lugar que o endereço IP seja usado .

Isso é especialmente útil quando você tem muitos servidores e serviços configurados por várias pessoas.

Joshua Griffiths
fonte
11
Especialmente se o conhecimento desse endereço IP também for externo, como se clientes, parceiros ou fornecedores o usassem. Imagine se, em vez de stackoverflow.com, todos nós acessássemos um IP que conhecíamos como stackoverflow.com e eles precisassem mudar o IP? Como eles diriam a todos os usuários possíveis do site que o IP mudou? Daí nomes.
Brandon
@Brandon, seria o mesmo que agora eles decidissem mudar de stackoverflow.com para heapunderflow.com O benefício original dos nomes de domínio é que os humanos se lembrem em stackoverflow.comvez de 151.101.1.69. É claro que hoje em dia isso também permite hospedagem virtual, subdomínios relacionados aos pais e outros benefícios que surgiram deles.
Ángel
2
Eu acho que o núcleo dessa resposta é que uma organização possui seu FQDN; mas pode não possuir seu endereço IP.
Pieter Geerkens
11
Tente executar HTTPS / Kerberos sobre IP vs FQDN.
Aron
Esse é literalmente o objetivo do DNS.
Lightness Races com Monica
40

DNS não é apenas FQDN = IP

O importante sobre o DNS é que ele fornece mais do que apenas registros A (nome do host = IP). O DNS fornece diferentes tipos de registros, como MX, CNAME, TXT, etc ... que podem ser exigidos por alguns softwares às vezes. Ele permite vários registros de endereços, registros IPv4 + IPv6, endereços dinâmicos, balanceamento de carga, resolução baseada em localização geográfica, failover / redundância, etc. .4.110? O que é isso?) Permite alterar essas configurações / registros e selecioná-los pelos clientes sem fazer alterações em todos os clientes. O DNS pode fazer coisas complexas.

Muitas vezes, há uma clara vantagem de usar o DNS em um endereço IP direto.

FQDNs podem ser um requisito

Algumas coisas, como servidores da Web que usam hospedagem virtual baseada em nome ou balanceadores de carga, etc ... exigem absolutamente que você os endereça por meio de um FQDN ou nome de host. Eles determinam como responder à sua solicitação com base no FQDN ao qual você está se conectando. A conexão via IP pode não funcionar.

Os certificados SSL são emitidos com base em nomes de domínio; portanto, talvez você não consiga usar alguns serviços habilitados para SSL (corretamente) sem DNS.

Esta é uma consulta de escavação para o domínio google.com, para dar uma idéia da complexidade do DNS

google.com. 299 EM A 172.217.0.174
google.com. 299 IN AAAA 2607: f8b0: 400b: 807 :: 200e
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 59 EM SOA ns2.google.com. dns-admin.google.com. 126990955 900 900 1800 60
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 NO NS ns2.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 21599 NO NS ns1.google.com.
google.com. 3599 IN TXT "v = spf1 inclui: _spf.google.com ~ all"
google.com. 21599 IN CAA 0 issue "symantec.com"
google.com. 21599 NO NS ns3.google.com.
google.com. 21599 NO NS ns4.google.com.

Yahoo responde com 3 endereços IP

$ host -ta yahoo.ca
yahoo.ca tem endereço 77.238.184.24
yahoo.ca tem endereço 74.6.50.24
yahoo.ca tem endereço 98.137.236.24

Vantagem de usar um endereço IP

Para mim, geralmente é quando o DNS pode atrapalhar de alguma forma ou não está disponível. Geralmente, eu usaria o DNS para a maioria das coisas.

Um exemplo de onde um endereço IP poderia ser melhor seria quando você tiver duas máquinas com um link direto entre elas (sem comutador) com endereços de rede privados (por exemplo, 192.168.1.1 e 192.168.1.2) e eles estiverem usando-o para comunicações de alta disponibilidade ou DRBD ou outro serviço muito específico. Nesse caso, configurar coisas no DNS provavelmente não faz sentido. Não é necessário, acrescentaria complexidade, problemas de desempenho e poderia introduzir um ponto de falha.

Outro exemplo é o roteamento. As tabelas de roteamento registram endereços IP por vários motivos.

Outro é referenciar servidores de nomes (como em /etc/resolv.conf). Como sem um servidor de nomes, você não pode resolver nada.

Ryan Babchishin
fonte
Essa é uma ótima resposta, mas provavelmente também deve dizer algo sobre os serviços vhosted; O IP⟷FQDN é um mapeamento muitos para muitos, não muitos para um.
fofo
Obrigado e concordou. O DNS é muito útil para hospedagem virtual baseada em nome, se é a isso que você está se referindo.
Ryan Babchishin
Sim, é a isso que eu estava me referindo.
fofo
Ótima resposta que realmente acerta o DNS - marcando para referência futura. Uma queixa secundária que tenho é o seu comentário "As tabelas de roteamento registram endereços IP por vários motivos". Quais são os vários motivos a que você se refere? As tabelas de roteamento não têm escolha a não ser usar IPs porque o roteamento acontece na camada da Internet, enquanto o DNS usa a camada de aplicativo e, portanto, é necessariamente dependente do roteamento.
precisa saber é o seguinte
@gardenhead Obrigado. É isso mesmo sobre roteamento, eu simplesmente não queria entrar nele. Perdoe minha escolha de palavras.
Ryan Babchishin