This article needs additional citations for verification. (June 2019) |
コンピューティングにおいて、Hesiodはプロジェクト アテナ(1983-1991)で始まった名前サービスであり、ギリシャの詩人ヘシオドスにちなんで名付けられました。ヘシオドスの神統記にはギリシャの神々の名前と起源が列挙されています。[1] [2] [3] Hesiod はDNS機能を使用して、頻繁に変更されない情報のデータベースへのアクセスを提供します。Unix 環境では、/etc/passwd、/etc/group、/etc/printcapファイルなどに保持されている情報を配布するために使用されます。Hesiod と同じ種類の情報を配布するためにLDAPサーバーが使用されることがよくあります。ただし、Hesiod は既存の DNS サーバーを活用できるため、ネットワークへの導入はかなり簡単です。
Unix のようなシステムでは、通常、/etc/passwdファイル内にローカル ユーザーごとに次のような行があります。
foo:x:100:10:Foo バー:/home/foo:/bin/sh
この行は、コロンで区切られた 7 つのフィールドで構成され、次のデータを保持します。
- ユーザーのログイン名(文字列)
- パスワードハッシュ、またはシャドウパスワードファイルが使用されている場合は "x" (文字列)。
- ユーザーID(符号なし整数)
- ユーザーのプライマリグループ ID (符号なし整数)。
- Gecos フィールド(コンマで区切られた 4 つのフィールド、文字列)。
- ユーザーのホームディレクトリ(文字列)
- ユーザーのログインシェル (文字列)。
このシステムは、少数のユーザーが少数のマシンを利用する場合には問題なく機能します。しかし、より多くのユーザーがより多くのマシンを利用するようになると、この情報を一元管理することが非常に重要になります。そこでHesiodの出番です。
Hesiod は、この情報を各マシンに保存する代わりに、DNS サーバーのレコードに保存します。これにより、各クライアントはローカルでこの情報を探す代わりに、DNS サーバーに問い合わせることができます。BIND では、上記のユーザーのレコードは次のようになります。
foo.passwd.ns.example.net HS TXT "foo:x:100:10:Foo Bar:/home/foo:/bin/sh" 100.passwd.ns.example.net HS TXT "foo:x:100:10:Foo Bar:/home/foo:/bin/sh" 100.uid.ns.example.net HS TXT "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"
システムが情報に異なる方法でアクセスできるように、レコードが3つあります。最初の行はログイン名によるユーザー検索をサポートし、次の2行はユーザーのuidによる情報検索を可能にします。予想通り、INクラスではなくHSクラスが使用されていることに注意してください。ドメインネームシステムには、 Hesiodの目的のために特別なサービスクラスがあります。
クライアント側でもいくつかの設定が必要です。この設定の/etc/hesiod.confファイルは以下のようになります。
rhs=.example.net lhs=.ns クラス=HS、IN
/etc/resolv.confファイルはHesiodレコードを持つネームサーバーを使用します。
$ hesinfo foo パスワード foo:x:100:10:Foo バー:/home/foo:/bin/sh
ここで何が起こるかというと、fooとpasswd が/etc/hesiod.conf ファイルのlhsとrhs の値と結合され、 foo.passwd.ns.example.netという完全修飾名が作成されます。その後、DNS サーバーにこのエントリが照会され、そのレコードの値が返されます。
参照
- ネームサービススイッチ(NSS)
- ネットワーク情報サービス(NIS)
- 軽量ディレクトリアクセスプロトコル(LDAP)
- ケルベロス
参考文献
- ^ Dyer, Stephen P.; Hsu, Felix S. 「§ E.2.3: Hesiod Name Service」(PDF) . Project Athena 技術計画(技術報告書) .マサチューセッツ工科大学. 2025年4月2日時点のオリジナルよりアーカイブ(PDF) . 2025年9月29日閲覧。
- ^ Dyer, Stephen P. (1988年2月). 「The Hesiod Name Server」. 1988 Winter USENIX Technical Conference Proceedings . USENIX Winter Conference. USENIX Association . pp. 183– 198. 2025年9月29日閲覧。
- ^ Jennifer G. Steiner、Daniel E. Geer, Jr. (1988年7月21日). 「Athena環境におけるネットワークサービス」. 1988年冬季Usenixカンファレンス議事録. CiteSeerX 10.1.1.31.8727 .