Mesh/Firmware/Zeroconf

Revision as of 11:49, 4 May 2014 by Jwentwistle (talk | contribs) (added details about avahi)

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