From: parmelee@cs.cornell.edu (Larry Parmelee)
Subject: "MX" records for other services
Organization: Cornell Univ. CS Dept, Ithaca NY 14853
Date: Thu, 15 Oct 1992 17:43:17 GMT

Going off on a bit of a tangent... Subject was "When should one use
MX records?"

ckd@eff.org (Christopher Davis) writes:

> Tom> For ftp, it seems like there's a growing tradition for having a
> Tom> CNAME for ftp.company.uk pointing to the ftp server.
>
>We do this too.  The "service" CNAME is a really useful thing to have;

ditto, furthermore:
...It seems to me the concept of an MX record should have been made more
general when it was proposed; of course, hindsight is a big advantage.

Not only is it useful to be able to redirect SMTP connections for a
specific host or domain, it would also be useful to be able to redirect
other services as well.  For example, it would be nice to have something
like an "FTPX" record so I could automagically redirect any ftp requests
to machines in my domain to a single specific machine or prehaps a
prioritized set of machines.  I can imagine doing something similiar
for "finger", "rlogin", "telnet", in fact, almost any service.

How to modify the existing nameserver architecture to support a generalized
MX (GMX) record is a puzzle!  The current MX RR format is something like
this:

	name ttl IN MX preference hostname

prehaps the GMX record could be something like:
[[[entering pipe-dream mode]]]

	name ttl IN GMX protocol port preference hostname

of which the current MX record would be a special case, for example

	FOO.FAA.FEE. 3600 IN MX 10 BAR.BLEF.BOB.

would be equivalent to:

	FOO.FAA.FEE. 3600 IN GMX TCP SMTP 10 BAR.BLEF.BOB.

Now, one drawback to this sort of implementation would be that if I want
to open say a telnet connection to "FOO", I'ld issue a nameserver query
for all GMX records associated with "FOO" and get back a potentially
very large set of GMX records which I'ld then have to wade through to
see if any are applicable to a telnet connection...  What would really
be nice would be to have a way of including in the nameserver query
some indication of the protocol and port of the GMX records I'm 
interested in.  One way of doing this that might(?) have minimal impact
on the existing nameserver would be to maybe tack something on to
the host or domain name, there are many possible formats.  For example,
to look for an appropriate address to contact for a "finger" on
domainname "FOO.FAA.FEE", I might try a nameserver query with the
domainname given as one of the following:

	FOO-udp/finger.FAA.FEE
	udp/finger.FOO.FAA.FEE
	udp/finger-FOO.FAA.FEE

Of course I would probably need to encode "udp" and "finger" into
the standard protocol and port numbers ("17" for "udp" and "79" for
"finger" I believe, see the latest "Assigned Numbers" RFC) before sending
the query to the nameserver.

The only other hard part (Ha Ha!) would be getting everybody's favorite
versions of all the various network client programs updated to support
the new conventions.  I would guess that might not be too bad though.
The first thing I would do is to write up a new standard library routine
that, given a hostname, protocol, service (and probably a few option
flags or other parameters), would return an open socket.

Oh well, that's enough fantasy for one day!

-Larry Parmelee
parmelee@cs.cornell.edu
Newsgroups: comp.protocols.tcp-ip.domains