Go to main content
Oracle® Solaris 11.3 ディレクトリサービスとネームサービスでの作業: DNS と NIS

印刷ビューの終了

更新: 2016 年 11 月
 
 

ネームサービススイッチの概要

ネームサービススイッチは、管理者がネットワーク情報のタイプごとに、どのネーム情報サービスまたはソースを使用するかを指定できるようにする、構成可能な選択サービスです。各ネーム情報サービスは、データベースと呼ばれます。ネームサービススイッチは、次のような getXbyY() インタフェースのいずれかを呼び出すクライアントアプリケーションによって使用されます。

  • gethostbyname()

  • getpwuid()

  • getpwnam()

  • getaddrinfo()

各システムは、SMF リポジトリ内に独自の構成を持っています。ネームサービススイッチで定義された各プロパティーによって、ホスト、パスワード、グループなどの特定のデータベースが識別されます。各プロパティーに割り当てられた値によって、情報をリクエストする先の 1 つまたは複数のソースが一覧表示されます。これらの値にガイダンスまたはオプションが含まれる場合もあります。このガイダンスには、サービスに対して必要な再試行の回数、適用するタイムアウトの種類、サービスが失敗した場合の処理などが含まれている可能性があります。

ネームサービススイッチは、DNS サーバーとクライアントサービスの管理で説明しているように、クライアントの DNS 転送も制御します。DNS 転送によって、クライアントへのインターネットでのアクセスが可能になります。

ネームサービススイッチのデータベースとソース

ネームサービススイッチによってサポートされるデータベースは、SMF サービスを使用して構成します。これらのデータベースのリストを取得するには、svcfg コマンドを次の例に示すように使用します。

# svccfg -s name-service/switch listprop config
config                      application
config/default              astring             files
config/password             astring             "files nis"
config/group                astring             "files nis"
config/host                 astring             "files nis"
config/network              astring             "nis [NOTFOUND=return] files"
config/protocol             astring             "nis [NOTFOUND=return] files"
config/rpc                  astring             "nis [NOTFOUND=return] files"
config/ether                astring             "nis [NOTFOUND=return] files"
config/netmask              astring             "files nis"
config/bootparam            astring             "nis [NOTFOUND=return] files"
config/publickey            astring             "nis [NOTFOUND=return] files"
config/netgroup             astring             nis
config/automount            astring             "files nis"
config/alias                astring             "files nis"
config/service              astring             "files nis"
config/printer              astring             "user nis"
config/auth_attr            astring             "files nis"
config/prof_attr            astring             "files nis"
config/project              astring             "files nis"

注 -  timezone テーブルではネームサービススイッチが使用されないため、このテーブルはスイッチのプロパティーリストに含まれていません。

SMF の観点から、これらのデータベースは、サービスの構成可能なプロパティーであると見なされます。各データベースには、次のタイプの情報が格納されます。

  • alias – 電子メールアドレスと別名

  • auth_attr – 承認名と説明

  • automount – ローカルでマウントされる可能性のあるリモートファイルシステムに関する情報

  • bootparam – ディスクレスクライアントのブート情報

  • ether – Ethernet アドレスおよび一致するホスト名

  • group – ファイルへのアクセスを共有するために使用できるグループに関する情報

  • host – IP アドレスおよび一致するホスト名

  • netgroup – 共有 NFS ファイルシステムの情報

  • netmask – IP サブネットを実装するために使用されるネットワークマスク

  • network – ネットワークごとの名前と番号

  • password – ユーザーアカウント情報

  • prof_attr – 実行プロファイルの名前、説明、およびその他の属性

  • project – プロジェクト名、一意の識別子、および関連付けられたリソース割り当て

  • protocol – インターネットプロトコルの名前、プロトコル番号、および別名

  • publickey – 公開鍵情報

  • rpc – RPC プログラムの名前と番号

  • service – インターネットサービスの名前、ポート、およびプロトコル

  • tnrhdb – Oracle Solaris の Trusted Extensions 機能を使用しているホストのセキュリティー属性

  • tnrhtp – Trusted Extensions によって使用されるテンプレート

さらに、ネームサービススイッチ内の default プロパティーによって、ほかでは定義されないすべてのデータベースのソース文字列が定義されます。すべてのデータベースとその情報が /etc ディレクトリでローカルに検出されたことを示すため、このプロパティーの値は files に設定されます。使用可能なソースに基づいて、default プロパティーの別の構成を設定できます。手順については、すべてのネームデータベースのソースを変更する方法を参照してください。

default プロパティーを使用すると、データベースごとにソースを構成するのではなく、データベースに広く適用されるソースを構成することができます。

データベースのネームサービススイッチで一覧表示できるソースの種類は次のとおりです。

  • ad – Active Directory サーバー上に格納されているデータベースを識別します。

  • pam_list – 廃止された compat データベースを置き換えます。パスワードやグループ情報に使用すると、/etc/passwd/etc/shadow、および /etc/group ファイルで旧形式の「+」または「-」構文をサポートできます。

  • dns – ホスト情報を DNS から取得する必要があることを指定します。

  • files – クライアントの /etc ディレクトリ内に格納されているファイルを指定します (たとえば、/etc/passwd)。

  • ldap – エントリを LDAP ディレクトリから取得する必要があることを指定します。

  • mdns – mDNS を使用してホスト情報を指定します。

  • nis – NIS マップを指定します (たとえば、hosts マップ)。


注 -  auto_homeauto_master のテーブルおよびマップのスイッチ検索条件は、automount と呼ばれる 1 つのカテゴリに結合されます。

ネームサービススイッチのソース形式

    次の検索条件形式を使用すると、1 つまたは複数の情報ソースを選択したり、ソースが使用される順序を指定したりできます。

  • 単一ソース – 情報タイプに 1 つのソースのみが含まれている場合 (files など)、スイッチを使用する検索ルーチンは、そのソース内の情報のみを検索します。情報が見つかった場合、「success」というステータスメッセージが返されます。情報が見つからない場合は、検索が停止され、「success」以外のステータスメッセージが返されます。ステータスメッセージに基づいて何をするかは、ルーチンによって異なります。

  • 複数ソース — データベースに特定の情報タイプの複数のソースが含まれている場合、スイッチは検索ルーチンに、最初に一覧表示されているソース内を検索するよう指示します。情報が見つかった場合、「success」というステータスメッセージが返されます。最初のソースで情報が見つからない場合は、次のソースが検索されます。ルーチンは情報が見つかるか、return 処理によって中止されるまで全ソースを検索します。必要な情報がどのソースにもなかったとき、ルーチンは検索を停止し、non-success というステータスメッセージを返します。

デフォルトでは、Oracle Solaris 11 リリースで 1 番目のソースは files です。この構成によって、一覧表示されている次のソースが使用できない場合でもシステムのフリーズが回避されます。

ネームサービススイッチのステータスメッセージ

ルーチンが情報を見つけた場合、そのルーチンは success ステータスメッセージを返します。探している情報が見つからない場合は、3 種類のエラーステータスメッセージのいずれかが返されます。可能性のあるステータスメッセージは次のとおりです。

  • SUCCESS – 要求されたエントリが指定されたソース内で見つかりました。

  • UNAVAIL – ソースが応答しないか、または使用できません。つまり、どのデータベースソースも見つからなかったか、またはアクセスできませんでした。

  • NOTFOUND – ソースが「エントリなし」で応答しました。つまり、データベースにはアクセスしましたが、必要な情報が見つかりませんでした。

  • TRYAGAIN – ソースはビジー状態にあり、次回は応答する可能性があります。つまり、データベースは見つかりましたが、クエリーに応答できませんでした。

ネームサービススイッチのスイッチアクションオプション

ネームサービススイッチに、次の 2 つのアクションのどちらかでステータスメッセージに応答するよう指示できます。

  • return – 情報の検索を停止します。

  • continue – 次のソースを試行します。

    さらに、TRYAGAIN ステータスメッセージについては、次のアクションを定義できます。

  • forever – 現在のソースを無期限に再試行します。

  • n – 現在のソースをさらに n 回再試行します。

ネームサービススイッチのデフォルトの検索条件

ネームサービススイッチのステータスメッセージとアクションオプションの組み合わせによって、検索ルーチンが各ステップで何を実行するかが決定されます。ステータスメッセージとアクションオプションの組み合わせによって、検索条件が構成されます。

スイッチのデフォルトの検索条件は、どのソースでも同じです。検索条件のいくつかを次に示します。

  • SUCCESS=return – 情報の検索を停止します。見つかった情報を使用して処理を続行します。

  • UNAVAIL=continue – 次のネームサービススイッチソースに進み、検索を続行します。次のソースがなければ、「NOTFOUND」というステータスを返します。

  • NOTFOUND=continue – 次のネームサービススイッチソースに進み、検索を続行します。次のソースがなければ、「NOTFOUND」というステータスを返します。

  • TRYAGAIN=forever – 現在のネームサービススイッチソースを無期限に検索します。

  • TRYAGAIN=3 – 現在のソースを 3 回検索します。TRYAGAIN アクションは、操作を 3 回再試行したあとで continue に遷移し、次のネームサービススイッチソースを検索します。

デフォルトの検索条件は、STATUS=action 構文を使用して別の条件を明示的に指定することによって変更できます。手順については、データベースの検索条件を構成する方法を参照してください。


注 -  ネームサービススイッチでの検索は、項目が一覧表示されている順序で実行されます。ただし、passwd –r repository コマンドを使用して特に指定されていないかぎり、パスワード更新は逆の順序で実行されます。詳細は、ネームサービススイッチとパスワード情報を参照してください。

クライアントのライブラリルーチンには、ネームサービススイッチで特定の SMF プロパティーまたは default の SMF プロパティーが定義されていない場合や、プロパティーが構文的に正しくない場合に使用される、コンパイル時に組み込まれるデフォルトのエントリが含まれています。通常、これらのコンパイル時に組み込まれるデフォルトは files のみです。

ネームサービススイッチ内の keyserv および publickey エントリ

keyserv デーモンは、keyserv が起動されている場合にのみ、ネームサービススイッチ内の publickey プロパティーを読み取ります。ネームサービススイッチのプロパティーが変更された場合、keyserv は、svcadm refresh svc:/network/rpc/keyserv:default を使用して keyserv デーモンが再起動されるまでその変更を登録しません。プロパティーの変更が SMF リポジトリにロードされるように、このコマンドはプロパティーが変更され、name-service/switch サービスがリフレッシュされたあとに実行する必要があります。