Как разрешить Link Local hosts без ввода.local
Так что в Windows, если я набрал ping familyroom, это скажет мне, что мой компьютер в семейной комнате 192.168.1.61. (DHCP назначил адрес, которого нет ни в одном DNS)
У меня установлена новая версия Ubuntu 14.04 Trusty Tahr LTS, и если я попытаюсь ping familyroomПолучаю неизвестный хост. Но если я попытаюсь ping familyroom.localЯ получаю успешный ответ с того же IP-адреса.
теперь я понимаю, что могу просто использовать полное доменное имя, включая домен.local, но я ленивый, и я пытаюсь заставить Ubuntu 14.04 работать так же, как Windows 7 для меня, и это всего лишь еще один разборчивая вещь, которая раздражает меня.
В качестве теста я добавил search local в новый файл /etc/resolvconf/resolve.conf.d/tail и resolvconf -u, но я получаю тот же результат. Я предполагаю, что это связано с тем, что "zeroconf" выполняет разрешение имен для.local, но я не знаю, куда идти дальше, чтобы это исправить.
РЕДАКТИРОВАТЬ: Основываясь на помощи @heemal, я теперь понимаю, что разрешение Link Local исходит от Avahi, поэтому я сосредоточен на попытках получить разрешение имен Avahi для поиска хостов с короткими именами или найти альтернативу Avahi.
В файле /etc/nsswitch.conf я попытался добавить полную функциональность MDNS Avahi для DNS-адресов, не найденных.
Original hosts definition: `hosts: files mdns4_minimal [NOTFOUND=return] dns`
Unchanged results using: `hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4`
Теперь в Windows я вижу, что это разрешение Link Local приходит через IPv6, и мне интересно, есть ли улучшения в спецификации для IPv6, которые могли бы помочь мне здесь.
1 ответ
Если вы добавите что-то на /etc/resolvconf/resolve.conf.d/{head, base, tail} тогда разрешение имени будет выполняться resolvconfне avahi-daemon следовательно, просто добавив search local не разрешает имя.
Чтобы получить search domain работая, вам нужно настроить DNS-сервер, который будет отвечать на ваши запросы после того, как доменное имя будет правильно добавлено вашей системой.
Другой вариант - добавить записи в ваш /etc/hosts файл как:
familyroom 192.168.1.4
Теперь, если вы ping familyroom вы получите ответ.
Безусловно, самый ленивый вариант - добавить псевдоним:
alias familyroom='ping familyroom.local'
в ~/.bashrc файл. Сейчас source ~/.bashrc и вы можете просто напечатать familyroom отправить эхо-запрос ICMP на устройство.