[232] in Zephyr Mailing List

home help back first fref pref prev next nref lref last post

Interrealm support issues

daemon@ATHENA.MIT.EDU (Greg Hudson)
Wed Jan 1 05:46:15 1997

Date: Wed, 1 Jan 1997 05:42:25 -0500
From: Greg Hudson <ghudson@MIT.EDU>
To: zephyr@MIT.EDU

The major planned new feature in Zephyr 2.1 is interrealm support.
There are two major approaches to interrealm support, and I'd like to
get feedback from the list on how people would like to see it done.

The first approach is the client-side approach originally done by
Derek Atkins (and redone very recently by Marc Horowitz in a somewhat
different way).  In Derek's approach, the host manager dispatches
notices to different realms according to the Kerberos realm of the
recipient.  (Marc adds a new field to the notice and modifies the
protocol between the client library and the host manager, which is
somewhat cleaner.)  The major drawback of the client-side approach is
that long-distance network traffic scales according to the number of
remote subscribers of a triplet.

The second approach is the one originally done at CMU.  In the CMU
model, a host manager talks to only one realm (as in the Zephyr 2.0
code) and the server dispatches notices to servers in remote realms
based on the Kerberos realms of recipients.  Long-distance network
traffic scales according to the number of remote realms subscribing to
a triplet, not the total number of subscribers.

I already integrated the CMU code into Zephyr (it's in 2.1 beta ,
although 2.1 beta 1 has many bugs) on the basis of improved scaling.
However, lately I've been having a few misgivings about the CMU
approach:

	* There is a trust issue.  If I run the MIT zephyr realm,
	  I have to trust the CMU zephyr realm to send a message to
	  the person I direct it at, instead of to someone else.
	  However, it's worth noting that in both models, I have to
	  trust the CMU Kerberos realm not to give away keys to
	  unauthorized people, so at the moment I'm inclined to
	  disregard trust issues.

	* In the CMU model, servers talk to each other, which
	  potentially creates a maintenance problem.  If servers never
	  talk to each other (as is the case in, say, AFS), it becomes
	  impossible for poor administration in one realm to affect
	  servers in another realm.  I don't know if there are any
	  real practical issues involved in the CMU implementation,
	  though.

	* Hijacking the recipient Kerberos realm to determine the
	  Zephyr realm is really pretty unclean; nobody tries to
	  equate AFS realms with Kerberos realms, and doing it in
	  Zephyr bothers me.  If you do inter-realm on the client
	  side, it's a little easier to add a "realm" field to the
	  local-machine protocol because you can assume a little more
	  about whether the client library and host manager are in
	  sync.

	* Doing it in the client allows people to experiment with it
	  without upgrading production servers.  I'm probably going to
	  disregard this issue because it's transitionary.

A few people have argued that Zephyr should support both mechanisms,
but I think that would create too much of a mess.

Comments?  After hashing it out, it looks like the protocol
cleanliness issue is the biggest problem I have with the CMU approach,
and perhaps I should just try to find a path to a cleaner protocol for
server-side interrealm support.

home help back first fref pref prev next nref lref last post