この章では、モバイル IP の Solaris 実装に提供される構成要素について説明します。モバイル IP を使用するには、最初に、この章で説明されるパラメータとコマンドを使用して、モバイル IP 構成ファイルを構成する必要があります。
この章では、次の内容について説明します。
モバイル IP 機能は、Solaris 10 8/07 よりあとの Solaris 10 Update から削除されました。
モビリティーエージェントソフトウェアには、ホームエージェントと外来エージェントの機能が組み込まれています。 Solaris モバイル IP ソフトウェアではクライアントモバイルノードを提供していません。エージェント機能だけが提供されています。モビリティーサポートのある各ネットワークは、このソフトウェアを実行している静的な (非モバイル) ホストを 1 つ以上持たなければなりません。
次に示す RFC 機能がモバイル IP の Solaris 実装でサポートされています。
基本モバイル IP プロトコル (RFC 2002) は、スケーラブルな鍵配布の問題を取り扱わず、鍵の配布として扱っています。Solaris モバイル IP ソフトウェアは、構成ファイルに指定された、手動で構成された鍵のみを使用します。
次の RFC 機能は、モバイルIP の Solaris 実装ではサポートされていません。
次の機能は、モバイル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 AdvertiseOnBcast = yes RegLifetime = 200 AdvLifetime = 200 AdvFrequency = 5 ReverseTunnel = no ReverseTunnelRequired = no [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 AdvertiseOnBcast = yes RegLifetime = 200 AdvLifetime = 200 AdvFrequency = 5 ReverseTunnel = yes ReverseTunnelRequired = no [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 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 AdvertiseOnBcast = yes RegLifetime = 200 AdvLifetime = 200 AdvFrequency = 5 ReverseTunnel = yes ReverseTunnelRequired = no [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 |
モバイル 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] HomeAgent = <yes/no> ForeignAgent = <yes/no> . . |
通常、システムは 1 つのインタフェース(eri0 や hme0 など) を持ち、ホームエージェントと外来エージェントの動作をサポートします。たとえば hme0 の場合、yes が HomeAgent および ForeignAgent の両ラベルに次のように指定されます。
[Advertisements hme0] HomeAgent = yes ForeignAgent = yes . . |
動的インタフェースによる通知の場合、デバイス ID 部分に * を使用します。たとえば、 Interface-name ppp* は、mipagent デーモンの開始後に構成されるすべての PPP インタフェースを含むことを意味します。動的インタフェースタイプの advertisement セクションにあるすべての属性は、同じ状態にします。
次の表は、Advertisements セクションに指定できるラベルと値を示しています。
表 29–1 Advertisements セクションのラベルと設定値
GlobalSecurityParameters セクションには、maxClockSkew、HA-FAauth、MN-FAauth、Challenge、および KeyDistribution ラベルが含まれます。このセクションの構文は次のとおりです。
[GlobalSecurityParameters] MaxClockSkew = n HA-FAauth = <yes/no> MN-FAauth = <yes/no> Challenge = <yes/no> KeyDistribution = files |
モバイル IP プロトコルは、タイムスタンプをメッセージ内に含めることで、メッセージの再実行に対する保護を提供します。クロックが異なる場合、ホームエージェントは現在時間とともにエラーをモバイルノードに返します。モバイルノードはその現在時間を使って再登録できます。モバイルノードはその現在時間を使って再登録できます。MaxClockSkew ラベルを使用して、ホームエージェントとモバイルノードのクロック間で異なる最大秒数を構成できます。デフォルト値は 300 秒です。
HA-FAauth および MN-FAauth ラベルは、それぞれホームと外来間、およびモバイルと外来間の認証に関する条件を有効または無効にします。デフォルトは無効です。外来エージェントが通知内に指定されたモバイルノードへ呼び出しを発行するようにするためには、challenge ラベルを使用します。このラベルは再実行に対する保護のために使用します。デフォルト値は無効です。
次の表は、GlobalSecurityParameters セクションに指定可能なラベルと設定値を示しています。
表 29–2 GlobalSecurityParameters セクションのラベルと設定値
ラベル |
値 |
説明 |
---|---|---|
MaxClockSkew |
n | |
HA-FAauth |
yes または no | |
MN-FAauth |
yes または no | |
Challenge |
yes または no | |
KeyDistribution |
files |
モバイルノードには、ホームエージェントによって動的アドレスを割り当てることができます。動的アドレスの割り当ては、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 が含まれているからです。
次の表は、Pool セクションに指定可能なラベルと設定値を示しています。
表 29–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 桁の表示法に対応) を持たなければなりません。
次の表は、SPI セクションに指定可能なラベルと設定値を示しています。
表 29–4 SPI セクションのラベルと設定値
ラベル |
値 |
説明 |
---|---|---|
ReplayMethod |
none または timestamps | |
Key |
x |
モバイル IP の Solaris 実装では、3 つの方法の 1 つを使ってモバイルノードを構成できます。各方法は Address セクションで構成されます。最初の方法は、従来のモバイル IP プロトコルに従い、各モバイルノードがホームアドレスを持つことを要求します。第2 の方法では、モバイルノードをネットワークアクセス識別子 (NAI) を使って特定することが可能になります。最後の方法では、ユーザーは「デフォルト」のモバイルノードを構成できます。このデフォルトモバイルノードは、適当な SPI 値および関連する鍵情報を持っているどのモバイルノードでも利用できます。
モバイルノード用の Address セクションには、アドレスタイプと SPI 識別子を定義した Type および SPI ラベルが含まれます。Address セクションの構文は次のとおりです。
[Address address] Type = node SPI = SPI-identifier |
サポートされた各モバイルノードに対して Address セクションをホームエージェントの構成ファイル内に指定しなければなりません。
モバイル IP メッセージ認証が外来エージェントおよびホームエージェント間で必要な場合は、エージェントが通信する必要のある各ピアに対してAddress セクションを指定しなければなりません。
構成した SPI 値は、構成ファイルに存在する SPI セクションを示さなければなりません。
また、モバイルノード用の専用アドレスを構成することもできます。
次の表は、モバイルノード用の Address セクションに指定可能なラベルと設定値を示しています。
表 29–5 Address セクションのラベルと設定値 (モバイルノード)
ラベル |
値 |
説明 |
---|---|---|
Type |
ノード | |
SPI |
n |
モビリティーエージェント用の Address セクションには、アドレスタイプと SPI 識別子を定義した Type および SPI ラベルが含まれます。モビリティーエージェントの Address セクションの構文は次のとおりです。
[Address address] Type = agent SPI = SPI-identifier |
サポートされた各モビリティーエージェントに対して Address セクションをホームエージェントの構成ファイル内に指定しなければなりません。
モバイル IP メッセージ認証が外来エージェントおよびホームエージェント間で必要な場合は、エージェントが通信する必要のある各ピアに対して Address セクションを指定しなければなりません。
構成した SPI 値は、構成ファイルに存在する SPI セクションを示さなければなりません。
次の表で、モビリティーエージェント用の Address セクションに指定可能なラベルと設定値について説明します。
表 29–6 Address セクションのラベルと設定値 (モビリティーエージェント)
ラベル |
値 |
説明 |
---|---|---|
Type |
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 ラベルを使用します。
次の表は、自分の NAI で識別されるモバイルノード用の Address セクションに指定可能なラベルと設定値を示しています。
表 29–7 Address セクションのラベルと設定値 (自分の NAI で識別されるモバイルノード)
ラベル |
値 |
説明 |
---|---|---|
Type |
ノード | |
SPI |
n | |
Pool |
n |
次の図に示すように、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 パラメータを利用できます。
次の表は、デフォルトモバイルノード用の Address セクションに指定可能なラベルと設定値を示しています。
表 29–8 Address セクションのラベルと設定値 (デフォルトモバイルノード)
ラベル |
値 |
説明 |
---|---|---|
Type |
ノード | |
SPI |
n | |
Pool |
n |
次の図に示すように、デフォルトモバイルノードを指定した Address セクションに定義された SPI および Pool ラベルに対して、対応する SPI および Pool セクションを持たなければなりません。
mipagentconfig コマンドを使用してモビリティーエージェントを構成できます。また、/etc/inet/mipagent.conf 構成ファイル内のどのようなパラメータも作成または変更できます。つまり、どの設定値でも変更できます。さらに、モビリティークライアント、プール、および SPI の追加および削除ができます。mipagentconfig コマンドは、次の形式になります。
# mipagentconfig <command> <parameter> <value> |
次の表は、/etc/inet/mipagent.conf 構成ファイルにパラメータを作成または変更するために、mipagentconfig で利用できるコマンドを示しています。
表 29–9 mipagentconfig サブコマンド
コマンド |
説明 |
---|---|
add |
通知パラメータ、セキュリティーパラメータ、SPI、およびアドレスを構成ファイルに追加するために使用する |
change |
構成ファイル内の通知パラメータ、セキュリティーパラメータ、SPI、およびアドレスを変更するために使用する |
delete |
構成ファイル内の通知パラメータ、セキュリティーパラメータ、SPI、およびアドレスを削除するために使用する |
get |
構成ファイル内の現在の値を表示するのに使用する |
コマンドパラメータおよび許容できる設定値については、mipagentconfig(1M) のマニュアルページを参照してください。「モバイル IP 構成ファイルの変更」 では、mipagentconfig コマンドの利用方法について説明しています。
mipagentstat コマンドを使用して、外来エージェントのビジターリストおよびホームエージェントの結合テーブルを表示できます。さらに、エージェントのモビリティーエージェントピアに関するセキュリティーアソシエーションを表示できます。外来エージェントのビジターリストを表示するには、mipagentstat コマンドの -f オプションを使用します。ホームエージェントの結合テーブルを表示するには、mipagentstat コマンドの -h オプションを使用します。次の例では、これらのオプションを使用した場合の出力例を示します。
Mobile Node Home Agent Time (s) Time (s) Flags Granted Remaining --------------- -------------- ------------ --------- ----- foobar.xyz.com ha1.xyz.com 600 125 .....T. 10.1.5.23 10.1.5.1 1000 10 .....T. |
Mobile Node Home Agent Time (s) Time (s) Flags Granted Remaining --------------- -------------- ------------ --------- ----- foobar.xyz.com fa1.tuv.com 600 125 .....T. 10.1.5.23 123.2.5.12 1000 10 .....T. |
コマンドのオプションの詳細については、mipagentstat(1M) のマニュアルページを参照してください。「モビリティーエージェント状態の表示」では、 mipagentstat コマンドを使用する手順を説明しています。
mipagent デーモンは、シャットダウン時に内部の状態情報を /var/inet/mipagent_state に格納します。ただし、このイベントが起こるのは、mipagent がホームエージェントとしてサービスを提供している場合だけです。この状態情報には、ホームエージェントとしてサポートされているモバイルノードのリスト、それらのノードの現在の気付アドレス、および残りの登録有効期間が含まれます。また、モビリティーエージェントのピアに関するセキュリティーアソシエーション構成も含まれます。mipagent デーモンを (保守のために) 終了して再起動すると、モビリティーエージェントの内部状態をできるだけ再現するために mipagent_state が使用されます。このようにして、モバイルノードがほかのネットワークにいる場合でも、サービスの中断を最小限に抑えます。mipagent_state が存在していれば、mipagent が起動または再起動されるたびに mipagent.conf の直後に読み込まれます。
モバイル IP の転送先経路制御を特定するために、モバイル IP 用の拡張が netstat コマンドに追加されています。つまり、netstat コマンドを使用して、「Source-Specific」と呼ばれる新しい経路制御テーブルを表示できます。詳細については、netstat(1M) のマニュアルページを参照してください。
次の例は、-nr フラグを使用した場合の netstat コマンドの出力を示します。
Routing Table: IPv4 Source-Specific Destination In If Source Gateway Flags Use Out If -------------- ------- ------------ --------- ----- ---- ------- 10.6.32.11 ip.tun1 -- 10.6.32.97 UH 0 hme1 -- hme1 10.6.32.11 -- U 0 ip.tun1 |
この例は、逆方向トンネルを使用する外来エージェントの経路制御を示します。最初の行は、宛先 IP アドレス 10.6.32.11 と着信インタフェース ip.tun1 がパケットを転送するインタフェースとして hme1 を選択していることを表します。次の行は、インタフェース hme1 から発信する任意のパケットと発信元アドレス 10.6.32.11 が ip.tun1 に転送されることを表しています。
リンク上のモバイル IP トラフィックを特定するために、モバイル IP 拡張が snoop コマンドに追加されました。詳細については、snoop(1m) のマニュアルページを参照してください。
次の例は、モバイルノードの 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 に送信し、その応答として登録応答を受信しています。登録応答は、モバイルノードが自分のホームエージェントに正常に登録されたことを示しています。