Internet DRAFT - draft-rfced-info-honton
draft-rfced-info-honton
HTTP/1.1 200 OK
Date: Tue, 09 Apr 2002 11:06:51 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Tue, 11 Nov 1997 17:31:00 GMT
ETag: "361fac-16fe-34689654"
Accept-Ranges: bytes
Content-Length: 5886
Connection: close
Content-Type: text/plain
INTERNET DRAFT EXPIRES MAY 1998 INTERNET DRAFT
Service Discovery Protocol
<draft-rfced-info-honton-00.txt>
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 learn the current status of any Internet-Draft, please check
the "1id-abstracts.txt" listing contained in the Internet-
Drafts Shadow Directories on ftp.is.co.za (Africa),
nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
Distribution of this document is unlimited.
Summary
This document suggests a protocol using a well-known multicast address
[RFC1112] to discover the interface of the closest service provider
for a desired service port.
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. The difficulty is compounded
when there is a desire to have backup servers in case of a host or
communication failure. The service discovery protocol (SDP)
described in this memo allows clients to use multicasting to find the
closest cooperating server.
2. Operation
In the following discussion, an address is an interface and port pair
which will be indcated by <interface, port>.
Initially, the server process binds to <SDP multicast interface,
provided service port> in addition to <standard unicast interface,
provided service port>. A client searching for a particular service
will send a UDP message containing a client security token to <SDP
multicast interface, desired service port>. The client security
token may be of any length which fits into a single UDP packet.
When the message is received, the server will validate the client
security token and optionally reply to the the packet's originating
address. The reply UDP message contains the server unicast interface
number (four bytes in network order) and server security token. The
server security token may be of any length which will fit into a
single UDP packet.
The Time-To-Live (TTL) of the initially sent packet will be one.
After a suitable timeout with no replies, the client will increment
the TTL and resend the client security token to <SDP multicast
interface, desired service port>. This allows the client to search
an ever widening network domain and allows the closest service
provider to be discovered first.
Client Server
------ ------
________
| client | --> <SDP interface, desired service port>
| token |
|________|
__________________
<originating interface, originating port> <-- | service | server |
| address | token |
|_________|________|
3. Security Considerations
The client security token can be used by the server in conjunction
with the originating host address to determine if the searching
client belongs to the same security domain as the server. Likewise,
the server security token can be used by the client to determine if
the responding server belongs to the client's security domain.
The minimum suggested security arrangment is to have the client send
a seed in the client security token. The server responds to or
ignores the client based on the client's interface number. If the
server responds, the server security token is the 8-octet digest
obtained from applying the MD5 algorithm [RFC1321] to the
concatentation of the seed and the security domain key. The client
can then determine if the server belongs to the client's security
domain by comparing the received digest with the expected return
digest. 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, a mutual
authentication arrangement is required. In this case, the suggested
security token consists of an 8-octet digest followed by a variable
length seed. The digest is obtained by applying the MD5 algorithm to
the concatentation of the seed and the security domain key. The
receiver can validate the token by reevaluating the digest and
comparing the result with the digest in the security token.
In the mutual authentication arrangement, 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. Client generated seeds should change with the start of each
discovery. Server generated seeds should change with every reply.
4. References
[RFC1112] Deering, S. "Host Extensions for IP Multicasting", Stanford
University, August 1989
[RFC1321] Rivest, R. "The MD5 Message-Digest Algorithm", MIT
Laboratory for Computer Science, April 1992.
5. Author's Address
Charles Honton
Secant Technologies
Phone: 216 595 3830
Fax: 216 595 0199
EMail: chas@secant.com
INTERNET DRAFT EXPIRES MAY 1998 INTERNET DRAFT