Como alias um nome de host?

5

É possível manter um alias de rede - sem especificar o endereço IP no arquivo hosts? Por exemplo, eu tenho abcd.efgh.com mas quer abcd -> abcd.efgh.com de modo a ping e ssh funciona como normalmente faria.

Eu quero que ele funcione com IP dinâmico em abcd.efgh.com, é por isso que não quero declarar o endereço IP explicitamente.

Jonas Byström
fonte

Respostas:

6

Um pouco menos convienent maneira é configurar aliases para ambos ping e ssh, por exemplo:

alias pingfoo="ping foohost.domain.tld"

O OpenSSH suporta a adição de apelidos hostname (e muitas outras opções) ~/.ssh/config:

Host foo
    Hostname foohost.domain.tld
    # You can also add User, Port, every possible ssh(1) option.
grawity
fonte
Excelente; Eu posso fazer sem ping agora que penso nisso, 99,9% do meu uso é ssh.
Jonas Byström
3

Com dnsmasq opção de --cname=<cname>,<target> você pode fazer um CNAME que indica que <cname> é na verdade <target>. Observe que isso funciona somente se o nome DNS de <target> é conhecido pelo dnsmasq (tanto no arquivo hosts quanto no DHCP).

Se o dnsmasq não funcionar, Não consolidado é um resolvedor de DNS que também suporta destinos desconhecidos em uma situação semelhante.

Jawa
fonte
Isso é no DNS, não no arquivo hosts.
mpez0
@ mpez0: Ele ainda funcionaria (o dnsmasq deve ser executado em uma LAN ou em um computador pessoal, como um resolvedor de DNS em cache)
grawity
2

Se o seu sistema operacional usa o GNU glibc , você pode usar o seu $HOSTALIASES característica.

Na página de manual do gethostbyname(3):

DESCRIPTION

       [etc etc etc] If name doesn't end in a dot and the environment variable
       HOSTALIASES is set, the alias file pointed to by HOSTALIASES will first
       be searched for name (see hostname(7) for the file format). The current
       domain and its parents are searched unless name ends in a dot.

Isso funciona tanto com gethostbyname() e o mais novo getaddrinfo(); no entanto, não parece afetar ping em absoluto...

grawity
fonte
Infelizmente não usando libc.
Jonas Byström
Não afeta o ping porque o ping tem setuid set e o HOSTALIASES só funciona com executáveis ​​que não possuem este flag. Se você já é root funciona, mas não quando se usa ping como usuário normal.
Boris