É possível que dois nomes de host compartilhem o mesmo endereço IP?

35

Alguém pode explicar se é possível que dois nomes de host compartilhem o mesmo endereço IP?

E se um nome de host representar mais de um endereço IP, isso também é possível? Por quê?

brim
fonte
18
Quer um exemplo do mundo real onde isso acontece? Faça ping serverfault.come superuser.comobserve o endereço IP retornado para ambos.
Scott Chamberlain
1
Todos os nomes de host já compartilham o endereço 127.0.0.1, espécie de ...
jlliagre

Respostas:

45

Também é possível atribuir mais de um endereço IP a um nome de host:

rr.example.com.        A      192.0.2.12
rr.example.com.        A      192.0.2.23
rr.example.com.        A      192.0.2.34
rr.example.com.        A      192.0.2.45

Quando você consulta um servidor DNS, rr.example.comvocê recebe de volta uma lista de endereços IP. Você pode optar por se conectar a um deles. Se a primeira tentativa de conexão for recusada ativamente, tente a próxima.

A maioria dos navegadores seguirá esse fluxo, desde que os terminais recusem ativamente a conectividade TCP. Se um limite de tempo limite exceder o tempo limite, o recurso será tratado como inacessível, mesmo que nem todos os IPs tenham sido tentados

Como a maioria dos aplicativos (navegadores incluídos) geralmente está interessada apenas em 1 ponto de extremidade de IP por vez e apenas escolhe a primeira resposta disponível, corre o risco de distorcer a carga entre os servidores de destino para que o primeiro servidor obtenha todo o tráfego enquanto os outros podem estar ociosos .

Para contornar isso, a maioria dos servidores DNS oferece o que é conhecido como configuração Round Robin, fazendo com que o servidor alterne a ordem na qual os registros iguais são retornados. Antes que os balanceadores de carga fossem comuns, era uma maneira eficiente de equilibrar a carga e implementar de alguma maneira a tolerância a falhas nos sistemas de rede.

Mathias R. Jessen
fonte
7
A pergunta não está fazendo o inverso disso?
precisa saber é o seguinte
2
Existem duas perguntas. @Sirch já cobriu a primeira parte muito boa
Mathias R. Jessen
Oh, entendi, pulei a descrição. Obrigado pela resposta btw!
precisa saber é o seguinte
1
Os navegadores / pilhas de rede geralmente tentam o primeiro endereço recebido? Ou eles tentarão um aleatório? Faria sentido aleatoriamente a ordem em que os IPs são retornados pelo servidor DNS para tentar equilibrar a carga?
21813 Tom Marthenal
Depende da implementação específica do cliente. A maioria dos servidores seleciona aleatoriamente a ordem dos endereços IP retornados (esse é o comportamento conhecido como "round-robin"). Questões interessantes na verdade, eu acho que vou expandir a resposta um pouco
Mathias R. Jessen
35

Sim, é possível que vários nomes de host usem o mesmo endereço IP, a melhor prática é usar um registro CNAME para apontar para o registro A

bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

Anote todas as paradas completas.

Ter um nome de host para representar vários endereços IP é um pouco mais complicado. Se estamos falando sobre registros MX, esta solução já existe no DNS usando números de prioridade; se você deseja que ele represente vários registros A, é melhor usar um balanceador de carga, o HAProxy, por exemplo.

Sirch
fonte
6
Vale a pena notar, e eu vi na Internet real, cadeias de CNAMEs que quebraram os resolvedores de nomes. Porque um CNAME pode apontar para outro CNAME. Até os loops CNAME são possíveis.
PP.
2
RFC 1912 2.4 ietf.org/rfc/rfc1912.txt
dmourati
Também vale ressaltar que Aregistros contendo o mesmo IP podem aparecer em zonas diferentes, por exemplo, x.foo.com. A 1.2.3.4e y.bar.com. A 1.2.3.4.
Blrfl
Esta resposta esquece de informar sobre Aregistros curinga , que também levam a vários nomes de host no mesmo IP.
Izzy
Ei Sirch, qual é o problema com os paradas?
JonoRR
6

Além da alteração de CNAME, como outras respostas sugeridas, você também precisa lidar com a lógica no servidor de hospedagem. Eu uso o Apache e o configurei como:

<VirtualHost 1.2.3.4:80>
    ServerName  www.abc.com
    ServerAlias abc.com
    ...
</VirtualHost>

<VirtualHost 1.2.3.4:80>
    ServerName  www.xyz.com
    ServerAlias xyz.com
    ...
</VirtualHost>

Tenho certeza que outros softwares de servidor http têm coisas semelhantes.

Yandong Liu
fonte
2

Você precisa deixar claro o que você quer dizer com dois nomes de host. Se você quer dizer duas caixas físicas com o mesmo endereço IP, a resposta é normalmente não. Um caso em que você faria seria se serverA e serverB estivessem trabalhando como um cluster passivo ativo, então cada servidor teria dois endereços por peça. Um seria um endereço IP dedicado a esse servidor e o segundo seria um endereço compartilhado entre os servidores, mas apenas o servidor ativo ouviria esse endereço compartilhado. O servidor passivo só começa a escutar no endereço compartilhado quando o servidor ativo fica inativo.

Keith Wolters
fonte
2

Também é importante notar que no IPv6 você pode atribuir o mesmo IP a dois ou mais hosts e a rede fará o balanceamento de carga e o failover para você (se um não estiver acessível, tente o outro). Ambos são considerados como um ponto final lógico e não há DNS envolvido.

Esse recurso é conhecido como Anycast .

scravy
fonte
1

IP múltiplo para um mesmo domínio:

  • Sim, é possível e muito comum: se um servidor (com ip A) cair, você poderá se conectar ao próximo IP do registro DNS e acessar outro servidor (com ip B) para obter o serviço.

Domínio múltiplo para um mesmo IP:

Você precisa responder à próxima pergunta: Todos os domínios estão fornecendo o mesmo serviço?

  • Se sim: também é uma configuração muito comum: muitas empresas compram muitos domínios com diferentes domínios principais do país: xxx.com, xxx.net, xxx.org, etc. E todas elas apontam para o mesmo serviço, ou seja, , para a mesma lista de IP.
  • Se não: é possível, mas não é comum e não é recomendado. Algumas empresas de hospedagem que permitem apenas o serviço HTTP usam NAT / Proxy para poupar IP. Mas é claro, isso significa um Proxy que "entende" o HTTP para identificar o serviço de destino.
Adrian Maire
fonte
0

Muitos servidores de telecomunicações (como HSS e PCRF) usam transporte SCTP e, portanto, esses servidores têm vários endereços IP. Esses endereços são usados ​​para hospedagem múltipla (suportada pelo SCTP), fornecendo conexão com redundância e failover.

Nissar Ali
fonte