モバイル IP の管理

第 2 章 モバイル IP の管理

この章では、モバイル IP の Solaris 実装を含む構成要素について説明します。モバイル IP を利用するには、先ず最初に以降の節で説明しているパラメタとコマンドを使用してモバイル IP の構成ファイルを構成しなければなりません。

Solaris モバイル IP 実装の概要

モビリティエージェントソフトウェアにはホームエージェントと外来エージェントの機能が組み込まれています。Solaris モバイル IP ソフトウェアではクライアントモバイルノードを提供していません。エージェント機能だけが提供されています。モビリティサポートのある各ネットワークは、このソフトウェアを実行している静的な (非モバイル) ホストを 1 つ以上持たなければなりません。次に示す RFC 機能がモバイル IP の Solaris 実装でサポートされています。

RFC 2002

(エージェントのみ) IP モビリティサポート

RFC 2003

IP 内 IP カプセル化

RFC 2794

IPv4 用モバイル IP ネットワークアクセス識別子拡張

基本モバイル IP プロトコル (RFC 2002) は、スケーラブルな鍵配布の問題を取り扱わず、鍵の配布として扱っています。Solaris モバイル IP ソフトウェアは、構成ファイルに指定された、手動で構成された鍵のみを使用します。

次に示す IETF ドラフトにある機能も、モバイル IP の Solaris 実装でサポートされています。

次の RFC 機能は、モバイル IP の Solaris 実装でサポートされていません。

RFC 1700

一般経路指定カプセル化

RFC 1701

一般経路指定カプセル化

RFC 2004

IP 内最小カプセル化

RFC 2344

モバイル IP 用逆トンネリング

さらに、モバイル IP の Solaris 実装では、マルチキャストまたはブロードキャストトラフィックの外部ネットワークを訪問しているモバイルノードへの転送をサポートしていません。

詳細は、mipagent(1M) のマニュアルページを参照してください。

モバイル IP 構成ファイル

mipagent コマンドは、起動時に /etc/inet/mipagent.conf 構成ファイルから構成情報を読み取ります。モバイル IP は /etc/inet/mipagent.conf 構成ファイルを使用してモバイル IP モビリティエージェントを初期化します。構成され配置されると、モビリティエージェントは定期的なルーター通知を発行し、ルーター発見要請メッセージおよびモバイル IP 登録メッセージに応答します。

ファイル属性については mipagent.conf(4) のマニュアルページ、ファイルの使用法については mipagent(1M) のマニュアルページを参照してください。

構成ファイルの形式

モバイル IP 構成ファイルはセクションにより構成されています。各セクションは固有の名前を持っていて、角括弧で囲まれています。各セクションには 1 つ以上のラベルが付いています。ラベルに値を設定するには次の形式を用います。


[Section_name]
     Label-name = Value-assigned

「構成ファイルのセクションとラベル」では、セクション名、ラベル、および可能な設定値を説明しています。

構成ファイルの例

Solaris のデフォルトのインストールでは、次の構成ファイルのサンプルが /etc/inet ディレクトリにあります。

これらのサンプル構成ファイルには、モバイルノードアドレスおよびセキュリティ設定の例が記載されています。モバイル IP を実装する前に、mipagent.conf という構成ファイルを作成して /etc/inet ディレクトリに格納しなければなりません。このファイルには、ユーザーのモバイル IP 実装の要件を満たす値を指定します。サンプル構成ファイルの 1 つを選択し、ユーザーのアドレスおよびセキュリティ設定で変更して、/etc/inet/mipagent.conf にコピーすることもできます。

実行方法については、「モバイル IP 構成ファイルを作成する方法」を参照してください。

mipagent.conf-sample ファイル

次に mipagent.conf-sample ファイルに指定されたセクション名、ラベル、および設定値を示します。「構成ファイルのセクションとラベル」では、構文、セクション、ラベル、および設定値について説明しています。


[General]
   Version = 1.0    # version number for the configuration file. (required)

[Advertisements hme0]
   HomeAgent = yes
   ForeignAgent = yes
   PrefixFlags = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   AdvertiseOnBcast = yes

[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[Pool 1]
   BaseAddress = 10.68.30.7
   Size = 4

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address mobilenode@sun.com]
   Type = node
   SPI = 257
   Pool = 1

[Address Node-Default]
   Type = node
   SPI = 258
   Pool = 1

[Address 10.68.30.36]
   Type = agent
   SPI = 257

例 - mipagent.conf.fa-sample ファイル

次に mipagent.conf.fa-sample ファイルに指定されたセクション名、ラベル、および設定値を示します。「構成ファイルのセクションとラベル」では、構文、セクション、ラベル、および設定値について説明しています。mipagent.conf.fa-sample ファイルは、外来エージェント機能のみを提供する構成を示しています。サンプルファイルには Pool セクションがありません。Pool はホームエージェントのみが利用するからです。その他の点では、このファイルは mipagent.conf-sample ファイルと同じです。


[General]
   Version = 1.0    # version number for the configuration file. (required)

[Advertisements hme0]
   HomeAgent = no
   ForeignAgent = yes
   PrefixFlags = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   AdvertiseOnBcast = yes

[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address mobilenode@sun.com]
   Type = node
   SPI = 257
   Pool = 1

[Address Node-Default]
   Type = node
   SPI = 258
   Pool = 1

[Address 10.68.30.36]
   Type = agent
   SPI = 257

例 - mipagent.conf.ha-sample ファイル

次に mipagent.conf.ha-sample ファイルに指定されたセクション名、ラベル、および設定値を示します。「構成ファイルのセクションとラベル」では、構文、セクション、ラベル、および設定値について説明しています。mipagent.conf.ha-sample ファイルは、ホームエージェント機能のみを提供する構成を示しています。その他の点では、このファイルは mipagent.conf-sample ファイルと同じです。


[General]
   Version = 1.0    # version number for the configuration file. (required)

[Advertisements hme0]
   HomeAgent = yes
   ForeignAgent = no
   PrefixFlags = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   AdvertiseOnBcast = yes

[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[Pool 1]
   BaseAddress = 10.68.30.7
   Size = 4

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address mobilenode@sun.com]
   Type = node
   SPI = 257
   Pool = 1

[Address Node-Default]
   Type = node
   SPI = 258
   Pool = 1

[Address 10.68.30.36]
   Type = agent
   SPI = 257

構成ファイルのセクションとラベル

モバイル IP 構成ファイルには、次のセクションがあります。

General および GlobalSecurityParameters セクションは、モバイル IP エージェントの動作に関する情報を含み、構成ファイル内に 1 つだけ指定できます。

General セクション

General セクションは、1 つのラベル、つまり構成ファイルのバージョン番号だけが含まれます。General セクションの構文は次のとおりです。


[General]
     Version = 1.0

Advertisements セクション

Advertisements セクションには、HomeAgentForeignAgent などのラベルが含まれます。モバイル IP サービスを提供するローカルホストの各インタフェースには、それぞれ異なる Advertisements セクションを指定しなければなりません。Advertisements セクションの構文は次のとおりです。


[Advertisements Interface-name]
     HomeAgent = <yes/no>
     ForeignAgent = <yes/no>
     .
     .

通常、システムは 1 つのインタフェース (le0hme0 など) を持ち、ホームエージェントおよび外来エージェントの両方の動作をサポートします。たとえば hme0 の場合、yesHomeAgent および ForeignAgent の両ラベルに次のように指定されます。


[Advertisements hme0]
     HomeAgent = yes
     ForeignAgent = yes
     .
     .

表 2-1 で、Advertisements セクションに指定可能なラベルと設定値について説明します。

表 2-1 Advertisements セクションのラベルと設定値

ラベル 

設定値 

説明 

HomeAgent

yes または no

mipagent がホームエージェント機能を提供するかどうかを決める

ForeignAgent

yes または no

mipagent が外来エージェント機能を提供するかどうかを決める

PrefixFlags

yes または no

通知が任意の接頭辞拡張を含むかどうかを指定する 

RegLifetime

n

登録要求で受け付けた、秒単位の最長有効期間 

AdvLifetime

n

通知がそれ以上ない場合に現在の通知が有効と考えられる、秒単位の最大時間 

AdvFrequency

n

2 つの連続した通知間の、秒単位の時間 

GlobalSecurityParameters セクション

GlobalSecurityParameters セクションには、maxClockSkewHA-FAauthMN-FAauthChallenge、および KeyDistribution ラベルが含まれます。このセクションではセキュリティパラメタを定義します。GlobalSecurityParameters セクションの構文は次のとおりです。


[GlobalSecurityParameters]
     MaxClockSkew = n
     HA-FAauth = <yes/no>
     MN-FAauth = <yes/no>
     Challenge = <yes/no>
     KeyDistribution = files

モバイル IP プロトコルは、タイムスタンプをメッセージ内に含めることで、メッセージの再実行に対する保護を提供します。クロックが異なる場合、ホームエージェントは現在時間とともにエラーをモバイルノードに返します。モバイルノードはその現在時間を使って再登録できます。MaxClockSkew ラベルを使用して、ホームエージェントとモバイルノードのクロック間で異なる最大秒数を構成することができます。デフォルト値は 300 秒です。

HA-FAauth および MN-FAauth ラベルは、それぞれホームと外来間、およびモバイルと外来間の認証に関する条件を有効または無効にします。デフォルトは無効です。外来エージェントが通知内に指定されたモバイルノードへ呼び出しを発行するようにするためには、challenge ラベルを使用します。このラベルは再実行に対する保護のために使用します。デフォルト値は無効です。

表 2-2 で、GlobalSecurityParameters セクションに指定可能なラベルと設定値について説明します。

表 2-2 GlobalSecurityParameters セクションのラベルと設定値

ラベル 

設定値 

説明 

MaxClockSkew

n

mipagent が自分のローカル時間と登録要求に示された時間の差として受け入れる秒数

HA-FAauth

yes または no

認証拡張が、登録要求と応答に存在する必要があるかを指定する 

MN-FAauth

yes または no

MN-FA 認証拡張が、登録要求と応答に存在する必要があるかどうかを指定する 

Challenge

yes または no

外来エージェントが自分のモビリティ通知内に呼び出しを含むかどうかを指定する 

KeyDistribution

files

常に files に設定

Pool セクション

モバイルノードには、ホームエージェントによって動的アドレスを割り当てることができます。動的アドレスの割り当ては、DHCP とは独立に mipagent が行います。ユーザーは、ホームアドレスを要求するモバイルノードが使用できるアドレスプールを作成できます。アドレスプールは、構成ファイルの Pool セクションを使って構成されます。

Pool セクションには、BaseAddress および Size ラベルが含まれます。Pool セクションの構文は次のとおりです。


[Pool Pool-identifier]
     BaseAddress = IP-address
     Size = size

注 -

Pool 識別子を使用している場合、モバイルノードの Address セクションにも存在していなければなりません。


Pool セクションを使用してモバイルノードに割り当て可能なアドレスプールを定義します。BaseAddress ラベルは、プール内の最初の IP アドレスを設定するのに使用します。Size ラベルは、プール内の利用可能なアドレス数を指定するのに使用します。

たとえば、IP アドレスの 192.168.1.1 から 192.168.1.100Pool 10 に予約されている場合、Pool セクションには次の項目を指定します。


[Pool 10]
     BaseAddress = 192.168.1.1
     Size = 100

注 -

アドレスの範囲にブロードキャストアドレスは含まないでください。たとえば、BaseAddress = 192.168.1.200Size = 60 のように割り当てないでください。このアドレス範囲にはブロードキャストアドレスの 192.168.1.255 が含まれているからです。


表 2-3 で、Pool セクションに指定可能なラベルと設定値について説明します。

表 2-3 Pool セクションのラベルと設定値

ラベル 

設定値 

説明 

BaseAddress

n.n.n.n

アドレスプール内の最初のアドレス 

Size

n

プール内のアドレス数 

SPI セクション

モバイル IP プロトコルはメッセージ認証を要求するので、セキュリティパラメタインデックス (SPI) を使用してセキュリティコンテキストを特定しなければなりません。セキュリティコンテキストは SPI セクションに定義します。定義したセキュリティコンテキストそれぞれに異なる SPI セクションを指定しなければなりません。ID 番号がセキュリティコンテキストを特定します。モバイル IP プロトコルは、最初の 256 SPI を予約しています。したがって、256 より大きい SPI 値を使用してください。SPI セクションには、共有された秘密情報や再実行保護などのセキュリティに関連した情報が含まれています。

SPI セクションにはまた、ReplayMethod および Key ラベルがあります。このセクションではセキュリティコンテキストを定義します。SPI セクションの構文は次のとおりです。


[SPI SPI-identifier]
     ReplayMethod = <none/timestamps>
     Key = key

2 つの通信中のピアは、同じ SPI 識別子を共有しなければなりません。ユーザーはそれらを同じ鍵と、再実行メソッドで構成しなければなりません。鍵は 16 進数の文字列で指定します。最大長は 16 バイトです。たとえば、鍵の長さが 16 バイトで 16 進数値の 0 から f を含んでいる場合、鍵は次のようになります。


Key = 0102030405060708090a0b0c0d0e0f10

鍵は、偶数の桁 (1 バイト 2 桁の表示法に対応) を持たなければなりません。

表 2-4 で、SPI セクションに指定可能なラベルと設定値について説明します。

表 2-4 SPI セクションのラベルと設定値

ラベル 

設定値 

説明 

ReplayMethod

none または timestamps

SPI 用の再実行認証の種類を指定する 

Key

x

16 進表示の認証キー 

Address セクション

モバイル IP の Solaris 実装では、3 つの方法の 1 つを使ってモバイルノードを構成できます。各方法は Address セクションで構成されます。最初の方法は、従来のモバイル IP プロトコルに従い、各モバイルノードがホームアドレスを持つことを要求します。第 2 の方法では、モバイルノードをネットワークアクセス識別子 (NAI) を使って特定することが可能になります。最後の方法では、ユーザーは「デフォルト」のモバイルノードを構成できます。このデフォルトモバイルノードは、適当な SPI 値および関連する鍵情報を持っているどのモバイルノードでも利用できます。

ホームアドレス付きのモバイルノード

ホームアドレス付きのモバイルノード用の Address セクションには、アドレスタイプと SPI 識別子を定義した Type および SPI ラベルが含まれます。Address セクションの構文は次のとおりです。


[Address address]
     Type = <agent/node>
     SPI = SPI-identifier

サポートされた各モバイルノードに対して Address セクションをホームエージェントの構成ファイル内に指定しなければなりません。各モバイルノードは、node に設定された Type ラベルを持ちます。

モバイル IP メッセージ認証が外来エージェントおよびホームエージェント間で必要な場合は、エージェントが通信する必要のある各ピアに対して Address セクションを指定しなければなりません。各モビリティエージェントは、agent に設定された Type ラベルを持ちます。

構成した SPI 値は、構成ファイルに存在する SPI セクションを示さなければなりません。

表 2-5 で、ホームアドレス付きのモバイルノード用の Address セクションに指定可能なラベルと設定値について説明します。

表 2-5 Address セクションのラベルと設定値 - ホームアドレス付きのモバイルノード

ラベル 

設定値 

説明 

Type

node または agent

この項目がモバイルノードまたはモビリティエージェント用であることを指定する 

SPI

n

関連する項目用の SPI 値を指定する 

自分の NAI で識別されるモバイルノード

自分の NAI で識別されるモバイルノード用の Address セクションには、TypeSPI、および Pool ラベルが含まれます。NAI パラメタがあるため、NAI によるモバイルノードの識別が可能になります。NAI パラメタを使用した Address セクションの構文は次のとおりです。


[Address NAI]
     Type = Node
     SPI = SPI-identifier
     Pool = Pool-identifier

プールを利用するには、NAI 経由でモバイルノードを特定します。Address セクションでは、ホームアドレスの場合と異なり NAI を構成できます。NAI には、user@domain の形式を使用します。ホームアドレスをモバイルノードに割り当てるためにどのアドレスプールを使用するかを指定するには、Pool ラベルを使用します。

表 2-6 で、自分の NAI で識別されるモバイルノード用の Address セクションに指定可能なラベルと設定値について説明します。

表 2-6 Address セクションのラベルと設定値 - 自分の NAI で識別されるモバイルノード

ラベル 

設定値 

説明 

Type

node

この項目がモバイルノード用であることを指定する 

SPI

n

関連する項目用の SPI 値を指定する 

Pool

n

モバイルノードに割り当てるアドレスのプールを割り当てる 

図 2-1 に示すように、NAI で識別されたモバイルノードを指定した Address セクションに定義された SPI および Pool ラベルに対して、ユーザーは対応する SPI および Pool セクションを持たなければなりません。

図 2-1 自分の NAI で識別されたモバイルノードを指定した Address セクションに対応する SPI および Pool セクション

Graphic

デフォルトのモバイルノード

デフォルトのモバイルノード用の Address セクションには、TypeSPI、および Pool ラベルが含まれます。Node-Default パラメタがあるため、(このセクションで定義された) 正しい SPI を持っている場合は、すべてのモバイルノードがサービスを受けられるようになります。Node-Default パラメタを使用した Address セクションの構文は次のとおりです。


[Address Node-Default]
     Type = Node
     SPI = SPI-identifier
     Pool = Pool-identifier

Node-Default パラメタがあるため、構成ファイルのサイズを縮小することが可能になります。その他の方法では、各モバイルノードには独自のセクションが必要です。ただし、Node-Default はセキュリティに影響します。何かの理由でモバイルノードが信用できなくなった場合、すべての信頼のおけるモバイルノードに関するセキュリティ情報を更新する必要があります。この作業は手間がかかります。しかし、セキュリティがあまり重要でないネットワークでは Node-Default を利用できます。

表 2-7 で、デフォルトモバイルノード用の Address セクションに指定可能なラベルと設定値について説明します。

表 2-7 Address セクションのラベルと設定値 - デフォルトモバイルノード

ラベル 

設定値 

説明 

Type

node

この項目がモバイルノード用であることを指定する 

SPI

n

関連する項目用の SPI 値を指定する 

Pool

n

モバイルノードに割り当てるアドレスのプールを割り当てる 

図 2-2 に示すように、デフォルトモバイルノードを指定した Address セクションに定義された SPI および Pool ラベルに対して、対応する SPI および Pool セクションを持たなければなりません。

図 2-2 デフォルトモバイルノードを指定した Address セクションに対応する SPI および Pool セクション

Graphic

モビリティ IP エージェントの構成

mipagentconfig コマンドを使用してモビリティエージェントを構成できます。このコマンドによって、/etc/inet/mipagent.conf 構成ファイル内のどのようなパラメタも作成または変更できます。特に、設定値の変更や、モビリティクライアント、プール、および SPI の追加および削除ができます。mipagentconfig コマンドは、次の形式になります。


# mipagentconfig <command> <parameter> <value>

表 2-8 に、/etc/inet/mipagent.conf 構成ファイルにパラメタを作成または変更するために、mipagentconfig で利用できるコマンドを示します。

表 2-8 mipagentconfig コマンド

コマンド 

説明 

add

通知パラメタ、セキュリティパラメタ、SPI、およびアドレスを構成ファイルに追加するために使用する 

change

構成ファイル内の通知パラメタ、セキュリティパラメタ、SPI、およびアドレスを変更するために使用する 

delete

構成ファイル内の通知パラメタ、セキュリティパラメタ、SPI、およびアドレスを削除するために使用する 

get

構成ファイル内の現在の設定を表示するのに使用する 

コマンドパラメタおよび許容できる設定値については、mipagentconfig(1M) のマニュアルページを参照してください。「モバイル IP 構成ファイルの変更」では、mipagentconfig コマンドの利用方法について説明しています。

モバイル IP モビリティエージェントの状態

mipagentstat コマンドを使用して、外来エージェントのビジターリストおよびホームエージェントの結合テーブルを表示できます。次の例では、このコマンドを使用した場合に表示される情報の種類を示します。外来エージェントのビジターリストを表示するには、mipagentstat コマンドの -f オプションを使用します。ホームエージェントの結合テーブルを表示するには、mipagentstat コマンドの -h オプションを使用します。次の例には、これらのオプションを使用した場合の出力例を示します。


例 2-1 外来エージェントのビジターリスト


Mobile Node     Home Agent     Time Granted    Time Remaining

foobar.xyz.com  ha1.xyz.com    600             125
10.1.5.23       10.1.5.1       1000            10


例 2-2 ホームエージェントの結合テーブル


Mobile Node     Foreign Agent  Time Granted    Time Remaining

foobar.xyz.com  fa1.tuv.com    600             125
10.1.5.23       123.2.5.12     1000            10

コマンドのオプションについては、mipagentstat(1M) のマニュアルページを参照してください。「モビリティエージェント状態の表示」では、mipagentstat コマンドを使用する手順を説明しています。

モバイル IP の状態情報

mipagent デーモンは、シャットダウン時に状態情報を /var/inet/mipagent_state に格納します。これは、mipagent がホームエージェントとしてサービスを提供している場合です。この状態情報には、ホームエージェントとしてサポートされているモバイルノードのリスト、それらのノードの現在の気付アドレス、および残りの有効期間が含まれます。mipagent プログラムが (保守のために) 終了され再起動されると、モビリティエージェントの内部状態を可能な限り再現するために mipagent_state が使用されます。こうしてモバイルノードが他のネットワークにいる場合でも、サービスの中断を最小限にするようにします。mipagent_state が存在していれば、mipagent が起動または再起動されるたびに mipagent.conf の直後に読み込まれます。

モバイル IP 用の snoop 拡張

リンク上のモバイル IP トラフィックを特定するために、モバイル IP 拡張が snoop(1M) コマンドに追加されました。詳細は、snoop(1M) のマニュアルページを参照してください。

例 2-3 は、モバイルノードの mip-mn2 上で実行中の snoop の出力を示します。


例 2-3 snoop コマンドの出力


mip-mn2# snoop
Using device /dev/hme (promiscuous mode)
  mip-fa2 -> 224.0.0.1    ICMP Router advertisement (Lifetime 200s [1]: 
{mip-fa2-80 2147483648}), (Mobility Agent Extension), (Prefix Lengths), 
(Padding)
  mip-mn2 -> mip-fa2   Mobile IP reg rqst 
  mip-fa2 -> mip-mn2   Mobile IP reg reply (OK code 0)

この例は、モバイルノードが外来エージェントの mip-fa2 から定期的に送信されたモビリティエージェント通知の 1 つを受信したことを示しています。その後、mip-mn2 が登録要求を mip-fa2 に送信し、その応答として登録応答を受信しています。登録応答は、モバイルノードが自分のホームエージェントに正常に登録されたことを示しています。