Por que a diferença entre os endereços de rede informados pelo hostname e pelo ping?

6

Eu tentei hostname e ping em uma máquina em cluster, com diferentes saídas. Eu estou querendo saber qual é a diferença entre os dois? Por exemplo, na mesma máquina, hostname outputs node4.XXX e

ping -c 1 $(hostname)

saídas de pc333.XXX .

    
por Richard 25.09.2012 / 17:02

1 resposta

10

O comando hostname gera o hostname do sistema a partir da configuração do hostname do sistema local (pode ser / etc / hostname ou / proc / sys / kernel / hostname ou outro dependendo do sistema operacional).

O comando ping -c 1 <hostname> executará uma pesquisa através do resolvedor da libc (que pode ou não ser DNS. ex., / etc / hosts não é DNS) do <hostname> especificado e, em seguida, realizar uma pesquisa DNS reversa do endereço IP retornado e relatar esse nome na saída do comando ping.

Como um exemplo concreto, suponha que o hostname do sistema local seja fred conforme especificado em /etc/hostname . O comando hostname retornará 'fred' . O comando ping -c 1 fred executará uma pesquisa de DNS de fred (apenas fred ou fred totalmente qualificado, como fred.domain.com se o domínio padrão for domain.com ). Suponha que o DNS retorne o endereço IP x.x.x.x . ping executará uma pesquisa de DNS inversa do endereço IP x.x.x.x , se nenhum nome for retornado ping produzirá o endereço IP x.x.x.x , caso contrário ping produzirá o nome que foi retornado da pesquisa inversa que poderia seja um nome diferente, como ethel.domain.com .

    
por 25.09.2012 / 17:30