понедельник, 14 марта 2011 г.

FreeBSD+Zeroconf

Установка и запуск

Ставим из портов необходимое ПО:
# cd /usr/ports/net/avahi && make install clean
# cd /usr/ports/dns/nss_mdns && make install clean

Включаем в rc.conf нужные демоны:
dbus_enable="YES"
avahi_daemon_enable="YES"

Запускаем демонов на орбиту:
# /usr/local/etc/rc.d/dbus start
# /usr/local/etc/rc.d/avahi-daemon start

Правим /etc/nsswitch.conf для поиска ДНС-адресов через Zeroconf:
строку
hosts: files dns
меняем на
hosts: files dns mdns

Плюшки — анонсирование сервисов в Zeroconf

Создаём файлы под каждый анонсируемый сервис:

SSH

/usr/local/etc/avahi/services/ssh.service:
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_ssh._tcp</type>
    <port>22</port>
  </service>
</service-group>

NFS

/usr/local/etc/avahi/services/nfs.service:
<service-group>
  <name replace-wildcards="yes">%h NFS</name>
  <service>
    <type>_nfs._tcp</type>
    <port>2049</port>
    <txt-record>path=/path/to/nfs/shared/folder</txt-record>
  </service>
</service-group>

HTTP

В моём случае — веб-морда к торрент-клиенту transmission, висящая на порту 9091.
/usr/local/etc/avahi/services/transmission.service:
<service-group>
  <name replace-wildcards="yes">%h transmission</name>
  <service>
    <type>_http._tcp</type>
    <port>9091</port>
  </service>
</service-group>