Zeroconf

From NMS
Revision as of 03:32, 29 September 2006 by Hofman (Talk | contribs) (Instalace)

Jump to: navigation, search

Ú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>

Spouštění

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-daemona 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.

Teď již k použití. Spustíte jednoduše:

avahi-daemon

Odkazy

Aplikace v praxi - Bonjour