dcbindht
形式
{{dcbindht -h ホスト名 〔-n ネットワーク名〔,ネットワーク名〕…〕}}
機能
OpenTP1が動作するホストが複数のネットワークアダプタで接続されている場合は,OpenTP1がどのネットワークアダプタを使用して通信するかを指定してください。一つのネットワークアダプタに複数のIPアドレスを付加できる場合は,OpenTP1がどのIPアドレスを使用して通信するかを指定してください。
また,IPアドレスを引き継ぐ系切り替えを行うホストの場合も指定する必要があります。
この機能は,dcbindht定義コマンドで指定されたホスト名に対応するIPアドレスで,OpenTP1が動作しているということを,通信先のOpenTP1に明示的に通知します。
ネットワークアダプタが一つで,かつIPアドレスを一つしか持っていないマシンの場合,OpenTP1が通信に使用するIPアドレスも物理的に一つに決まりますので,このコマンドを指定する必要ありません。
2:1系切り替え構成や,相互系切り替え構成のように,IPアドレスを引き継ぐ系切り替えで,1ホスト内に複数のOpenTP1が稼働することがある場合,このコマンドを指定してください。なお,ルータなどを経由してネットワーク間を接続している場合は,ここで指定するネットワークアダプタを経由して通信するすべてのネットワークを指定しなければなりません。マルチホームドホストの形態で複数のOpenTP1を使用する場合の注意事項については,マニュアル「OpenTP1 解説」のマルチホームドホストの形態での注意事項の説明を参照してください。
このコマンドの指定を省略した場合,複数のネットワークアダプタ,または複数のIPアドレスのどれを使用してOpenTP1がアクセスするかは,TCP/IPの制御で決定されます。TCP/IPの制御によって,期待していないIPアドレスが通信先のOpenTP1に通知されると,通信先のOpenTP1からの応答送信時に通信障害(ファイアウォールを通過できないなど)が発生するおそれがあります。このため,通信先のOpenTP1に通知する送信元IPアドレスをこのコマンドで決定してください。
次に示すように,この定義のネットワーク名の指定を省略した場合は,OpenTP1はすべての通信で,指定されたホスト名に対応するIPアドレスを使用します。この定義にネットワーク名の指定を省略した値を複数指定することはできません。複数指定した場合,先に定義された値が有効になり,あとに定義された値は無視されます。また,ネットワーク名が指定されている値とネットワーク名が省略されている値が混在する場合,ネットワーク名称が指定されている値が優先されます。
<システム共通定義> dcbindht -h HOST_A -n NET_A,NET_B # 送信先ネットワークアドレスが # NET_A,NET_Bの場合,ホスト名称 # HOST_Aをbindし,送信します。 dcbindht -h HOST_B # 送信先ネットワークアドレスが # NET_A,NET_B以外の場合,ホスト # 名称HOST_Bをbindし,送信します。 dcbindht -h HOST_C # この定義が指定されても,先に定義 # されたホスト名称HOST_Bが有効に # なります。
サブネットを使用したネットワーク環境でこの定義を指定する場合は,システム共通定義のrpc_netmaskオペランドも指定する必要があります。
サブネットを使用したネットワーク上で稼働させている場合,rpc_netmaskオペランドを指定しないときには,dcbindht定義コマンドに指定したネットワーク名とOpenTP1の認識するネットワークアドレスが一致しないため,dcbindht定義コマンドの指定値が有効になりません。なお,rpc_netmaskに指定するサブネットマスクは,OpenTP1のグローバルドメイン下のネットワークですべて同一でなければなりません。
オプション
●-h ホスト名
〜〈1〜255文字の識別子〉
OpenTP1の通信に使用する,ホスト名,またはネットワークアダプタに対応したホスト名を指定します。一つのネットワークアダプタに複数のIPアドレスを付加できる場合に,IPアドレスを引き継ぐ系切り替えを行うときは,引き継ぎたいIPアドレスに対応したホスト名を指定します。識別子に使用できる文字は英数字,ピリオド,およびハイフンです(ただし,IPアドレス形式は除く)。ホスト名は,/etc/hostsファイルまたはDNSなどで,IPアドレスとのマッピングができなければなりません。ホスト名にlocalhostまたはIPアドレスが127で始まるホスト(例:127.0.0.1)を指定した場合,通信時に通信障害が発生するおそれがあります。
なお,dc_rpc_call_to()を使用する場合,このオプションに指定したホスト名とmy_hostオペランドに指定したホスト名が異なるときは,動作を保証しません。
●-n ネットワーク名
〜〈1〜64文字の識別子〉
-hオプションで指定したネットワークアダプタまたはIPアドレスを経由して通信するネットワーク名を指定します。ネットワーク名は,/etc/networksファイルまたはNISなどで,ネットワーク番号とのマッピングができなければなりません。
このオプションは省略できます。省略した場合,OpenTP1はすべての通信で-hオプションで指定されたホスト名に対応したネットワークアダプタまたはIPアドレスを使用します。
注意事項
-
複数のIPアドレスを持っているホストで,複数のIPアドレスを同一ネットワークに接続する場合,dcbindht定義コマンドの-hオプションで指定するホスト名をmy_hostオペランドにも指定してください。
-
-hオプションに指定するホスト名は,-nオプションに指定したネットワーク上のノードで指定する次の値と一致させてください。一致していない場合,複数のコネクションを使用したり,不要な通信が発生したりするおそれがあります。
-
システム共通定義のall_nodeオペランド,all_node_exオペランドに指定するノード名
-
ドメイン定義ファイルに指定するノード名
-
ユーザサービスネットワーク定義のdcsvgdefコマンドに指定するホスト名
-
dc_rpc_call_to関数の引数directionに指定するホスト名
-
-
ノード自動追加機能を使用する場合,-hオプションにすべて同じホスト名を指定してください。また,指定したホスト名をmy_hostオペランドにも指定してください。-hオプションに異なるホスト名を指定したときや,my_hostオペランドの指定値と異なるとき,ノード自動追加機能が正しく機能しないことがあります。
-
1ホスト内で複数のOpenTP1が稼働し,IPアドレスを引き継ぐ系切り替え構成の場合は,必ずこの指定を定義してください。指定を省略した場合,目的のOpenTP1と通信できないことがあります。
図3-2で示す構成では,OpenTP1 BからOpenTP1 Aへの通信にはIPアドレスip=aまたはip=xを使用します。
OpenTP1は,サービスの要求を受けると,サービスのアドレス情報を取得するために使用したIPアドレスを記憶します。
IPアドレスip=xを使用してアドレス情報を取得したあとに,系切り替えが発生すると,IPアドレスip=xはOpenTP1 XからOpenTP1 X’に引き継がれますが,一方で,OpenTP1 Bはアドレス情報を取得した時に使用したIPアドレスをip=xと記憶したままです。この状態でサービス要求を送信すると,OpenTP1 Aに送信したはずのサービス要求が,OpenTP1 X’に送信されてしまうことがあります(図3-3)。
目的のOpenTP1と通信するためには,次のように定義して通信に使用するネットワークアダプタを特定してください。
-
OpenTP1 Aでは
dcbindht -h HOST_A -n NETL
-
OpenTP1 Xでは
dcbindht -h HOST_X -n NETL
dcbindht定義コマンドを指定すると,OpenTP1 Aへの通信にはIPアドレスip=aを使い,OpenTP1 Xへの通信にはIPアドレスip=xを使って通信します。