Difference between revisions of "Zeroconf"
(→Výsledky) |
(→Výsledky) |
||
Line 138: | Line 138: | ||
Publikované služby se dají prohlédnout v mnoha nástrojích, já uvedu výpis utility z balíčku Avahi. | Publikované služby se dají prohlédnout v mnoha nástrojích, já uvedu výpis utility z balíčku Avahi. | ||
+ | |||
+ | [[Image:Avahi-discovery.jpg]] | ||
==Odkazy== | ==Odkazy== | ||
[[Aplikace v praxi - Bonjour]] | [[Aplikace v praxi - Bonjour]] |
Revision as of 03:53, 29 September 2006
Contents
Úvod
Zeroconf, nebo také Zero Configuration Networking je soubor technik k automatické konfiguraci IP sítě bez nutnosti nastavování speciálních serverů (DHCP, DNS). Také je znám jako Automatic Private IP Addressing, AIPA. Toto umožňuje uživatelům snadné připojení počítačů, síťových tiskáren a dalších bez nutnosti znalostí IP síťování. Bez Zeroconfu, nebo podobných, musí uživatelé nastavit každý síťový prvek individuálně v závislosti na topologii sítě, apod.
IPv4 Link-Local Addressing
Multicast DNS
DNS Service Discovery
Implementace v různých systémech
Linux
Mac OS
Windows
Avahi
Avahi je systém objevování služeb na lokální síti. Je založeno hlavně na flexmdns implementaci mDNS od Lennarta Poetteringa, který zastavil vývoj svého projektu ve prospěch avahi. Tento software je možno stánhout ze stránek projektu.
Instalace
Avahi jsem instaloval ze zdrojových kódů na systému SuSE Linux 10.0. Je k dispozici standardní konfigurační script configure
. Následující příkaz nakonfiguruje zdrojový kód:
./configure --prefix=/usr/local --disable-qt4 --disable-python --disable-mono
Musel jsem zakázat některé možnosti, protože SuSE 10.0 nemá potřebné knihovny.
Potom už standardně:
make
make install
ldconfig
A musí se povolit v D-BUS daemonovi:
ln -s /usr/local/etc/dbus-1/system.d/avahi-dbus.conf /etc/dbus-1/system.d/
Dále je potřeba mít následující systémové uživatele:
avahi avahi-autoip
v příslušných skupinách.
Před samotným spuštěním je třeba restartovat D-BUS daemona!
Konfigurace
Uvedu ukázkové nastavení, které používám. Mám naprosto jednoduchou topologii sítě: server - notebook. K serveru je připojena tiskárna (která se tváří jako síťová) a běží na něm FTP server. Ukážu, jak se dají publikovat tyto služby.
Nejdříve je nutné nastavit avahi-daemona, který je zodpovědný za veškerou komunikaci mDNS na každém stroji. Řekneme mu, které služby má ohlásit v lokální síti a pokud je zvolený stroj i jako brána do internetu, dá se nastavit, aby přeposílal adresy "klasických" DNS serverů ostatním pomocí mDNS. Bohužel zatím není možné použít pouze balíček Avahi v situaci, kdy se chcete připojít k síti s bránou do internetu, je nutné nastavení adresy implicitní brány na každém uzlu jiným způsobem (route add default gw 169.254.1.1
), což znamená, že brána musí mít statickou adresu.
/usr/local/etc/avahi/avahi-daemon.conf
[server] host-name=hofos-server domain-name=local #browse-domains= use-ipv4=yes use-ipv6=no check-response-ttl=no use-iff-running=yes enable-dbus=yes disallow-other-stacks=yes #allow-point-to-point=no [wide-area] enable-wide-area=yes [publish] disable-publishing=no disable-user-service-publishing=no add-service-cookie=no publish-addresses=yes publish-hinfo=yes publish-workstation=yes publish-domain=yes #publish-dns-servers= publish-resolv-conf-dns-servers=yes [reflector] enable-reflector=no reflect-ipv=no [rlimits] #rlimit-as= rlimit-core=0 rlimit-data=4194304 rlimit-fsize=0 rlimit-nofile=30 rlimit-stack=4194304 rlimit-nproc=3
V případě stanic, které nejou bránou do internetu, obvykle není potřeba nastavovat publikování DNS serverů. V tomto konkétním případě se publikují klasické DNS servery, které jsou nastaveny v /etc/resolve.conf
souboru při připojení k poskytovateli, což je příjemné, protože se nemusí nastavovat napevno.
Každá služba, která má být publikována, je pak definována ve zvláštním souboru XML, kde se popíše veřejné jméno, typ a port, na kterém běží. Jako ukázka poslouží nastavení služby jako síťové tiskárny:
.../etc/avahi/services/printer.service
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">Tiskarna HP LaserJet 4L na %h</name> <service> <type>_ipp._tcp</type> <port>631</port> </service> </service-group>
Test
Před samotným spuštěním si ověřte, zda vám již neběží nějaká implementace mDNS na portu 5353! Pokud ano, tak po spuštění avahi-daemon
a budete uvítáni hláškou "Failed to create server: No suitable network protocol available". Např. SuSE 10.0 používá mdnsd implementaci Multicast DNS, tu vypnete /etc/init.d/mdnsd stop
.
Pokud nejde o bránu do sítě internet nastavíte IP adresu pomocí příkazu
avahi-autoipd eth0
který nastaví IP adresu z lokálního pásma (168.254/16).
Pro použití mDNS systému spustíte
avahi-daemon
V případě, že se chcete připojit k internetu (nebo z nějakého důvodu chcete používat klasický DNS na vaší lokální síti), použijte autokonfiguračního daemona
avahi-dnsconfd
Nezapomeňte nastavit implicitní bránu (viz. výše)!
Výsledky
Publikované služby se dají prohlédnout v mnoha nástrojích, já uvedu výpis utility z balíčku Avahi.