Можно использовать ResSwitch
от этой страницы: http://www.codeproject.com/KB/tips/resswitch.aspx.
Вы можете настроить Avahi для публикации произвольных имен хостов, используя / etc / avahi / hosts
, но вам нужно указать точный IP-адрес для сопоставления имя хоста в. Похоже, что нет способа опубликовать несколько имен хостов для IP-адресов, обнаруженных Avahi. Вы можете написать сценарий запуска, который заполняет / etc / avahi / hosts
после обнаружения IP-адреса виртуальной машины.
Вот немного systemd сервиса, который позволяет Вам указать псевдоним для своей текущей машины как test.local
в дополнение к hostname.local
(предположение, что Вашу машину называют hostname
).
Первая установка avahi-utils, если Вы уже не имеете:
sudo apt-get install avahi-utils
Затем помещает следующее в /etc/systemd/system/avahi-alias@.service
[Unit]
Description=Publish %I as alias for %H.local via mdns
[Service]
Type=simple
ExecStart=/bin/bash -c "/usr/bin/avahi-publish -a -R %I $(avahi-resolve -4 -n %H.local | cut -f 2)"
[Install]
WantedBy=multi-user.target
(Эти avahi-resolve
, используется для получения текущего IP-адреса, который уже публикуется для имени хоста)
Затем для предоставления доступа к текущей машине доступной как [1 110] в дополнение к ее току hostname.local
, Вы включили бы сервис с:
sudo systemctl enable --now avahi-alias@test.local.service
можно включить несколько псевдонимов путем запуска многочисленных услуг, например, avahi-alias@test1.local.service
и avahi-alias@test2.local.service
, который использует функции мультиэкземпляра systemd:
sudo systemctl enable --now avahi-alias@test1.local.service
sudo systemctl enable --now avahi-alias@test2.local.service
Естественно можно отключить каждый псевдоним независимо также с:
sudo systemctl disable --now avahi-alias@test2.local.service
Обладают!
Почему не только настраивает Ваш сервер человечности, чтобы быть DNS и dhcp сервером и не волноваться о zeroconf? Во-первых, настройте dhcp сервер для выделения адресов в некотором диапазоне, достаточном для потребностей. Затем настройте передающий сервер имен на машине. Эти инструкции довольно подобны тому, что Вы хотите сделать. В основном Вы позволяете dhcp серверу изменять свой сервер DNS на лету. Затем, когда другие виртуальные машины в сети подходят, они отправляют свои предварительно сконфигурированные имена к dhcp серверу. dhcp сервер в свою очередь определяет те имена в DNS для Вашего локального домена.
Другая очень простая опция состоит в том, чтобы настроить что-то как DNSmasq. DNSmasq может считать/etc/hosts файл сервера и подать те записи с помощью DNS к другим машинам в Вашей сети. Таким образом в этом сценарии Вы поддержали бы большой файл hosts на сервере всех имен VM, и машина будет снова автоматически служить тем именам по DNS. Вы все еще хотели бы использовать dhcp в этом случае, таким образом, VMs мог получить адреса в Вашей сети автоматически, но это - более простой подход, чем конфигурирование BIND для DNS.
Мое подозрение - то, что dhcp + dnsmasq будет, вероятно, работать на Вас, если Вы не попытаетесь выполнить крупные числа VMs.
Раньше я использовал небольшой проект с именем avahi-aliases
, его нет в репозитории debian, и, похоже, он не поддерживается. Также на github здесь https://github.com/airtonix/avahi-aliases