Difference between revisions of "Mesh/Firmware/Zeroconf"
Jwentwistle (talk | contribs) (added man pages for avahi) |
Jwentwistle (talk | contribs) (added more programs to avahi) |
||
Line 5: | Line 5: | ||
== [http://avahi.org/ avahi] == | == [http://avahi.org/ avahi] == | ||
An implementation of the | An implementation of the DNS Service Discovery and Multicast DNS specifications for Zeroconf networking. It uses D-Bus for communication between user applications and a system daemon. The daemon is used to coordinate application efforts in caching replies, necessary to minimize the traffic imposed on networks. | ||
Avahi allows you to access computers using their hostnames. ([https://wiki.archlinux.org/index.php/avahi documentation from archwiki]) The services on the network can be hosted and discovered [http://pic.dhe.ibm.com/infocenter/sprotect/v2r8m0/index.jsp?topic=%2Fcom.ibm.alps.doc%2Fconcepts%2Falps_ig_using_avahi.htm through the command line]. | Avahi allows you to access computers using their hostnames. ([https://wiki.archlinux.org/index.php/avahi documentation from archwiki]) The services on the network can be hosted and discovered [http://pic.dhe.ibm.com/infocenter/sprotect/v2r8m0/index.jsp?topic=%2Fcom.ibm.alps.doc%2Fconcepts%2Falps_ig_using_avahi.htm through the command line]. | ||
'''Note: you must install nss-mdns for this to work, and have avahi-daemon.service enabled and running.''' | '''Note: you must install nss-mdns for this to work, and have avahi-daemon.service enabled and running.''' | ||
The program consists of | The program consists of these programs: | ||
* [http:// | * [http://linux.die.net/man/1/avahi-browse avahi-browse] - browse for mDNS/DNS-SD services using the daemon | ||
* [http:// | * [http://linux.die.net/man/8/avahi-daemon avahi-daemon] - the mDNS/DNS-SD daemon | ||
* [http://linux.die.net/man/5/avahi-daemon.conf avahi-daemon.conf] - the configuration file for avahi-daemon | |||
* [http://linux.die.net/man/1/avahi-discover avahi-discover] - show a real-time graphical browse list for mDNS/DNS-SD network services | |||
* [http://linux.die.net/man/8/avahi-dnsconfd avahi-dnsconfd] - a Unicast DNS server made from mDNS/DNS-SD configuration daemon | |||
Features: | Features: |
Revision as of 17:11, 5 May 2014
We need a basic DNS client (and server) on the nodes. We want to use the Service Location Protocol (SLP) to implement a domain service. The domain server returns a service (or files) from a destination (typically based on an IP address), such that the domain server resolves google.com at the 74.125.224.65 address.
Software
avahi
An implementation of the DNS Service Discovery and Multicast DNS specifications for Zeroconf networking. It uses D-Bus for communication between user applications and a system daemon. The daemon is used to coordinate application efforts in caching replies, necessary to minimize the traffic imposed on networks.
Avahi allows you to access computers using their hostnames. (documentation from archwiki) The services on the network can be hosted and discovered through the command line. Note: you must install nss-mdns for this to work, and have avahi-daemon.service enabled and running.
The program consists of these programs:
- avahi-browse - browse for mDNS/DNS-SD services using the daemon
- avahi-daemon - the mDNS/DNS-SD daemon
- avahi-daemon.conf - the configuration file for avahi-daemon
- avahi-discover - show a real-time graphical browse list for mDNS/DNS-SD network services
- avahi-dnsconfd - a Unicast DNS server made from mDNS/DNS-SD configuration daemon
Features:
- Embeddable mDNS stack (i.e. mDNS stack available as library)
- Ability to reflect mDNS traffic between multiple subnets
- Ability to configure a unicast DNS server automatically from server data published on the LAN
- Wide area DNS-SD support (read-only for now)
- Interface to GLIBC NSS using nss-mdns
mdns-utils
The OpenWRT package mdns-utils is actually just compiling part of Apple's mDNSResponder.
The mDNSClient utility only outputs lines to stderr (name, service type, and domain):
*** Found name = 'Foo', type = '_afpovertcp._tcp.', domain = 'local.'
The code that outputs this line is in the file mDNSResponder/mDNSPosix/Client.c in the function BrowseCallback.
Documentation
New DNS technologies on the LAN: mDNS, DNS-SD, LLMNR, PNRP
mesh DNS software: HypeDNS vs decentralized servers