Я использую Ubuntu 14.04 и у меня установлен avahi.
Я могу правильно разрешить имена хостов .local, но не могу найти разрешенные локальные IP-адреса канала. Например:
$ ping thebox.local
PING thebox.local (169.254.197.130) 56(84) bytes of data.
[...]
(no answer)
Если я проверяю таблицы маршрутизации, я вижу, что нет записей для локальной сети связи:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.100 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
Не должен ли менеджер сети (или avahi) автоматически создать запись для 169.254.xx там?
После изучения далее этого, я нашел, что маршрут для 169.254.x.x действительно автоматически создается ( /etc/avahi/avahi-autoipd.action
конкретно), но только когда сбои DHCP и локальный для ссылки IP присвоен машине. Этот маршрут также автоматически удален, если IP-адрес позже получен через DHCP.
Я знал, что этот маршрут был создан автоматически, но я думал, что он всегда создавался. Теперь я вижу, что это только создается, когда локальный для ссылки IP-адрес присвоен.
Обновление: Интересно, почему этот маршрут не создается по умолчанию. Это позволило бы связаться с устройствами, которые только имеют локальный для ссылки адрес, даже если Ubuntu не использует сам локальный для ссылки адрес. Это хорошо описано в этой технической статье от Apple.