Eu resolvi esse problema com dnsmasq
. Seguindo o exemplo da pergunta, eis o que fiz depois de configurar o dnsmasq
para funcionar como um cache DNS no meu laptop:
-
Crie um diretório
/etc/hosts.d
-
Coloque os seguintes scripts em
/etc/netctl/X/
e torne-os executáveis
#!/bin/sh
# /etc/netctl/X/X_local.sh
echo 'A X' > /etc/hosts.d/X
chmod 744 /etc/hosts.d/X
#!/bin/sh
# /etc/netctl/X/X_remote.sh
echo 'B X' > /etc/hosts.d/X
chmod 744 /etc/hosts.d/X
- Adicione as seguintes linhas ao perfil de rede
/etc/netctl/Foo
ExecUpPost=/etc/netctl/X/X_local.sh
ExecDownPre=/etc/netctl/X/X_remote.sh
- Anexar
addn-hosts=/etc/hosts.d
a/etc/dnsmasq.conf
Isso funciona porque a opção addn-hosts
instrui dnsmasq
a procurar no diretório /etc/hosts.d
por associações adicionais de nome de host.