wiki:Hesiod

Version 1 (modified by jdreed, 13 years ago) (diff)

--

Hesiod is a simple string lookup service built on top of the Domain Name System. Conceptually, the service translates a pair of strings (the "name" and "type") into a set of result strings. This lookup is done very simply; a DNS lookup is done for name.type.ns.athena.mit.edu and the strings in the resulting TXT records are returned.

Hesiod is used in several places in Debathena:

  • Retrieving a user's entries in the passwd and group databases
  • Determining which mail system they're using and if IMAP, which server to speak to
  • Translating a locker name to an AFS path, including the user's homedir
  • Determining a workstation's "cluster" information, including whether or not the workstation is designated as a "public" cluster machine, whether it pulls from the production APT repo or the development/proposed repos
  • Determining service information (port/protocol pairs)
  • Determining servers for a specific service

Hesiod may, in some cases, be used to select a default printer for a specific workstation. This information is ignored in the public cluster environment.

Hesiod can be queried with the hesinfo command. The hes command in the consult locker takes a Hesiod name and iterates over all possible Hesiod types.