J'utilise avahi pour trouver des machines sur le réseau local. Il a agi récemment, obligeant une machine à distribuer la mauvaise adresse IP. Je me suis connecté à une autre machine pour déboguer le problème.

La confirmation de l'adresse IP actuellement résolue est erronée :

$ getent hosts evan-woodtower.local
172.17.0.1   evan-woodtower.local

Redémarrer le démon avahi semble résoudre le problème :

$ sudo avahi-daemon -k
$ getent hosts evan-woodtower.local
10.88.111.9   evan-woodtower.local

Mais seulement pendant quelques secondes, puis il revient à l'ancienne adresse IP erronée

$ getent hosts evan-woodtower.local
172.17.0.1   evan-woodtower.local

Que se passe-t-il? J'ai testé sur plusieurs machines de mon réseau, cela semble être la seule recherche qui se passe mal. Toutes les machines auxquelles j'ai accédé semblent avoir le même problème avec cet hôte, et uniquement cet hôte.

answer

Donc, cela s'est avéré être un problème de avahi-daemonchangement de l'interface réseau attachée au .localnom. Je m'attendais à ce qu'il utilise br0, mais il passait parfois à une interface virtuelle docker à la place.

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:8a:98:79:93  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

La solution était d'éditer /etc/avahi/avahi-daemon.confpour forcer avahi à ne regarder que l' br0interface :

 allow-interfaces=br0