この章では、モバイル IP の Solaris 実装を含む構成要素について説明します。モバイル IP を利用するには、先ず最初に以降の節で説明しているパラメタとコマンドを使用してモバイル IP の構成ファイルを構成しなければなりません。
モビリティエージェントソフトウェアにはホームエージェントと外来エージェントの機能が組み込まれています。Solaris モバイル IP ソフトウェアではクライアントモバイルノードを提供していません。エージェント機能だけが提供されています。モビリティサポートのある各ネットワークは、このソフトウェアを実行している静的な (非モバイル) ホストを 1 つ以上持たなければなりません。次に示す RFC 機能がモバイル IP の Solaris 実装でサポートされています。
(エージェントのみ) IP モビリティサポート
IP 内 IP カプセル化
IPv4 用モバイル IP ネットワークアクセス識別子拡張
基本モバイル IP プロトコル (RFC 2002) は、スケーラブルな鍵配布の問題を取り扱わず、鍵の配布として扱っています。Solaris モバイル IP ソフトウェアは、構成ファイルに指定された、手動で構成された鍵のみを使用します。
次に示す IETF ドラフトにある機能も、モバイル IP の Solaris 実装でサポートされています。
draft-ietf-mobileip-rfc2002-bis-03.txt - 更新された、IPv4 の IP モビリティサポート
draft-ietf-mobileip-challenge-13.txt - モバイル IP チャレンジ/レスポンス拡張
draft-ietf-mobileip-vendor-ext-09.txt - モバイル IP ベンダー/組織固有の拡張
次の RFC 機能は、モバイル IP の Solaris 実装でサポートされていません。
一般経路指定カプセル化
一般経路指定カプセル化
IP 内最小カプセル化
モバイル IP 用逆トンネリング
さらに、モバイル IP の Solaris 実装では、マルチキャストまたはブロードキャストトラフィックの外部ネットワークを訪問しているモバイルノードへの転送をサポートしていません。
詳細は、mipagent(1M) のマニュアルページを参照してください。
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 ディレクトリにあります。
mipagent.conf-sample - 外来エージェントおよびホームエージェントの両機能を提供するモバイル IP エージェント用のサンプル構成ファイル
mipagent.conf.fa-sample - 外来エージェント機能のみを提供するモバイル IP エージェント用のサンプル構成ファイル
mipagent.conf.ha-sample - ホームエージェント機能のみを提供するモバイル IP エージェント用のサンプル構成ファイル
これらのサンプル構成ファイルには、モバイルノードアドレスおよびセキュリティ設定の例が記載されています。モバイル IP を実装する前に、mipagent.conf という構成ファイルを作成して /etc/inet ディレクトリに格納しなければなりません。このファイルには、ユーザーのモバイル IP 実装の要件を満たす値を指定します。サンプル構成ファイルの 1 つを選択し、ユーザーのアドレスおよびセキュリティ設定で変更して、/etc/inet/mipagent.conf にコピーすることもできます。
実行方法については、「モバイル IP 構成ファイルを作成する方法」を参照してください。
次に 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 ファイルは、外来エージェント機能のみを提供する構成を示しています。サンプルファイルには 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-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 (必須)
Advertisements (必須)
GlobalSecurityParameters (省略可能)
Pool (省略可能)
SPI (省略可能)
Address (省略可能)
General および GlobalSecurityParameters セクションは、モバイル IP エージェントの動作に関する情報を含み、構成ファイル内に 1 つだけ指定できます。
General セクションは、1 つのラベル、つまり構成ファイルのバージョン番号だけが含まれます。General セクションの構文は次のとおりです。
[General] Version = 1.0 |
Advertisements セクションには、HomeAgent、ForeignAgent などのラベルが含まれます。モバイル IP サービスを提供するローカルホストの各インタフェースには、それぞれ異なる Advertisements セクションを指定しなければなりません。Advertisements セクションの構文は次のとおりです。
[Advertisements Interface-name] HomeAgent = <yes/no> ForeignAgent = <yes/no> . . |
通常、システムは 1 つのインタフェース (le0、hme0 など) を持ち、ホームエージェントおよび外来エージェントの両方の動作をサポートします。たとえば hme0 の場合、yes が HomeAgent および ForeignAgent の両ラベルに次のように指定されます。
[Advertisements hme0] HomeAgent = yes ForeignAgent = yes . . |
表 2-1 で、Advertisements セクションに指定可能なラベルと設定値について説明します。
表 2-1 Advertisements セクションのラベルと設定値
GlobalSecurityParameters セクションには、maxClockSkew、HA-FAauth、MN-FAauth、Challenge、および 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 セクションのラベルと設定値
モバイルノードには、ホームエージェントによって動的アドレスを割り当てることができます。動的アドレスの割り当ては、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.100 が Pool 10 に予約されている場合、Pool セクションには次の項目を指定します。
[Pool 10] BaseAddress = 192.168.1.1 Size = 100 |
アドレスの範囲にブロードキャストアドレスは含まないでください。たとえば、BaseAddress = 192.168.1.200、Size = 60 のように割り当てないでください。このアドレス範囲にはブロードキャストアドレスの 192.168.1.255 が含まれているからです。
表 2-3 で、Pool セクションに指定可能なラベルと設定値について説明します。
表 2-3 Pool セクションのラベルと設定値
ラベル |
設定値 |
説明 |
---|---|---|
BaseAddress |
n.n.n.n |
アドレスプール内の最初のアドレス |
Size |
n |
プール内のアドレス数 |
モバイル 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 進表示の認証キー |
モバイル 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 で識別されるモバイルノード用の Address セクションには、Type、SPI、および 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 セクションを持たなければなりません。
デフォルトのモバイルノード用の Address セクションには、Type、SPI、および 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 セクションを持たなければなりません。
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 コマンドの利用方法について説明しています。
mipagentstat コマンドを使用して、外来エージェントのビジターリストおよびホームエージェントの結合テーブルを表示できます。次の例では、このコマンドを使用した場合に表示される情報の種類を示します。外来エージェントのビジターリストを表示するには、mipagentstat コマンドの -f オプションを使用します。ホームエージェントの結合テーブルを表示するには、mipagentstat コマンドの -h オプションを使用します。次の例には、これらのオプションを使用した場合の出力例を示します。
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 |
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 コマンドを使用する手順を説明しています。
mipagent デーモンは、シャットダウン時に状態情報を /var/inet/mipagent_state に格納します。これは、mipagent がホームエージェントとしてサービスを提供している場合です。この状態情報には、ホームエージェントとしてサポートされているモバイルノードのリスト、それらのノードの現在の気付アドレス、および残りの有効期間が含まれます。mipagent プログラムが (保守のために) 終了され再起動されると、モビリティエージェントの内部状態を可能な限り再現するために mipagent_state が使用されます。こうしてモバイルノードが他のネットワークにいる場合でも、サービスの中断を最小限にするようにします。mipagent_state が存在していれば、mipagent が起動または再起動されるたびに mipagent.conf の直後に読み込まれます。
リンク上のモバイル IP トラフィックを特定するために、モバイル IP 拡張が snoop(1M) コマンドに追加されました。詳細は、snoop(1M) のマニュアルページを参照してください。
例 2-3 は、モバイルノードの mip-mn2 上で実行中の 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 に送信し、その応答として登録応答を受信しています。登録応答は、モバイルノードが自分のホームエージェントに正常に登録されたことを示しています。