dcbindht

名称

OpenTP1通信時または系切り替え機能使用時のホスト名の指定

形式

{{dcbindht -h ホスト名
        〔-n ネットワーク名〔,ネットワーク名〕…〕}}

機能

OpenTP1が動作するホストが複数のネットワークアダプタで接続されている場合は,OpenTP1がどのネットワークアダプタを使用して通信するかを指定します。一つのネットワークアダプタに複数のIPアドレスを付加できる場合は,OpenTP1がどのIPアドレスを使用して通信するかを指定します。また,IPアドレスを引き継ぐ系切り替えを行うホストの場合も指定する必要があります。

この機能は,dcbindht定義コマンドで指定されたホスト名に対応するIPアドレスで,OpenTP1が動作しているということを,通信先のOpenTP1に明示的に通知します。

ネットワークアダプタが一つで,かつIPアドレスを一つしか持っていないマシンの場合,OpenTP1が通信に使用するIPアドレスも物理的に一つに決まりますので,このコマンドを指定する必要ありません。

2:1系切り替え構成や,相互系切り替え構成のように,IPアドレスを引き継ぐ系切り替えで,1ホスト内に複数のOpenTP1が稼働することがある場合,このコマンドを指定してください。なお,ルータなどを経由してネットワーク間を接続している場合は,ここで指定するネットワークアダプタを経由して通信するすべてのネットワークを指定しなければなりません。

指定を省略した場合,複数のネットワークアダプタ,または複数のIPアドレスのどれを使用してアクセスするかは,TCP/IPの制御で決定されます。ただし,複数のIPアドレスや複数のネットワークアダプタが接続されているマシンでも,指定を省略した場合,期待していないIPアドレスが通信先のOpenTP1に通知され,通信時に通信障害が発生することがあります。

次に示すように,この定義のネットワーク名の指定を省略した場合は,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アドレスを使用します。

注意事項

図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と通信するためには,次のように定義して通信に使用するネットワークアダプタを特定してください。

図3-2 系切り替え前の通信形態

[図データ]

dcbindht定義コマンドを指定すると,OpenTP1 Aへの通信にはIPアドレスip=aを使い,OpenTP1 Xへの通信にはIPアドレスip=xを使って通信します。

図3-3 系切り替え後の通信形態

[図データ]