Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!rochester!bbn!spdcc!dyer From: dyer@spdcc.COM (Steve Dyer) Newsgroups: comp.protocols.tcp-ip Subject: Re: IP over X.25 (request for info) Keywords: Hesiod Message-ID: <2544@spdcc.SPDCC.COM> Date: 8 Feb 89 06:23:31 GMT References: <8902071459.AA22881@redrump.spider.co.uk> <11194@ulysses.homer.nj.att.com> Reply-To: dyer@ursa-major.spdcc.COM (Steve Dyer) Organization: S.P. Dyer Computer Consulting, Cambridge MA Lines: 43 In article <11194@ulysses.homer.nj.att.com> smb@ulysses.homer.nj.att.com (Steven M. Bellovin) writes: >Perhaps we can find some way to store the information via the >Domain Name System. What we'd need, more or less, is a new record type >PHYSADDR in class IN; its data field would contain a type code (Datakit VCS, >X.25, etc., and a type-dependent set of dialing instructions. The inverse >mapping, or -- more likely -- the equivalent to the INADDR.ARPA records would >be useful as well, for validation of incoming calls. > >I'm not entirely happy with this idea, though; the format of the dialing >instructions is rather too variable for a single record type. But the >PHYSADDR record needs to be tied to the IN class, since IP is the primary >client for the information. Suggestions, anyone? If you can live without the IN class, the Hesiod nameserver mods to BIND we made at MIT would seem to be just what you want. It essentially uses class HS, type TXT for its resource records. The TXT type is just free-form ASCII text, and further qualification ("typing") is done with a second string, the HesiodNameType, which when concatenated with the name of the object to be resolved, is passed by the Hesiod calls to the DNS. Since there was no way to predict what data Hesiod would be carrying in the future, we decided against defining new RR types, preferring to encode this in the domain names of the RRs. char **cp; e.g., cp = hes_resolve(hostname-or-ip-addr-as-octet-string, "physaddr"); /* Now cp == NULL */ /* or cp[0], cp[1], cp[N-1] contain strings and cp[N] == NULL */ cp[0] == "x25 some-long-ISO-addr", etc. You get the idea. In our use of Hesiod within Athena, we quite commonly return strings of the form TYPE strings-meaningful-for-said-TYPE and application which use Hesiod know about the structure of the strings for a particular HesiodNameType. If you want to examine Hesiod, it can be retrieved as pub/hesiod.tar.Z from athena-dist.mit.edu. -- Steve Dyer dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer dyer@arktouros.mit.edu