Internet DRAFT - draft-honton-sdp
draft-honton-sdp
Network Working Group Chas Honton
draft-honton-sdp-02.txt Secant Technologies
Internet Draft January 1997
Expires July 31, 1998
Simple Server Discovery Protocol
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-
Drafts as reference material or to cite them other than as
"work in progress."
To view the entire list of current Internet-Drafts, please check
the "1id-abstracts.txt" listing contained in the Internet-Drafts
Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
(Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
Coast), or ftp.isi.edu (US West Coast).
Summary
The Simple Server Discovery Protocol allows clients to use a
multicast address to discover the unicast interface of a
cooperating server for a desired service port and optionally
authenticate the identity of the client and/or server.
1. Introduction
In a dynamic network environment where servers come and go, it's
sometimes hard for a network administrator to keep client programs
up to date where the closest server is. This difficulty is
compounded when there is a desire to have backup servers in case of
a host or communication failure. The Simple Server Discovery
Protocol (SSDP) allows clients to use multicasting to find the
closest cooperating server. SSDP does not allow
2. Design Goals
There are three major design goals;
1) Client can find a server (preferably a "close" one).
2) Client can authenticate the server and vice versa.
3) Simple implementation for both client and server -- No central
repository or third party is required.
3. Operation
In this section the notation <interface, port> indicates an IP
address consisting of an interface number and port number.
The Simple Server Discovery Protocol uses multicast address
224.0.1.67 (serv-discovery).
Initially, the server process binds to UDP address <serv-discovery,
provided service port> in addition to its <standard unicast
interface, provided service port>. A client searching for a
particular service will send a UDP packet containing a client
token to <serv-discovery, desired service port>. The client token
may be of any length which fits into a single UDP packet.
When the packet is received, the server will validate the client
token and optionally reply to the the packet's originating address.
The reply UDP packet contains a server token. The server token
may be of any length which will fit into a single UDP packet.
The Time-To-Live (TTL) of the first packet the client sends will be
one. After a suitable timeout with no replies, the client will
increment (by one or more) the TTL and resend the client token to
<serv-discovery, desired service port>. The client should wait at
least one second between retries. The client should not increase
the TTL to extend beyond acceptable network boundaries.
With this algorithm, the client is specifing an ever widening
network domain and usually the closest service provider will be the
first to respond. The client is not expected to cache any unicast
addresses found.
4. Known limitation
An ever widening multicast search is known to find servers which
are closer in hops but further away in time, eg. one hop away
across a 56K serial line instead of three 100M LAN hops. One
solution is using different security domains (see section 6) on
each side of the serial line. Another solution is to have routers
not pass through any serv-discovery packets on slow lines. A third
alternative is to have the client increment the TTL by more than
one after each multi-cast and then use the first (fastest) reply
which is acceptable.
5. Client and Server Tokens
Client and Server Tokens can be used to identify some quality of
service desired. The client can use its token to request a
particular quality and the server can use its token to offer a
particular quality. Additionally, the tokens can be used to
authenticate whether the client/server belongs to a particular
security domain. The following section recommends two
authentication schemes using the tokens.
6. Authentication
An authentication token consists of a 16-octet MD5 digest [RFC1321]
followed by a variable length seed. The digest is obtained by
applying the MD5 algorithm to the concatentation of the seed, the
sender's interface number (in network order), the sender's port
number (in network order), and the sender's security domain key.
The receiver validates an authentication token by reevaluating the
digest and comparing that result with the received digest.
Validation requires the sender and receiver to know the same
security domain key.
When server-only authentication is required, the client sends an
empty client token. The server responds to or ignores the client
request based on the client's interface number and/or host domain.
If the server responds with an authentication token, the client
validates the return server authentication token.
When mutual authentication is required, the client sends an
authentication token. The server validates the client token and
responds to or ignores the client request. If the server responds,
the return server authentication token will be validated by the
client.
7. Retrofitting current clients and servers
To upgrade a client to use the Simple Server Discovery Protocol,
instead of using some persistent data, a UDP socket will be used to
multicast and then listen for a cooperating server.
To upgrade a server to use the Simple Server Discovery Protocol, an
additional UDP socket will need to be added to the select list.
The process loop will then check for packets, authenticate the
client token, and optionally repond to the client.
Inet launched servers need not be changed. Inet can be upgraded to
listen to the required serv-discovery ports and authenticate as
well as repond for its list of servers.
8. Administration
Use of the Simple Server Discovery Protocol multicast address will
require some administrative decisions. In particular, where are
SSDP packets routed and where are they blocked? Which SSDP packets
should be tunnelled through the internet or network providers to
various outlying campuses of corporate networks?
9. Security Considerations
The minimum suggested security is server-only authentication. This
arrangement prevents clients from using rogue servers.
If the server needs to authenticate the client in more robust
manner than just knowledge of the client's address permits, mutual
authentication should be used.
When using mutual authentication, the client send/server receive
security domain key may be different than the server send/client
receive security domain key.
In all security arrangements, security domain keys should be
configurable and, of course, be kept secret. The generated
seeds should change with the start of each discovery and should
not be monotonic.
10. References
[RFC1321] Rivest, R. "The MD5 Message-Digest Algorithm", MIT
Laboratory for Computer Science, April 1992.
11. Author's Address
Charles Honton
Secant Technologies
Phone: 216 595 3830
Fax: 216 595 0199
EMail: chas@secant.com