O que é um rótulo de nome de host válido?

1

Eu configurei meu nome de host para um número, em que a execução de hostname fornece:

6592

Mas quando executo ping 6592 , obtenho:

connect: Invalid argument

Eu verifiquei a página da Wikipedia , e ele diz que tal nome de host é permitido (IIUC). O que estou perdendo?

    
por Tshepang 25.02.2011 / 12:02

2 respostas

13

O que o RFC diz é realmente imaterial aqui. O RFC especifica o que acontece no nível do DNS, mas isso é discutível se o ping não fizer uma consulta ao DNS em primeiro lugar. Quando o ping recebe um argumento todo numérico, ele o interpreta como um endereço IP.

Endereços IPv4 são tecnicamente números de 32 bits. Eles são quase sempre escritos em notação ponto-decimal , os chamados “quadriculados pontilhados” como 127.0.0.1 . Mas eles também podem ser escritos como um único número em decimal como 2130706433 ou em hexadecimal como 0x7f000001 .

$ ping 2130706433    # 127*2^24 + 1
PING 2130706433 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.027 ms
$ ping 0.0.25.192
connect: Invalid argument

Os endereços no intervalo 0.0.0.0/8 são reservados para uso como endereços de origem em transmissões. Você não pode enviar um pacote para eles, e é por isso que connect(2) retorna EINVAL .

Muitos programas, incluindo a maioria das implementações de ping, não têm opção para forçar uma pesquisa de DNS. Você teria problemas semelhantes se fizesse uma rede local com subdomínios totalmente numéricos e terminasse com um nome de host válido que se parecesse com um quadrilátero pontilhado.

Se a sua rede local tiver um nome, ping 6592.mynetwork funcionará. Mas é provável que você tenha problemas semelhantes, pois, mais cedo ou mais tarde, você vai querer omitir o nome do domínio. Basta ir com o fluxo e incluir uma carta, de preferência no início.

    
por 26.02.2011 / 00:18
6

Bem, não exatamente ... O que a Wikipedia e os RFCs dizem é que desde o original RFC 952 , que não permitia valores numéricos, agora você pode tê-los. (Por RFC 1123 ) Você ainda não pode ter all , embora qual é o seu problema.

Seu '6952' não é um nome de host válido, enquanto '6952x' deve estar bem. Mas, RFCs de lado, eu tive problemas no último ano com os principais números. Eu os evitarei, a menos que haja uma razão convincente para não fazê-lo.

    
por 25.02.2011 / 12:58