The Project Athena Zephyr system uses fixed UDP port numbers for communications between servers, host managers, and clients. As a result, it is impossible to run more than one zephyr host manager (zhm) on a single machine. With the advent of Project Numenor, users wanted to be able to be able to communicate with both the Athena and Numenor zephyr servers simultaneously. This was impossible without logging in to multiple machines. Now, the Zephyr multi-realm host manager (zmhm) allows you to run multiple host managers on the same machine, by modifying the port numbers and servers used by zhm, and forwarding packets appropriately.
Currently zmhm is only available as a Debian package. You can obtain it by adding the line
deb http://numenor.mit.edu/apt stable numenor
to /etc/apt/sources.list, then running apt-get update; apt-get install zmhm. Alternatively, you can download the latest version as of this writing directly from here: zmhm_0.1.1_i386.deb. For non-i386 architectures, try the source package: zmhm_0.1.1.tar.gz. You can try installing manually from that tarball on non-Debian machines, too.
During the installation procedure, you will be asked for the zephyr servers you wish to use. List them, separated by spaces, with the zephyr server you want to use by default first. If not installing via the Debian package, create a file /etc/zmhm.conf with one server on each line, default server first. For example, if you wanted to use the Numenor zephyr server by default but also have the Athena server available, your file would look like this:
numenor.mit.edu z1.mit.edu
Start zmhm by running /etc/init.d/zmhm start, if necessary.
When zmhm is installed, your zephyr clients (zwgc, zwrite, or owl) are controlled by the environment variable ZEPHYR_SERVER. Thus if you want to send a zephyr to user rwbarton on the Athena zephyr server, you might do it like this:
$ ZEPHYR_SERVER=z1.mit.edu zwrite rwbarton zwrite: Don't have Kerberos ticket-granting ticket (get_ad_tkt) while sending notice to rwbarton $ # Oops, we don't have Athena tickets right now so can't send authentic zephyrs $ ZEPHYR_SERVER=z1.mit.edu zwrite -d rwbarton Type your message now. End with control-D or a dot on a line by itself. Hi, Reid! . Message queued for rwbarton... sent
Here you used the -d flag to send an unauthentic zephyr, because your ticket file probably has your Numenor tickets, not your Athena tickets. (If your machine is primarily set up for Athena access, reverse the roles of Numenor and Athena in this example.) On the Numenor system, there is a handy script athena that sets other environment variables like KRBTKFILE to help zwrite find your Athena tickets. It also sets ZEPHYR_SERVER to z1.mit.edu, so you can do the following:
$ athena kinit -54 Password for username@ATHENA.MIT.EDU: ******** $ athena zwrite rwbarton Type your message now. End with control-D or a dot on a line by itself. I can send authentic zephyrs now. . Message queued for rwbarton... sent
As for receiving zephyrs, you should be able to run two zwgc processes as follows, although this has not been tested:
$ zwgc -ttymode -subfile ~/.zephyr.subs.numenor $ rm /tmp/wg.$UID $ athena zwgc -ttymode -subfile ~/.zephyr.subs.athena
If you prefer the owl zephyr client, there isn't any run file that needs to be deleted, but unfortunately owl has no analogue of zwgc's -subfile option. A workaround is to add subscription commands for Athena to ~/.owlconf.athena, then invoke owl as owl -n -c ~/.owlconf.athena. (The -n option prevents owl from loading subscriptions from ~/.zephyr.subs.)
The same procedure of setting ZEPHYR_SERVER should work with all zephyr clients ([x]zwrite, zaway, zleave, zlocate, znol) except zaway and possibly zctl; see below.
To be written...
If you encounter any other bugs in zmhm, please contact Reid Barton.
Last updated July 30, 2005 by Reid Barton