Solaris ネーミングの管理

第 26 章 FNS およびグローバルネーミングシステム

この章では、2 つのグローバルネーミングシステム (DNS と X.500/LDAP) とそれらを FNS でフェデレートする方法について説明します。

FNS およびグローバルネーミングシステム

FNS とグローバルネームサービスの関係についての概要および背景に関しては、「グローバルネームサービス」を参照してください。

FNS は、エンタープライズネーミングシステムのグローバルネーミングシステム、DNS、および X.500/LDAP のフェデレーションをサポートします。この章では、NIS+ を DNS および X.500 でフェデレートするための手順について説明します。通常、この手順には以下の内容が含まれます。


注 -

エンタープライズレベルのネームサービスが NIS+ もしくは NIS の場合、グローバルネーミングサービスしかフェデレートできません。企業用にファイルベースのネームサービスを使用している場合、DNS も X.500/LDAP もフェデレートできません。


ルートリファレンスを取得する

DNS、あるいは X.500/LDAP でエンタープライズネームサービスをフェデレートする場合、企業や企業外部のグローバルインターネットからの、あるいはそれらへのアクセスができるようにするために、情報をこれらそれぞれのネーミングシステムに追加する必要があります。この情報とは「ルートリファレンス」のことで、これは、ある特定の企業の名前空間の最上部にどのようにして到達するかを示すネットワークアドレス情報からできています。

ルートリファレンスは、XDR で符号化した 1 つの文字列を含む 1 つのアドレスからできています。アドレスのタイプと内容は、使用しているエンタープライズレベルのネームサービスによって、つまり NIS+ かあるいは NIS かによって異なります。

NIS+ ルートリファレンス

エンタープライズレベルのネームサービスが NIS+ の場合、ルートリファレンスのアドレスタイプは、onc_fn_nisplus_root になります。ルートリファレンスネットワークアドレスには、必要 (必須の) 要素が 2 つと、オプションの要素が 1 つあります。要素は、以下のように空白文字で区切られます。


root-domain server [server_IP_address]
表 26-1 NIS+ ルートリファレンス

アドレス要素 

説明 

root_domain

NIS+ ルートドメインの完全指定名 (末尾にドットが必要) 

server

nis+_root_domain にサービスを行なっている NIS+ サーバー (マスターあるいは複製) のうちの 1 つのホスト名

server_IP_address

nis+server の IP アドレス。これは、nis+server の名前がわかっている場合は、オプション。このことは、/etc/nsswitch.conf ファイルのリストにあるネームサービスのどれか 1 つにより、これが取得できなければならないことを意味している

たとえば、NIS+ ルートドメインが doc.com. (末尾のドットに注意) で、ホスト nismaster.doc.com を使ってこれに到達できるとします。この場合ルートリファレンスは以下のようになります。


doc.com. nismaster.doc.com

上の例で、サーバーの IP アドレスが指定されていないのは、これ以外の方法で取得できるからです。何らかの理由で、その IP アドレスがこれ以外の方法で取得できない場合、ルートリファレンスは以下のようになります。


doc.com. nismaster.doc.com 123.123.123.33

NIS ルートリファレンス

エンタープライズレベルのネームサービスが NIS の場合、ルートリファレンスのアドレスタイプは、onc_fn_nis_root になります。ルートリファレンスネットワークアドレスには必要 (必須の) 要素が 2 つと、オプションの要素が 1 つあります。要素は、以下のように空白文字で区切られます。


root_domain server [server_IP_address]
表 26-2 NIS ルートリファレンス

アドレスの要素 

説明 

root_domain

NISドメインの完全指定名 (末尾にスラッシュが必要) 

server

root_domain にサービスを行なっている NIS サーバー (マスターか、あるいは複製) のうちの 1 つのホスト名

server_IP_address

nis-server の IP アドレス。これは、nis-server のアドレスがわかっている場合は、オプション。このことは、/etc/nsswitch.conf ファイルのリストにあるネームサービスのどれか 1 つにより、これが取得できなければならないことを意味している

たとえば、NIS ドメインが doc.com で、ホスト ypmaster.doc.com を使ってこれに到達できるとします。ルートリファレンスは以下のようになります。


doc.com/ ypmaster.doc.com

上の例で、サーバーの IP アドレスが指定されていないのは、これ以外の方法で取得できるからです。何らかの理由でその IP アドレスが、これ以外の方法で取得できない場合、ルートリファレンスは以下のようになります。


doc.com/ ypmaster.doc.com 123.123.123.37

DNS でフェデレートする

この項では、NIS+ あるいは NIS が使われている下位のエンタープライズネーミングシステムのための、TXT (テキスト) レコードを追加するのに必要な手順を説明します。DNS で下位のネーミングシステムをフェデレートする場合、DNS にリファレンス情報を追加し、下位のネーミングシステムのルートリファレンスへの到達の仕方を記述する必要があります。

  1. ルートリファレンスを取得します。

    詳細は、「ルートリファレンスを取得する」を参照してください。

  2. ルートリファレンス TXT レコードを DNS ループバックファイルに追加します。

    デフォルトで、このマニュアルでは、このファイル用に /etc/named.local の名前を使用します (これ以外で、このファイルによく使われる名前は、domain.127.0.0 あるいは db.127.0.0 です)。

    ルートリファレンス TXT レコードには以下の形式があります。

    NIS+ の場合


    TXT "XFNNISPLUS rootdomain server [server_IP_address]"

    たとえば、次のようになります。


    TXT "XFNNISPLUS doc.com. nismaster.doc.com"

    NIS の場合


    TXT "XFNNIS rootdomain server [server_IP_address]"

    たとえば、次のようになります。


    TXT "XFNNIS doc.com/ ypmaster.doc.com"

    TXT レコードは、NS (ネームサーバー) レコードのエントリを含む DNS ドメインに関連していなければなりません。以下は、DNS ドメインの例を、その中でバインドされている NIS+ への参照情報とともに示したものです。


    ORIGIN doc.com
    @ IN SOA foo bar.eng.doc.com
    	(
    	100 ;; Serial
    	3600 ;; Refresh
    	3600 ;; Retry
    	3600 ;; Expire
    	3600 ;; Minimum
    	)
    	NS nshost
    	TXT "XFNNISPLUS doc.com. nismaster 123.123.123.33"
    nshost IN A 133.33.33.34

    DNS ファイルの詳細は、「DNS の構成ファイルとデータファイル」を参照してください。

  3. TXT レコードを DNS テーブルに追加した後、DNS サーバーを再スタートするか、あるいはこれにテーブルを再度読むようシグナルを送ります。


    # kill -HUP pid
    

    pid のところには、in.named のプロセス ID 番号が入ります。

    DNS TXT を XFN リファレンス用に使用する方法の詳細は、「XFN リファレンス用 DNS 文書レコードの書式」を参照してください。

X.500/LDAP でフェデレートする

X.500/LDAP で下位のネーミングシステム (NIS+ または NIS) をフェデレートする場合、以下の規則があります。

X.500 ルートリファレンスを指定する

  1. NIS+ 階層構造用の NIS+ ルートリファレンスを取得します。

    詳細は、「ルートリファレンスを取得する」を参照してください。

  2. XFN リファレンス属性をサポートする X.500 エントリを作成します。

    たとえば、以下のコマンドは、オブジェクトクラスである toporganization、および XFN-supplement (1.2.840.1135436.25) を使って、c=us/o=doc と呼ばれる新しい X.500 エントリを作成します。XFN-supplement オブジェクトクラスにより、c=us/o=doc エントリに、下位のネーミングシステム用のリファレンス情報を保存できます。


    # fnattr -a .../c=us/o=doc object-class ¥
    top organization XFN-supplement
    

    X.500 エントリがすでに存在していて、XFN-supplement オブジェクトクラスで定義されたものでない場合、これを削除し、オブジェクトクラスを追加して作成し直す必要があります。そうでないと、下位のネーミングシステムに関するリファレンス情報を保持しておくことができなくなります。

  3. 下位のシステムに関するリファレンス情報をエントリに追加します。

    X.500 エントリを作成した後、適切なルートリファレンスを指定したエントリにバインドすることにより、下位のシステムに関する情報を追加できます。

    たとえば、下位のネーミングシステムが NIS+ で、使用する NIS+ サーバーが nismaster の場合、以下のように入力します。


    # fnbind -r .../c=us/o=doc/ onc_fn_enterprise onc_fn_nisplus_root ¥
    "doc.com. nismaster
    

    下位のネーミングシステムが NIS で、使用する NIS サーバーが ypmaster の場合、以下のように入力します。


    # fnbind -r .../c=us/o=doc/ onc_fn_enterprise onc_fn_nis_root ¥
    "doc.com/ ypmaster"
    

    これらの例では、ルートのドメイン名 doc.com. を使って、NIS+ あるいは NIS 階層構造のリファレンスを X.500 エントリ c=us/o=doc の次のネーミングシステムポインタ (NNSP) にバインドしており、このようにして doc.com. 名前空間を x.500 名前空間にリンクしています。

    使用しているアドレスのフォーマットは、「ルートリファレンスを取得する」で説明したルートリファレンスの形式です。fnbind に対する名前の引数 .../c=us/o=doc/ の末尾に付いているスラッシュは、リファレンスがエントリ自体ではなく、エントリの NNSP にバインドされることを示すために使っていることに注意してください。

    X.500 エントリおよび XFN リファレンスの詳細は、「XFN リファレンス用 X.500 属性の構文」を参照してください。

X.500 クライアント API を指定する

X.500 クライアント API は、FNS を使って X.500 にアクセスする場合に必要です。以下の 2 つの異なるクライアントのうちどちらか 1 つを使うことができます。

使用する API は、各マシンの /etc/fn/x500.conf のファイルで指定されています。このファイルには、X.500 および LDAP の設定に関する情報が入っています。このファイルは、直接編集できます。デフォルトの x500.conf ファイルには、以下の 2 つのエントリが入っています。


x500-access: xds ldap
ldap-servers: localhost ldap

localhost および ldap のところには、1 つあるいは複数の LDAP サーバーの IP アドレス、またはホスト名が入ります。

最初のエントリでは、X.500 が API にアクセスする順序を指定します。上の例の場合、X.500 はまず XDS/XOM を使用しようとします。XDS/XOM が使用できない場合、LDAP を使用します。エントリが x500-access: ldap xds になっている場合、x.500 は LDAP を使い、LDAP が使用できない場合にだけ XDS に戻ります。

2 番目のエントリでは、LDAP を実行しているサーバーの IP アドレス、またはホスト名を表示します。各サーバーが、LDAP 接続が成功するまで、次々に試されます。上の例の場合、localhost が最初に試されます。LDAP がそのサーバーで使用できない場合、次のサーバーが試されます。