ZeroConfNetworking
4621
Comment: implementation fleshed out
|
4619
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
* '''Packages affected''': `basefiles`, `dhclient`, `zeroconf`, `libnss-mdns`, `network-manager`, `avahi-au toipd`, `avahi-daemon`, `ifupdown`, `gnome-system-tools` |
* '''Packages affected''': `basefiles`, `dhclient`, `zeroconf`, `libnss-mdns`, `network-manager`, `avahi-autoipd`, `avahi-daemon`, `ifupdown`, `gnome-system-tools` |
Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/zero-configuration-networking
Packages affected: basefiles, dhclient, zeroconf, libnss-mdns, network-manager, avahi-autoipd, avahi-daemon, ifupdown, gnome-system-tools
Summary
When a dynamic network configuration is desired and a local DHCP server is not available for a network, Ubuntu needs to correctly assign itself a link-local address. This is implemented by avahi-autoipd, but requires some additional configuration and packaging corrections to have the system behave in a fully correct way.
Rationale
Other operating system correctly use link-local addresses for communicating on adhoc networks or local LANs without a DHCP server. Ubuntu users will be much happier and more productive when they are effortlessly able to communicate with other device with link-local addresses.
Use cases
- Claudia and Mary set up an adhoc wireless network between between their laptops. They want to be able to communicate without needing to do anything special with interface address assignments.
- John's home server was booted and it got a link-local address. He adds a DHCP server to his network, and boots his laptop, which receives a regular DHCP-assigned address. He wants his server and laptop to be able to communicate without fiddling with their interfaces.
Ellen uses a name server that makes a .local top-level-domain available. She upgrades her computer from Edgy to Feisty, where link-local addresses are assigned by default. She needs notification that the unicast .local TLD and the link-local .local domain conflict with each other, and offer her instructions on how to disable link-local assignments.
Scope
Design
- After coming up, interfaces must be able to correctly route traffic to the local network for the link-local IANA network (169.254.0.0/16).
- Dynamic interfaces that do not get a DHCP address must assign themselves a link-local address.
The .local TLD must be resolvable via the link-local mDNS.
- Users new to link-locale addressing need to be educated about the changes.
Implementation
basefiles(?) -- for educational purposes, update to include description of link-local network
- add "link-local 169.254.0.0" to /etc/networks
dhclient -- add hook for DNS changes to check for unicast "local" TLD
When a unicast local TLD is available, notify the user about the problem, and offer to fix it
{{if ! host -t soa local. >/dev/null 2>&1; then NOTIFY; fi
}}
zeroconf -- incompatible with avahi
- remove package from archive
libnss-mdns -- to resolve link-local local TLD
- start with version 0.8-5
- audit and promote to main
- read debian #393711
audit for error conditions around automatic update of the nsswitch.conf 'hosts' line
build package with --disable-legacy (drops ministack)
network-manager
- patch with proper avahi link-local hooks, especially for adhoc modes
avahi-autoipd -- the actual core of ipv4ll assignment
- audit and promote to main
require both ll routes, as described in "Routes" at http://avahi.org/wiki/AvahiAutoipd
avahi-daemon
- enable by default
- in /etc/network/interfaces add some comments on how to set up manual ll addresses correctly.
ifupdown, gnome-system-tools
- patch to include "ipv4ll" method (as opposed to "dhcp", "static", etc) for sane configuration in /etc/network/interfaces
Code
Data preservation and migration
Clarification of terminology
Zeroconf is a collection of protocols including ipv4 link local, mdns, and dns service-discovery. Apple's implementation of zeroconf was named "Rendezvous", and was later renamed to "Bonjour". Avahi is a free software implementation of zeroconf. See http://avahi.org/wiki/AboutAvahi.
IPv4 link-local addresses are in the 165.254.0.0/16 space.
mDNS is DNS over multicast on the local network.
DNS-sd allows for service discovery using mDNS (which is out of scope for this spec).
Comments
To potentially assist in auditing, there are some items already available for review at http://avahi.org/wiki/SecurityConsiderations
ZeroConfNetworking (last edited 2008-08-06 17:00:50 by localhost)