ZeroConfSpec

Differences between revisions 10 and 38 (spanning 28 versions)
Revision 10 as of 2005-10-17 14:46:51
Size: 5505
Editor: host-82-138-218-202
Comment:
Revision 38 as of 2008-08-06 16:59:57
Size: 6707
Editor: localhost
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= ZeroConfSpec =  * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/zeroconf
 * '''Created''': <<Date(2005-08-25T20:07:26Z)>> by Trent Lloyd
 * '''Contributors''': JaneWeideman, TrentLloyd, JeffWaugh, SebastienEstienne, SebastienBacher, AndrewMitchell, CoreyBurger, HubertFiguiere, MartinPitt, RyanLortie
 * '''Packages affected''':
 * '''Packages''': avahi, libnss-mdns, zeroconf, network-manager
Line 5: Line 9:
== Status ==

 * Created: Friday, August 26 2005 by Trent Lloyd
 * Priority: NeedsPriority
 * People: TrentLloyd, AndrewMitchell
 * Contributors: TrentLloyd
 * Interested: SebastienEstienne, AndrewMitchell, MartinMeredith, JonathanRiddell
 * Status: UbzSpecification, BrainDump, DistroSpecification
 * Branch:
 * Malone Bug:
 * Packages: avahi, libnss-mdns, zeroconf, network-manager
 * Depends:
 * Dependents:
 [[FullSearch(ZeroConfSpec)]]
 * BoF sessions: 1, 4, 8, etc
Line 23: Line 12:
This Spec describes the integration of ZeroConf technologies for Breezy+1 This Spec describes the integration of ZeroConf technologies for Dapper
Line 27: Line 16:
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. 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 and transfer a file or play a network game. It is also useful in situations where you don't know about the other services, such as people to chat to or files to share.
Line 38: Line 27:
=== Corporate Users ===
The zeroconf technology would be a great addition to UbuntuForSmallBusinesses and SmallBusinessServer.
 * The common use case is small business from 5 to 20 workstations and 1 or 2 servers.
 * John install his Ubuntu 4 SBS server, and create the different user accounts.
 * Then John wants to install the workstations, he starts the computer with a Ubuntu Cd
 * The install cd detects the apt-proxy (through zeroconf)
 * The installation is over, and Marc wants to login, the kerberos server is detected
 * Marc wants to write a mail, he starts evolution: smtp, imap, ldap, webcal all configured throught zeroconf
 * Marc wants to call its friend to tell him how great is zeroconf, he starts gnomemeeting that automatically detects asterix (Pabx) and route the call.
 * John's firm is getting bigger, he needs to add a new server for fault tolerance: he starts his brand new Ubuntu 4 SBS server, it detects that there is already one Ubuntu 4 SBS servers and automatically replicates its configuration.
{{{
XXX:smurf: Previous versions had a rather large section on corporate uses here.
Please either re-add this section, or mention explicitly that this is out of scope for this spec (why?).}}}
Line 49: Line 31:
To sum up, zeroconf can solves immensenly the configuration and installation process in corporate environments. Basically, you would have nothing to configure and the workstation. == Design ==
Line 51: Line 33:
 * 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). The option will be a added to the network-admin tool and allow to specify the interface to use.
Line 55: Line 37:
 * Install/configure avahi and libnss-mdns by default.
 * Install zeroconf if NetworkManager does not provide sufficient zcip autoconfiguration by then
 * Make some kind of switch to avahi to enable/disable it, it will have to be disabled by default because of the no server policy (grrr)

=== Data Preservation and Migration ===
 * 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
 * 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.
Line 69: Line 52:
 * libavahi-bonjour-howl - as above, but for HOWL
Line 70: Line 54:

=== User Interface Requirements ===

 * Various applications need to be extended to support Avahi, good examples would be gnome-vfs (for nautilus), gaim, muine and cups. I (TrentLloyd) plan to do this work where possible for upstream.
 * GnomeMeeting in CVS supports service discovery, using Avahi instead of Howl with a patch by SebastienEstienne, Ubuntu cannot use howl due to various licensing problems.
 * service-discovery-applet : allows to quickly access to zeroconf services. This applet can also be considerated as a generic Gui to add zeroconf support for client that doesn't support it yet. (eg: it can browse for Zeroconf Web servers and launch firefox with the good Url).
 * 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)
 * rhythmbox - DAAP (Music Sharing) support
Line 79: Line 60:
 * where do we put the option to turn it on/off
  * BenGoodger: IMO it should be part of the installer: "Enabling automatic network discovery increases convenience, but may decrease the security of your computer under certain circumstances. Do you want to enable it?"
  * MartinVisser: Alternatively, Avahi be enabled to listen-only when network-manager detects a network change and could prompt the user with "I see you have joined a new network, and these <listed> services are being advertised. If you trust this network, and aware of the security risks, do you want to enable visibility of these servers?"
 * printing support: as mentionned by TrentLloyd, it is upstream work. Hub plan to do it to implement
  * ZeroConf printer support
  * Advertise shared printer
Line 80: Line 67:
 * This spec is a work in progress  * 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.
Line 82: Line 71:
=== UBZ BOF Agenda === == Comments ==
Line 84: Line 73:
=== UBZ Pre-Work === lathiat:Avahi 0.6 has support for wide-area zeroconf; some work was just being done to allow this to be configured on a per-user basis, so we could work with that

lathiat: ''(on the issue of allocating a zeroconf address to interfaces which also have a '''real''' IP address)'' 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

LucaFerretti2: gnome-vfs supports avahi 0.6 from version 2.13.2 :-) no compatibility layer needed

Dyssident2: service-discovery-applet should be thrown out because it a) doesnt do much b) feels very hackish. perhaps concentrating on improved support in Gnome/Nautilus would be more fruitful.

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 and transfer a file or play a network game. It is also useful 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...

XXX:smurf: Previous versions had a rather large section on corporate uses here.
Please either re-add this section, or mention explicitly that this is out of scope for this spec (why?).

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). The option will be a added to the network-admin tool and allow to specify the interface to use.

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

  • 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)
  • rhythmbox - DAAP (Music Sharing) support

Outstanding Issues

  • where do we put the option to turn it on/off
    • BenGoodger: IMO it should be part of the installer: "Enabling automatic network discovery increases convenience, but may decrease the security of your computer under certain circumstances. Do you want to enable it?"

    • MartinVisser: Alternatively, Avahi be enabled to listen-only when network-manager detects a network change and could prompt the user with "I see you have joined a new network, and these <listed> services are being advertised. If you trust this network, and aware of the security risks, do you want to enable visibility of these servers?"

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

Comments

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

lathiat: (on the issue of allocating a zeroconf address to interfaces which also have a real IP address) 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

LucaFerretti2: gnome-vfs supports avahi 0.6 from version 2.13.2 Smile :-) no compatibility layer needed

Dyssident2: service-discovery-applet should be thrown out because it a) doesnt do much b) feels very hackish. perhaps concentrating on improved support in Gnome/Nautilus would be more fruitful.


CategorySpec

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