Difference between revisions of "Zero Configuration Networking"

From Funtoo Linux
Jump to: navigation, search
(mDNS)
(Multicast DNS)
Line 44: Line 44:
  
 
=== Multicast DNS ===
 
=== Multicast DNS ===
 +
 +
Multicast DNS, or mDNS, is a means by which individual machines can broadcast their DNS information to machines on the local LAN so that a DNS server is not required to address local devices by name. The ".local" domain is typically used for multicast DNS, so your laptop might be addressable by pinging "mylaptop.local", for example.
  
 
=== receiving mDNS ===
 
=== receiving mDNS ===

Revision as of 08:26, 6 November 2010

Contents

Zero Configuration Networking (Zeroconf)

Introduction

Apple Technical Q&A QA1357

Zero Configuration Networking, also called Zeroconf or Bonjour (Apple's trademark for their Zero Configuration Networking implementation) is a suite of related technologies that allow networked devices to interoperate on a local network without requiring explicit configuration.

Requirements

Zero Configuration Networking requires the following things to operate:

  1. A valid IP address, obtained either by:
    1. Static assignment
    2. DHCP
    3. Link-local Addressing (part of Zero Configuration Networking)
  2. A means to address other devices by name, provided either by:
    1. DNS
    2. multicast DNS (mDNS -- part of Zero Configuration Networking)

Service Discovery

On top of this, Zero Configuration Networking also provides a means to discover what services are available on each device. This is something that is provided exclusively by Zero Configuration Networking and is called Zeroconf Service Discovery.

Configuration

Link-local Addresses

To use link-local addressing, first set up the proper routes:

route add default dev eth0 metric 99
route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0 metric 99

Then, use avahi-autoipd to discover a valid link-local IP address:

/usr/sbin/avahi-autoipd --daemonize --syslog --wait eth0

Once a valid link-local IP address is found, eth0 will now have a 169.254.x.x address that can be used to communicate on the local LAN.

Multicast DNS

Multicast DNS, or mDNS, is a means by which individual machines can broadcast their DNS information to machines on the local LAN so that a DNS server is not required to address local devices by name. The ".local" domain is typically used for multicast DNS, so your laptop might be addressable by pinging "mylaptop.local", for example.

receiving mDNS

emerge nss-mdns

Set up multicast route:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

/etc/nsswitch.conf:

hosts:       files mdns_minimal [NOTFOUND=return] dns mdns

Test:

ninja1 ~ # ping daniel-pc.local
PING daniel-pc.local (10.0.1.11) 56(84) bytes of data.
64 bytes from Daniel-PC.local (10.0.1.11): icmp_req=1 ttl=128 time=3.73 ms
64 bytes from Daniel-PC.local (10.0.1.11): icmp_req=2 ttl=128 time=0.905 ms
64 bytes from Daniel-PC.local (10.0.1.11): icmp_req=3 ttl=128 time=0.922 ms
64 bytes from Daniel-PC.local (10.0.1.11): icmp_req=4 ttl=128 time=0.827 ms

Sending mDNS/DNS-sd

rc-update add avahi-daemon default
rc

Service Discovery

Get a list of services on the LAN:

ninja1 ~ # avahi-browse -ac
Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff