<!--
この section は綴りが適当で、typo が多いようです。
そのため (？) 意訳も多くなってしまいました。
意訳と言いながら意味のとれていない部分もあるので、(^^;
原文と比較のうえ査読いただければ助かります。
-->


<!--
<SECT1 ID="DNS"><TITLE>DNS</TITLE>
-->
<SECT1 ID="DNS"><TITLE>DNS</TITLE>

<!--
<PARA>There are to "forms" of dns that can be configured via ldap. The first is
using the nss_ldap (again) also for the dns.
This means that only clients that modify their <FILENAME>/etc/nsswitch.conf</FILENAME>
file will see the dns entries from ldap.
The second way to do it is to use ldap as a backend for bind or tinydns. There
are some projects going on about this subject and i will describe them below.
</PARA>
-->
<PARA>LDAP 経由で設定できる DNS には、ふたつの「形式」があります。
最初のものは、(またもや) nss_ldap を、DNS の代わりに使うというものです。
これはつまり、<FILENAME>/etc/nsswitch.conf</FILENAME> ファイルに
手を加えたクライアントだけが LDAP から DNS エントリを見られるようになる
ということです。
ふたつめの方法は LDAP を bind や tinydns のバックエンドとして
<!--nakano プロジェクト名なら BIND ですし、コマンド名なら bind です。
いずれにしても Bind は中途半端と思います-->
使用することです。これに関連して<!-- about this subject -->活動している
プロジェクトは幾つかあります。それはのちほど説明することにします。
</PARA>

<!--
<SECT2><TITLE>Using nss</TITLE>
-->
<SECT2><TITLE>NSS を使う</TITLE>

<!--
<PARA>When using nss to access (additional) host entries, please take not that
only "friendly" machines (e.g. machines that you know of and whoes configuration
you can control) can use this service. It might be useful for intranet host
lookups that change often, but it cannot be used to distribute your webservers
virtual hostnames to the world. Note that also the <COMMAND>nslookup</COMMAND>
command bypasses both <FILENAME>/etc/hosts</FILENAME> and ldap, so it cannot be
used to check if your setup is working. Use something like
<COMMAND>ping</COMMAND> instead, which does a lookup with the internel
gehostbyname() function.</PARA>
-->
<PARA>NSS を (付加的な) ホストエントリへのアクセスに
使っているときには、「親密」なマシン (つまり<!-- i.e.の typo? -->、
自分が知っていて、その設定を制御することもできるマシン) だけが
このサービスを使えるのだということに注意してください。
これはイントラネットでの、ころころ変わるホスト名解決には
有用かもしれませんが、自分のウェブサーバのバーチャルホスト名を
全世界に公開するには使えません。
また <COMMAND>nslookup</COMMAND> は
<FILENAME>/etc/hosts</FILENAME> も LDAP も経由しないため、
設定がうまくいっているかどうかの確認には使えない
ということも覚えておいてください。かわりに、<COMMAND>ping</COMMAND>
のように内部で gethostbyname() 関数を使って名前解決しているものを
使うようにしてください。
</PARA>

<!--
<SECT3><TITLE>Configuration</TITLE>
-->
<SECT3><TITLE>設定</TITLE>

<!--
<PARA>To have the name server switch use ldap for dns lookups it must be
configured with nss_ldap.
How to set up nss_ldap, you can find in <XREF LINKEND="pamnss">. Here i will
assume you have a working nss_ldap configuration.
The dns lookups of nss are controlled with the <EMPHASIS>hosts</EMPHASIS> line
in <FILENAME>/etc/nsswitch.conf</FILENAME>.
It is very unlikely that you do not already have a hosts line. Most probably it
will contain the <EMPHASIS>files</EMPHASIS> and <EMPHASIS>dns</EMPHASIS>
entries. You should add <EMPHASIS>ldap</EMPHASIS> to it like this:</PARA>
-->
<PARA>Name Service Switch に LDAP で名前解決<!-- dns lookups -->させるには、
nss_ldap を使うよう設定しなくてはなりません。
nss_ldap の設定方法は <XREF LINKEND="pamnss"> に書いてあります。
ここでは正常に動いている nss_ldap の設定があるものとして話を続けます。
NSS による名前解決は <FILENAME>/etc/nsswitch.conf</FILENAME> 内の
<EMPHASIS>hosts</EMPHASIS> 行の内容で制御されます。
まだ hosts 行がないということは、まずありません。
たぶん <EMPHASIS>files</EMPHASIS> と <EMPHASIS>dns</EMPHASIS>
がエントリとして書かれていることでしょう。そこに <EMPHASIS>ldap</EMPHASIS>
を、次のように追加するのです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
hosts:		files, dns, ldap
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
hosts:		files, dns, ldap
</PROGRAMLISTING></PARA>

<!--
<PARA>Think well about the order in which you specify these! It is advised
always to put <EMPHASIS>files</EMPHASIS> as the first entry.
Then, if you want ldap to override your local dns server, you have to make sure
that the ip of the ldap server can be found in the
<FILENAME>/etc/hosts</FILENAME> file.
If not, you will have a nice recursive lookup going. &#045;&#045; You want to look up a
host, it's not in files, so we try to contact the ldap server, whoes ip we don't
know, so we try to look it up in files, where we cannot find it, so we try to
contact the ldap server &#045;&#045; get the point? You could bypass this problem entirely
by referring to your ldap server with an ip number instead of a hostname (in
<FILENAME>/etc/ldap.conf</FILENAME>, that is.)</PARA>
-->
<PARA>順番をよく考えて指定してください！ どのような場合でも
最初に <EMPHASIS>files</EMPHASIS> を置くよう忠告しておきます。
それから、LDAP をローカル DNS サーバよりも優先させたい<!-- override -->
ならば、LDAP サーバの IP が確実に <FILENAME>/etc/hosts</FILENAME>
ファイルの中にあるようにしてください。
そうしないと、困った再帰解決が生じてしまいます。つまりこういうことです。
「あるホスト名を解決したいけれど、ファイル内にはエントリがないので、
LDAP サーバに問い合わせよう<!-- contact -->とする。しかしサーバの IP
を知らないのでファイル内を探してみるが、そこにはないので LDAP サーバに
聞こうとする……」 要点がつかめましたね？ この問題は、ホスト名のかわりに
IP 番号で LDAP サーバを参照する (つまり <FILENAME>/etc/ldap.conf</FILENAME>
の中に書いておく) ことによって、完全に回避することができます。
</PARA>

</SECT3>

<!--
<SECT3><TITLE>Schema</TITLE>
-->
<SECT3><TITLE>スキーマ</TITLE>

<!--
<PARA>The schema used for this, and similar services, can be found in RFC 2307.
Entries used for mapping names to ipnumbers are in an objectclass
<EMPHASIS>ipHost</EMPHASIS>. The name part of the mapping is given ni the
attribute <EMPHASIS>cn</EMPHASIS>, while the ip part lives in
<EMPHASIS>ipHostNumber</EMPHASIS>.
A typical ldif entry would therefore look like this:</PARA>
-->
<PARA>このサービスや同様のサービスに使われるスキーマが RFC 2307
に定義されています。IP 番号にホスト名を割り当てるためのエントリは
<EMPHASIS>ipHost</EMPHASIS> という objectclass に入ります。
割り当てのホスト名の部分は <EMPHASIS>cn</EMPHASIS> 属性の中に入れられ、
IP 部分の方は <EMPHASIS>ipHostNumber</EMPHASIS> に入ります<!-- lives in -->。
ですから、典型的な LDIF のエントリはこのようになります。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
dn: cn=somehostname.mydomain.com,ou=Network,o=YourOrg,c=NL
objectclass: top
objectclass: ipHost
cn: somehostname.mydomain.com
ipHostNumber: 10.1.5.13
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
dn: cn=somehostname.mydomain.com,ou=Network,o=YourOrg,c=NL
objectclass: top
objectclass: ipHost
cn: somehostname.mydomain.com
ipHostNumber: 10.1.5.13
</PROGRAMLISTING></PARA>

<!--
<PARA>Of course, the usual restrictions and possibilities that come with dns
apply.</PARA>
-->
<PARA>もちろん、ふつう DNS に付随する制限や機能は
このサービスにも当てはまります。
</PARA>

</SECT3>

</SECT2>

<!--
<SECT2><TITLE>Using bind</TITLE>
-->
<SECT2><TITLE>bind を使う</TITLE>

<!--
<PARA>There are a few possibilities with bind or tinydns nowadays, but imho none
of them is a "real" solution (yet). I must say, however, that i have no
experience with any of them. They are listed below.</PARA>
-->
<PARA>今日では bind や tinydns にも多少の可能性<!-- possibilities -->
はありますが、これらのいずれも、著者の意見では (今のところ)
「ほんとうの」解決策ではありません。しかしながら、著者が
それらを使った経験がないということも言っておかなくてはなりません。
それらを以下に列挙します。
</PARA>

<!--
<SECT3><TITLE>Bind patch</TITLE>
-->
<SECT3><TITLE>bind ヘのパッチ</TITLE>

<!--
<PARA>David Storey is working on a patch for Bind, which makes it get its data
directly from ldap. This means that every time a request is performed on the
bind daemon, it does a lookup in ldap. At this time, his future plans were:
(Taken from the source) to have at least two modes of operation: cached and
dynamic.
Cached mode operates just like an rbtdb by loading the entire zone into memory
and reloading whenever the server is HUP'ed.
Dynamic mode is much like it is now: every request means an LDAP lookup. For up
to date information you should check out the <ULINK
URL="ftp://ftp.eyeo.com/bind/">sources</ULINK>.</PARA>
-->
<PARA>David Storey が bind へのパッチの作業をしています。
このパッチは、データを直接 LDAP から取得するようにするものです。
それは bind デーモン上に要求がなされるたびに LDAP で
解決することを意味します。現時点での彼の計画 (ソースから引用) は、
「少なくともふたつのモード ― キャッシュモードとダイナミックモード ― で
動くようにすること」です。
キャッシュモードでは、ちょうど rbtdb のように、ゾーンをまるごと
メモリにロードして動作し、サーバが HUP シグナルを受けるとロードしなおします。
ダイナミックモードでは現状とよく似ていて、すべての要求が LDAP
への参照となります<!-- means -->。最新情報は
<ULINK URL="ftp://ftp.eyeo.com/bind/">ソース</ULINK> を確認してください。
</PARA>

</SECT3>

<!--
<SECT3><TITLE>ldap2dns</TITLE>
-->
<SECT3><TITLE>ldap2dns</TITLE>

<!--
<PARA>Taken intirely from their website:</PARA>
-->
<PARA>ウェブサイトからまるごと引用します。
</PARA>

<!--
<PARA>ldap2dns is a program to create DNS records directly from a LDAP
directory. It can and should be be used to replace the secondary name-server by
a second primary one.
ldap2dns helps to reduce all kind of administration overhead. No more flat file
editing, no more zone file editing. After having installed ldap2dns, the
administrator only has to access the LDAP directory.
If he desires he can add access control for each zone, create a webbased GUI and
add all other kind of zone and resource record information without interfering
with the DNS server.
ldap2dns is designed to write binary <FILENAME>data.cdb</FILENAME> files used by
tinydns, but also may be used to write <FILENAME>.db</FILENAME>-files used by
named.</PARA>
-->
<PARA>「ldap2dns は DNS レコードを直接 LDAP ディレクトリから作成する
プログラムです。これは、セカンダリネームサーバを第二のプライマリサーバで
置換するために使うことができますし、そのために使うべきです。
ldap2dns はあらゆる煩わしい管理作業を軽減する助けになります。
もう単調なファイル編集は必要ありません。ゾーンファイル編集も必要ありません。
ldap2dns をインストールしてしまえば、管理者はただ LDAP ディレクトリに
アクセスするだけでよいのです。望むなら、管理者はゾーンごとにアクセス
コントロールをかけることができます。ウェブベースの GUI を作成して、DNS
に干渉することなく、あらゆる種類のゾーンやリソースレコードの情報を
追加することもできます。
ldap2dns は tinydns に使用される <FILENAME>data.cdb</FILENAME> という
バイナリファイルを書き出すよう設計されていますが、named に使用される
<FILENAME>.db</FILENAME> ファイルを書き出すようにすることもできます。」
</PARA>

<!--
<PARA>The projects homepage is
<ULINK URL="http://ldap2dns.tiscover.com/">here</ULINK>.</PARA>
-->
<PARA>このプロジェクトのホームページは <ULINK
URL="http://ldap2dns.tiscover.com/">ここ</ULINK> です。
</PARA>

</SECT3>

<!--
<SECT3><TITLE>ispman</TITLE>
-->
<SECT3><TITLE>ispman</TITLE>

<!--
<PARA>ispman is a perl-based isp management package. It uses an ldap database
backend for it's configuration. It can do lot's of things, so you might check
out what you need exactly. It's at <ULINK
URL="http://www.ispman.org">ispman.org</ULINK>.</PARA>
-->
<PARA>ispman は Perl で書かれた ISP 管理パッケージです。
これは LDAP データベースを設定のバックエンドに使います。
このパッケージは非常に多くのことができるので、正確に自分の
必要としているものを確認した方がよいかもしれません。
アドレスは <ULINK URL="http://www.ispman.org">ispman.org</ULINK> です。
</PARA>

</SECT3>

</SECT2>

</SECT1>
