ZeroConfSpec

Differences between revisions 25 and 26
Revision 25 as of 2005-11-05 00:00:17
Size: 5562
Editor: penguins
Comment:
Revision 26 as of 2005-11-05 00:01:30
Size: 5776
Editor: penguins
Comment:
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
{{{XXX:lathiat:This is not a design issue at all, the IPv4-LL spec 'strongly recommends' that you only assign a IPv4-LL IP when no other IP is available (on that interface)}} {{{XXX:lathiat:This is not a design issue at all, the IPv4-LL spec 'strongly recommends' that you only assign a IPv4-LL IP when no other IP is available (on that interface), essentially, theres no point having both a routable and non-routable address, other than when there are existing left-over connections still using that IP from before, see the RFC for a better discussion on that}}}

Introduction

This Spec describes the integration of ZeroConf technologies for Dapper

Rationale

ZeroConf allows computers to communicate on a network without any kind of configuration, additionally it provides for discovery of services, so instead of specifying an IP you can select from a list of advertised servers on the network. This is usefull so that you can simply plug two laptops together an transfer a file or play a network game. It is also usefull in situations where you don't know about the other services, such as people to chat to or files to share.

Scope and Use Cases

Home Users

  • Trent wants to send a file to Jeff, he plugs an ethernet cable in between his two computers and is able to drag and drop it onto Jeff's computer in the Network Servers. Neither Trent nor Jeff touched any configuration and a pre-existing network was not setup.
  • Trent is at a conference and sitting around doing nothing, he opens up gaim and can see other people on the network to talk to.
  • Jane wants to play a network game of Four-in-a-row with Claire, they are using wireless at Jane's place with an existing IP setup, Jane starts a game and Claire is able to connect to it simply by clicking the name of the game Jane specified in Four-in-a-row.
  • Isaac is at Uni, he has completed his work and wants to print it out. His Uni' printers advertise via mDNS/DNS-SD and cups automatically configures itself to print to these printers when he connects his laptop.
  • Sebest subscribes to the domain ubuntu.com using Wide-Area Zeroconf and his firefox's bookmark is automagically updated with links to launchpad, wiki, bugzilla, etc...

Design

  • Avahi/Zeroconf should be turned off by default and have an easy option to be turned on (both to respect the Ubuntu default policy of "no open ports", and privacy issues).

XXX:smurf:Listening on a particular interface, as opposed to "always" or a simple on-off switch, is a design issue and thus should be mentioned here, ideally with rationale.

XXX:smurf:another design issue is whether to assign ZC IP addresses unconditionally, or just when no DHCPd is found XXX:lathiat:This is not a design issue at all, the IPv4-LL spec 'strongly recommends' that you only assign a IPv4-LL IP when no other IP is available (on that interface), essentially, theres no point having both a routable and non-routable address, other than when there are existing left-over connections still using that IP from before, see the RFC for a better discussion on that

Implementation Plan

  • Move avahi into main [deps libdaemon], SebastienBacher has already made a wiki page about this

  • Make avahi not listen on the network by default.
  • Install/configure avahi and libnss-mdns by default with the desktop.
  • Install zeroconf, if NetworkManager does not provide sufficient zcip autoconfiguration by then

XXX:lathiat:Are we going to be installing network-manager on all desktops?

  • Ask Trent to add an option to avahi to start/stop listening on a particular interface (so that we don't have to start/kill the daemon whenever we change the option or bring an interface up/down).
  • Add an option to one of the GNOME dialog to activate the feature. This option will send a dbus signal.

Packages Affected

  • zeroconf - configures IPv4 Link Local addresses when there is no static IP or DHCP address
  • network-manager - May be able to do what zeroconf does
  • avahi - Handles service dicovery, allows applications to publish and browse for services
  • libnss-mdns - Allows the system to resolve .local addresses, advertisd by avahi via the standard resolver interface.
  • libknssd-avahi - Allows *all* kde programs already using dns-sd with the KDE api to use avahi
  • libavahi-bonjour-compat (doesnt exist in ubuntu yet, avahi 0.6, for dapper) -- Allows applications to use avahi that use the bonjour API (in both a API and ABI compatible manner)
  • libavahi-bonjour-howl - as above, but for HOWL
  • service-discovery-applet - gnome applet display services and allowing you to launch them
  • gaim - gaim 2.0 will support zeroconf (currently support howl, port to avahi may happen)
  • gnome-vfs - support zeroconf with howl (avahi 0.6 has a howl compat layer specifically for gnome-vfs)

Outstanding Issues

  • where do we put the option to turn it on/off
  • printing support: as mentionned by TrentLloyd, it is upstream work. Hub plan to do it to implement

    • ZeroConf printer support

    • Advertise shared printer
  • zeroconf (the application) needs a bit of work to become usable
  • make clear for the user if the feature is used or not
  • make certain the interaction between avahi and n-m is sane
  • Avahi is not limited to lan, there is wide-area (unicast dns) support coming soon. We should take this in account, because an UI will be needed for the users. He will configure the domain(s) that he'd like to publish/browse and also an optionnal login/pass for publishing purpose. This UI could also be use to enable/disable avahi publishing for lan use.

XXX:lathiat:Avahi 0.6 has this support and some work was just being done to allow this to be configured on a per-user basis, so we could work with that


CategorySpec

ZeroConfSpec (last edited 2008-08-06 16:59:57 by localhost)