ホーム > 未分類 > JBoss AS 7 Admin Guide – Management tasks – Interfaces and ports

JBoss AS 7 Admin Guide – Management tasks – Interfaces and ports

Interface declarations 

AS7 は名前付きインターフェースを使用し、論理名を与えられたインターフェースは設定 (ファイル) 内で参照されます。 

ネットワークインターフェースは論理名と物理インターフェースへのクライテリアにより宣言されます。:

[standalone@localhost:9999 /] :read-children-resources(child-type=interface)
{
    “outcome” => “success”,
    “result” => {
         “management” => {
            “any” => undefined,
            “any-address” => undefined,
            “any-ipv4-address” => undefined,
            “any-ipv6-address” => undefined,
            “inet-address” => expression “${jboss.bind.address.management:127.0.0.1}”,
            “link-local-address” => undefined,
            “loopback” => undefined,
            “loopback-address” => undefined,
            “multicast” => undefined,
            “name” => “management”,
            “nic” => undefined,
            “nic-match” => undefined,
            “not” => undefined,
            “point-to-point” => undefined,
            “public-address” => undefined,
            “site-local-address” => undefined,
            “subnet-match” => undefined,
            “up” => undefined,
            “virtual” => undefined
         },
         “public” => {
            “any” => undefined,
            “any-address” => undefined,
            “any-ipv4-address” => undefined,
            “any-ipv6-address” => undefined,
            “inet-address” => expression “${jboss.bind.address:127.0.0.1}”,
            “link-local-address” => undefined,
            “loopback” => undefined,
            “loopback-address” => undefined,
            “multicast” => undefined,
            “name” => “public”,
            “nic” => undefined,
            “nic-match” => undefined,
            “not” => undefined,
            “point-to-point” => undefined,
            “public-address” => undefined,
            “site-local-address” => undefined,
            “subnet-match” => undefined,
            “up” => undefined,
            “virtual” => undefined
         },
         “unsecure” => {
            “any” => undefined,
            “any-address” => undefined,
            “any-ipv4-address” => undefined,
            “any-ipv6-address” => undefined,
            “inet-address” => expression “${jboss.bind.address.unsecure:127.0.0.1}”,
            “link-local-address” => undefined,
            “loopback” => undefined,
            “loopback-address” => undefined,
            “multicast” => undefined,
            “name” => “unsecure”,
            “nic” => undefined,
            “nic-match” => undefined,
            “not” => undefined,
            “point-to-point” => undefined,
            “public-address” => undefined,
            “site-local-address” => undefined,
            “subnet-match” => undefined,
            “up” => undefined,
            “virtual” => undefined
         }
      }
}

これは 2 つのインターフェースを宣言することを意味しています。 1 つは “management” として参照され、他方は “public” として参照されます。

“management” インターフェースは管理レイヤから必要とされる全てのコンポーネントやサービス( HTTP I/F, Native  管理 I/F )から使用されます。

[standalone@localhost:9999 /] /core-service=management:read-children-resources(child-type=management-interface)
{
    “outcome” => “success”,
    “result” => {
         “http-interface” => {
             “console-enabled” => true,
             “interface” => undefined,
             “port” => undefined,
             “secure-port” => undefined,
             “secure-socket-binding” => undefined,
             “security-realm” => “ManagementRealm”,
             “socket-binding” => “management-http”
         },
         “native-interface” => {
             “interface” => undefined,
             “port” => undefined,
             “security-realm” => “ManagementRealm”,
             “socket-binding” => “management-native”
         }
    }
}

“public” インターフェースはネットワーク通信に関連するいくつかのアプリケーション( Web, Messaging 等)から使用されます。

これらの名前は特別なものではなく、インターフェースはどんな名前でも宣言可能です。設定ファイルの他のセクションはこれらのインターフェースの(物理的な)全ての詳細を含むよりも論理名で参照します(管理ドメイン内の server は別のマシンで動作する可能性があります)。

domain.xml, host.xml, standalone.xml の設定ファイルは全てインターフェースを宣言可能なセクションを含みます。

インターフェースに関する XML 宣言を見ると、いくつかのインターフェース/アドレスの指定にいくつかの記述方式があることが分ります。

記述方式には 2 つのタイプがあり、単一の要素を用いてインターフェースをワイルドカードアドレスにバインドする方式 または、 1 つ以上の特徴を指定してインターフェースもしくはアドレスを完全にマッチさせる方式です。

次のサンプルでは各々のインターフェースに特定の IP アドレスを指定しています。:

<interfaces>
    <interface name=”management“>
        <inet-address value=”127.0.0.1″/>
    </interface>
    <interface name=”public“>
        <inet-address value=”127.0.0.1″/>
    </interface>
</interfaces>

他の指定方式は以下の通りです。:

<interface name=”global”>
    <!– ワイルドカードアドレスの使用 –>
    <any-address/>
</interface>
<interface name=”ipv4-global”>
    <!– IPv4 ワイルドカードアドレスの使用 –>
    <any-ipv4-address/>
</interface>
<interface name=”ipv6-global”>
    <!– IPv6 ワイルドカードアドレスの使用 –>
    <any-ipv6-address/>
</interface>
<interface name=”external”>
    <nic name=”eth0″/>
</interface>
<interface name=”default”>
    <!– 指定されたサブネットの全てのアドレスにマッチします。ポイント・ツー・ポイントではなくマルチキャストをサポートします。 –>
    <subnet-match value=”192.168.0.0/16″/>
    <up/>
    <multicast/>
    <not>
        <point-to-point/>
    </not>
</interface>

Socket Binding Groups

AS7 におけるソケット設定はインターフェース宣言に似ています。ソケットは論理名を使用して宣言され、論理名は他の設定から参照されます。

ソケットの宣言は特定の名前でグルーピング(ソケットバインディンググループ)されます。これによりサーバグループ(ドメイン管理)を設定する際に特定のソケットバインディンググループを容易に参照することができます。

ソケットバインディンググループは論理名を使用してインターフェースを参照します。

<socket-binding-group name=”standard-sockets” default-interface=”public”>
    <socket-binding name=”jndi”port=”1099″/>
    <socket-binding name=”jmx-connector-registry”port=”1090″/>
    <socket-binding name=”jmx-connector-server”port=”1091″/>
    <socket-binding name=”http”port=”8080″/>
    <socket-binding name=”https”port=”8443″/>
    <socket-binding name=”jacorb”port=”3528″/>
    <socket-binding name=”jacorb-ssl”port=”3529″/>
    <socket-binding name=”osgi-http”port=”8090″/>
    <socket-binding name=”remoting”port=”4447″/>
    <socket-binding name=”txn-recovery-environment”port=”4712″/>
    <socket-binding name=”txn-status-manager”port=”4713″/>
    <socket-binding name=”messaging”port=”5445″/>
    <socket-binding name=”messaging-throughput”port=”5455″/>
</socket-binding-group>

ソケットバインディングは以下の情報を含みます:

  • name – 他の設定から参照する際に使用されるソケット設定の論理名
  • port – この設定をベースにしたソケットがバインドされるベース(基本)ポート番号( server はこのベースポート番号を上書きできることに注意して下さい。)
  • interface (optional) – この設定をベースにしたソケットがバインドされるインターフェースの論理名
  • multicast-address (optional) – ソケットがマルチキャストに使用される場合のマルチキャストアドレス
  • multicast-port (optional) – ソケットがマルチキャストに使用される場合のマルチキャストポート番号
  • fixed-port (optional, defaults to false) – true の場合、指定されたソケット番号を必ず使用し上書きさせないことを宣言します。

IPv4 versus IPv6

AS7 は IPv4 と IPv6 の両アドレスをサポートします。デフォルトでは IPv4 を使用した設定が有効化されるため IPv4 ネットワーク上で AS7 を稼働させる場合、設定変更は不要です。AS7 を IPv6 ネットワークで稼働させる場合、JVM ネットワークプロパティの変更と設定ファイル中 (standalone.xml もしくは domain.xml) の IP アドレス値の変更が必要です。

Stack and address preference

java.net.preferIPv4Stack および java.net.preferIPv6Addresses システムプロパティは JVM が IPv4 または IPv6 のどちらを使用するかを設定するために使用します。 AS7 では IPv4 を使用する場合 java.net.preferIPv4Stack=true を指定し、 IPv6 を使用する場合 java.net.preferIPv4Stack=false (JVM デフォルト) および java.net.preferIPv6Addresses=true を指定します。

※ JVM のネットワークシステムプロパティについての詳細は Java SE Document を参照して下さい。

システムプロパティは JAVA_OPTS 環境変数により設定するのが適切です。 JAVA_OPTS は standalone.conf または domain.conf ファイル中で定義されています。JVM システムプロパティの IP スタック設定を IPv4 から IPv6 に変更するには standalone.conf または domain.conf ファイルの以下のデフォルト設定を編集します。

if [ "x$JAVA_OPTS" = "x" ]; then
    JAVA_OPTS=" ... -Djava.net.preferIPv4Stack=true ..."
...

IPv6 に対応させるにはシステムプロパティを以下の通りに変更します。

if [ "x$JAVA_OPTS" = "x" ]; then
    JAVA_OPTS=" ... -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true ..."
...

IP address literals

standalone.xml または domain.xml 中の IP アドレス設定を変更するには interface 宣言において妥当な IPv6 アドレスを指定する必要があります。デフォルトで指定されているループバックインターフェース設定を IPv4 から変更する場合、変更対象個所は以下の通りです。

<interfaces>
    <interface name=”management”>
        <inet-address value=”${jboss.bind.address.management:127.0.0.1}”/>
    </interface>
    <interface name=”public”>
        <inet-address value=”${jboss.bind.address:127.0.0.1}”/>
    </interface>
</interfaces>

上記の設定の IPv6 への設定変更例は以下の通りです。

<interfaces>
   <interface name=”management”>
       <inet-address value=”${jboss.bind.address.management:[::1]}”/>
   </interface>
   <interface name=”public”>
       <inet-address value=”${jboss.bind.address:[::1]}”/>
   </interface>
</interfaces>

IPv6 アドレスの省略表現では [] を使用し曖昧さを避けるようにして下さい。これは URL 中で使用させる IPv6 表現の慣例に従います。

interface 定義に上述の変更を行った場合、設定ファイルの他の部分の IP アドレスを IPv4 から IPv6 に変更して下さい。

広告
タグ: ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。