ナビゲーションリンクをスキップ
印刷ビューの終了
| Oracle VM Server for SPARC 3.0 管理ガイド Oracle VM Server for SPARC (日本語)

検索範囲:

- このドキュメント
- ライブラリ全体

## Logical Domains Manager を実行しているシステムの検出

### マルチキャスト通信

この検出メカニズムは、`ldmd` デーモンによって使用されるものと同じマルチキャストネットワークを使用して、MAC アドレスを自動的に割り当てるときに衝突を検出します。マルチキャストソケットを構成するには、次の情報を指定する必要があります。

    #define    MAC_MULTI_PORT        64535
    #define    MAC_MULTI_GROUP        "239.129.9.27"

デフォルトでは、マシンが接続されているサブネット上ではマルチキャストパケットのみを送信できます。この動作をは、`ldmd` デーモンに `ldmd/hops` SMF プロパティーを設定することによって変更できます。

### メッセージ形式

検出メッセージは、他のメッセージと混同しないように明白にマークされている必要があります。次のマルチキャストメッセージ形式により、検出待機プロセスで検出メッセージを識別できます。

    #include <netdb.h> /* Used for MAXHOSTNAMELEN definition */
    #define    MAC_MULTI_MAGIC_NO    92792004
    #define    MAC_MULTI_VERSION    1

    enum {
        SEND_MSG = 0,
        RESPONSE_MSG,
        LDMD_DISC_SEND,
        LDMD_DISC_RESP,
    };

    typedef struct {
        uint32_t    version_no;
        uint32_t    magic_no;
        uint32_t    msg_type;
        uint32_t    resv;
        union {
            mac_lookup_t        Mac_lookup;
            ldmd_discovery_t    Ldmd_discovery;
        } payload;
    #define    lookup        payload.Mac_lookup
    #define    discovery    payload.Ldmd_discovery
    } multicast_msg_t;

    #define    LDMD_VERSION_LEN    32

    typedef struct {
        uint64_t mac_addr;
        char        source_ip[INET_ADDRSTRLEN];
    } mac_lookup_t;

    typedef struct {
        char        ldmd_version[LDMD_VERSION_LEN];
        char        hostname[MAXHOSTNAMELEN];
        struct in_addr    ip_address;
        int        port_no;
    } ldmd_discovery_t;

## サブネット上で実行している Logical Domains Manager を検出する方法

1. マルチキャストソケットを開きます。

   「マルチキャスト通信」 に示すポートおよびグループの情報を使用していることを確認してください。

2. ソケット経由で `multicast_msg_t` メッセージを送信します。

   メッセージには次の内容を含めるようにしてください。

   - `version_no` の有効な値 (`MAC_MULTI_VERSION` によって定義されている `1`)

   - `magic_no` の有効な値 (`MAC_MULTI_MAGIC_NO` によって定義されている `92792004`)

   - `LDMD_DISC_SEND` の `msg_type`

3. マルチキャストソケットで Logical Domains Manager からの応答を待機します。

   応答は、次の値が含まれる `multicast_msg_t` メッセージである必要があります。

   - `version_no` の有効な値

   - `magic_no` の有効な値

   - `LDMD_DISC_RESP` に設定された `msg_type`

   - 次の情報が含まれる、`ldmd_discovery_t` 構造で構成されたペイロード

     - `ldmd_version` – システム上で実行されている Logical Domains Manager のバージョン

     - `hostname` – システムのホスト名

     - `ip_address` – システムの IP アドレス

     - `port_no` – Logical Domains Manager によって通信に使用されているポート番号で、XMPP ポート `6482` にする

   Logical Domains Manager からの応答を待機する場合、自動割り当て MAC 衝突検出パケットが破棄されていることを確認してください。

Copyright © 2007, 2013, Oracle and/or its affiliates. All rights reserved. 著作権について |