ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris の管理: IP サービス Oracle Solaris 11 Information Library (日本語) |
この Oracle Solaris リリースでの IP トンネル管理
IPv6 と IPv4 を組み合わせたネットワーク環境でのトンネル
13. DHCP コマンドと DHCP ファイル (リファレンス)
16. IP セキュリティーアーキテクチャー (リファレンス)
20. Oracle Solaris の IP フィルタ (概要)
このセクションでは、dladm コマンドを使用してトンネルを構成する手順について説明します。
この Oracle Solaris リリースから、トンネルの管理が IP インタフェースの構成から分離されました。IP トンネルのデータリンクの側面は、dladm コマンドで管理されるようになりました。さらに、IP トンネルインタフェースを含む IP インタフェースの構成は、ipadm コマンドで実行されます。
dladm の次のサブコマンドを使用して、IP トンネルを構成します。
create-iptun
modify-iptun
show-iptun
delete-iptun
set-linkprop
dladm コマンドの詳細は、dladm(1M) のマニュアルページを参照してください。
注 - IP トンネルの管理は IPsec の構成と密接に関連しています。たとえば、IPsec 仮想プライベートネットワーク (VPN) は、IP トンネリングの主な用途の 1 つです。Oracle Solaris でのセキュリティーの詳細は、パート III「IP セキュリティー」を参照してください。IPsec を構成するには、第 15 章IPsec の構成 (タスク)を参照してください。
|
# dladm create-iptun [-t] -T type -a [local|remote]=addr,... tunnel-link
このコマンドで使用可能なオプションまたは引数は、次のとおりです。
一時的なトンネルを作成します。このコマンドはデフォルトでは永続的なトンネルを作成します。
注 - トンネル上で永続的 IP インタフェースを構成するには、永続的なトンネルを作成し、-t オプションは使用しないようにする必要があります。
作成するトンネルのタイプを指定します。この引数は、どのトンネルタイプを作成する場合も必要です。
ローカルアドレスとリモートトンネルアドレスに対応するリテラル IP アドレスまたはホスト名を指定します。これらのアドレスは有効であり、かつシステム内ですでに作成されている必要があります。トンネルのタイプに応じて、アドレスを 1 つだけ指定するか、ローカルアドレスとリモートアドレスの両方を指定します。ローカルアドレスとリモートアドレスの両方を指定する場合は、それらのアドレスをコンマで区切ります。
IPv4 トンネルが機能するためには、ローカルとリモートの IPv4 アドレスが必要です。
IPv6 トンネルが機能するためには、ローカルとリモートの IPv6 アドレスが必要です。
6to4 トンネルが機能するためには、ローカル IPv4 アドレスが必要です。
注 - 永続的な IP トンネルデータリンクの構成でホスト名をアドレスとして使用した場合、それらのホスト名が構成ストレージに保存されます。次回以降のシステムブート時に、トンネル作成時に使用された IP アドレスとは異なる IP アドレスに名前が解決された場合、トンネルは新しい構成を取得します。
IP トンネルリンクを指定します。ネットワークリンク管理での意味のある名前のサポートにより、トンネル名が作成対象トンネルのタイプに制限されなくなりました。代わりに、管理者によって選択された名前をトンネルに割り当てることができます。トンネル名は、mytunnel0 のように、文字列と物理接続点 (PPA) 番号から構成されます。意味のある名前の割り当てを制御する規則については、『Oracle Solaris 管理: ネットワークインタフェースとネットワーク仮想化』の「有効なリンク名の規則」を参照してください。
トンネルリンクを指定しなかった場合には、次の命名規則に従って名前が自動的に提供されます。
IPv4 トンネルの場合: ip.tun#
IPv6 トンネルの場合: ip6.tun#
6to4 トンネルの場合: ip.6to4tun#
# は、作成するトンネルタイプで使用可能な PPA 番号のうち、もっとも小さい番号になります。
# dladm set-linkprop -p [hoplimit=value] [encaplimit=value] tunnel-link
IPv6 上でのトンネリング用のトンネルインタフェースのホップ制限を指定します。hoplimit は、IPv4 上でのトンネリングの IPv4 生存期間 (TTL) フィールドに相当します。
1 つのパケットで許可される入れ子のトンネリングのレベル数を指定します。このオプションは IPv6 トンネルにのみ適用されます。
1 つのパケットで許可される入れ子のトンネリングのレベル数を指定します。このオプションは IPv6 トンネルにのみ適用されます。
注 - hoplimit と encaplimit に設定する値は、許容範囲内にとどまっている必要があります。hoplimit と encaplimit はトンネルリンクのプロパティーです。したがって、これらのプロパティーは、ほかのリンクプロパティーと同じ dladm サブコマンドを使って管理します。サブコマンドは、dladm set-linkprop、dladm reset-linkprop、および dladm show-linkprop です。dladm コマンドで使用されるリンク管理用のさまざまなサブコマンドについては、dladm(1M) のマニュアルページを参照してください。
# ipadm create-ip tunnel-interface
ここで、tunnel-interface ではトンネルリンクと同じ名前を使用します。
# ipadm create-addr [-t] -T static -a local=address,remote=address addrobj
トンネル上の永続的な IP 構成ではなく一時的な IP 構成を示します。このオプションを使用しない場合、IP インタフェースの構成は永続的な構成になります。
動的な IP 手順の代わりに静的な IP アドレスが使用されることを示します。
トンネルインタフェースの IP アドレスを指定します。local と remote で表される発信元と着信先の両方の IP アドレスが必要です。ローカルとリモートのアドレスは、IPv4 または IPv6 のいずれかのアドレスを使用できます。
ローカルとリモートのアドレスを所有するアドレスオブジェクトを指定します。addrobj では、interface/user-specified-string という形式を使用する必要があります。user-specified-string は英数字から成る文字列を表しており、英字で始まり、最大長は 32 文字です。
ipadm コマンドや、トンネルインタフェースなどの IP インタフェースを構成するための各種オプションの詳細は、ipadm(1M) のマニュアルページおよび 『Oracle Solaris 管理: ネットワークインタフェースとネットワーク仮想化』のパート II「データリンクとインタフェース構成」を参照してください。
# ipadm show-addr interface
例 6-1 IPv4 トンネル上での IPv6 インタフェースの作成
この例では、永続的な IPv6 over IPv4 トンネルを作成する方法を示します。
# dladm create-iptun -T ipv4 -a local=63.1.2.3,remote=192.4.5.6 private0 # dladm set-linkprop -p hoplimit=200 private0 # ipadm create-ip private0 # ipadm create-addr -T addrconf private0/v6 # ipadm show-addr private/ ADDROBJ TYPE STATE ADDR private0/v6 static ok fe80::a08:392e/10 --> fe80::8191:9a56
代替アドレスを追加するには、同じ構文を使用しますが、addrobj で別の user-specified-string を使用します。たとえば、次のようにしてグローバルアドレスを追加できます。
# ipadm create-addr -T static -a local=2001:db8:4728::1, \ remote=2001:db8:4728::2 private0/global # ipadm show-addr private0/ ADDROBJ TYPE STATE ADDR private0/v6 addrconf ok fe80::a08:392e/10 --> fe80::8191:9a56 private0/global static ok 2001:db8:4728::1 --> 2001:db8:4728::2
IPv6 アドレスの接頭辞 2001:db8 は、ドキュメントの例で特別に使用される特殊な IPv6 接頭辞です。IPv6 アドレスやその形式については、『Solaris のシステム管理 (IP サービス)』の「IPv6 アドレス指定の概要」を参照してください。
例 6-2 IPv4 トンネル上での IPv4 インタフェースの作成
この例では、永続的な IPv4 over IPv4 トンネルを作成する方法を示します。
# dladm create-iptun -T ipv4 -a local=63.1.2.3,remote=192.4.5.6 vpn0 # ipadm create-ip vpn0 # ipadm create-addr -T static -a local=10.0.0.1,remote=10.0.0.2 vpn0/v4 # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1 vpn0/v4 static ok 10.0.0.1-->10.0.0.2
さらに、このトンネル上を通過するパケットに対してセキュリティー保護された接続を提供するために、IPsec ポリシーを構成することもできます。IPsec の構成については、第 15 章IPsec の構成 (タスク)を参照してください。
例 6-3 IPv6 トンネル上での IPv6 インタフェースの作成
この例では、永続的な IPv6 over IPv6 トンネルを作成する方法を示します。
# dladm create-iptun -T ipv6 -a local=2001:db8:feed::1234,remote=2001:db8:beef::4321 \ tun0 # ipadm create-ip tun0 # ipadm create-addr -T addrconf tun0/v6 # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v6 static ok ::1/128 tun0/v6 addrconf ok 2001:db8:feed::1234 --> 2001:db8:beef::4321
グローバルアドレスや代替のローカルおよびリモートアドレスなどのアドレスを追加するには、次のように ipadm コマンドを使用します。
# ipadm create-addr -T static \ -a local=2001:db8::4728:56bc,remote=2001:db8::1428:57ab tun0/alt # ipadm show-addr tun0/ ADDROBJ TYPE STATE ADDR tun0/v6 addrconf ok 2001:db8:feed::1234 --> 2001:db8:beef::4321 tun0/alt static ok 2001:db8::4728:56bc --> 2001:db8::1428:57ab
6to4 トンネルでは、6to4 ルーターは、ネットワークの 6to4 サイト内のノードに対して IPv6 ルーターとして機能する必要があります。このため、6to4 ルーターを構成するときには、そのルーターを、その物理インタフェース上で IPv6 ルーターとしても構成する必要があります。IPv6 経路制御の詳細は、「IPv6 の経路制御」を参照してください。
# dladm create-iptun -T 6to4 -a local=address tunnel-link
このコマンドで使用可能なオプションまたは引数は、次のとおりです。
トンネルのローカルアドレスを指定します。これが有効なアドレスであるためには、それがすでにシステム内に存在している必要があります。
IP トンネルリンクを指定します。ネットワークリンク管理での意味のある名前のサポートにより、トンネル名が作成対象トンネルのタイプに制限されなくなりました。代わりに、管理者が選択した名前をトンネルに割り当てることができます。トンネル名は、mytunnel0 のように、文字列と PPA 番号から構成されます。意味のある名前の割り当てを制御する規則については、『Oracle Solaris 管理: ネットワークインタフェースとネットワーク仮想化』の「有効なリンク名の規則」を参照してください。
# ipadm create-ip tunnel-interface
ここで、tunnel-interface ではトンネルリンクと同じ名前を使用します。
if subnet-interface AdvSendAdvertisements 1 IPv6-address subnet-interface
1 行目は、広告を受け取るサブネットを指定します。subnet-interface は、サブネットが接続されているリンクを表します。2 行目の IPv6 アドレスの接頭辞は、6to4 トンネルの IPv6 アドレスで使用される 6to4 接頭辞 2000 になっている必要があります。
ndpd.conf ファイルの詳細は、ndpd.conf(4) のマニュアルページを参照してください。
# ipadm set-prop -p forwarding=on ipv6
あるいは、sighup を /etc/inet/in.ndpd デーモンに発行しても、ルーター広告の送信を開始できます。これによって、各サブネット上の 6to4 接頭辞を受信する IPv6 ノードは、新しい 6to4 派生アドレスを自動構成します。
手順については、「ネームサービスの IPv6 サポート用の構成」を参照してください。
例 6-4 6to4 トンネルの作成
この例ではサブネットのインタフェースが bge0 になっていますが、このインタフェースは、該当の手順で /etc/inet/ndpd.conf 内で参照されます。
この例では 6to4 トンネルの作成方法を示します。6to4 トンネル上で構成できるのは IPv6 インタフェースだけです。
# dladm create-iptun -T 6to4 -a local=192.168.35.10 tun0 # ipadm create-ip tun0 # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 bge0/static static ok 192.168.35.10/24 lo0/v6 static ok ::1/128 tun0/_a static ok 2002:c0a8:57bc::1/64 # ipadm create-addr -T static -a 2002:c0a8:230a::2/16 tun0/a2 # ipadm create-addr -T static -a 2002:c0a8:230a::3/16 tun0/a3 # ipadm show-addr tun0/ ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 bge0/static static ok 192.168.35.10/24 lo0/v6 static ok ::1/128 tun0/_a static ok 2002:c0a8:57bc::1/64 tun0/a2 static ok 2002:c0a8:230a::2/16 tun0/a3 static ok 2002:c0a8:230a::3/16 # vi /etc/inet/ndpd.conf if bge0 AdvSendAdvertisements 1 2002:c0a8:57bc::1/64 bge0 # ipadm set-prop -p forwarding=on ipv6
6to4 トンネルでは IPv6 アドレスの接頭辞は 2002 です。詳細は、『Solaris のシステム管理 (IP サービス)』の「IPv6 の接頭辞」を参照してください。
![]() | 注意 - セキュリティー上の大きな問題のため、Oracle Solaris では、6to4 リレールーターのサポートはデフォルトでは無効になっています。「6to4 リレールーターへのトンネルを作成するときのセキュリティー問題」を参照してください。 |
始める前に
6to4 リレールーターとの間のトンネルを有効にする前に、次のタスクを完了しておく必要があります。
「IP トンネルを作成および構成する方法」の説明に従ってサイトの 6to4 ルーターを構成する
6to4 リレールーターとの間のトンネリングに伴うセキュリティー問題を検討する
エニーキャスト 6to4 リレールーターとの間のトンネルを有効にします。
# /usr/sbin/6to4relay -e
-e オプションは、6to4 ルーターとエニーキャスト 6to4 リレールーターの間にトンネルを設定します。エニーキャスト 6to4 リレールーターは既知の IPv4 アドレス 192.88.99.1 を持っています。サイトに物理的にもっとも近いエニーキャストリレールーターが、6to4 トンネルのエンドポイントになります。このリレールーターは、6to4 サイトとネイティブ IPv6 サイト間のパケット転送を処理します。
エニーキャスト 6to4 リレールーターの詳細については、RFC 3068, "An Anycast Prefix for 6to4 Relay Routers" を参照してください。
特定の 6to4 リレールーターとの間のトンネルを有効にします。
# /usr/sbin/6to4relay -e -a relay-router-address
-a オプションは、特定のルーターアドレスが続くことを示します。relay-router-address には、トンネルを有効にするために使用する特定の 6to4 リレールーターの IPv4 アドレスを指定してください。
6to4 リレールーターとの間のトンネルは、6to4 トンネル擬似インタフェースが削除されるまでアクティブな状態を維持します。
# /usr/sbin/6to4relay -d
サイトによっては、6to4 ルーターがリブートするたびに 6to4 リレールーターとの間のトンネルを元に戻さざるをえない場合があるでしょう。このようなシナリオをサポートするには、次を行う必要があります。
例 6-5 6to4 リレールーターサポートのステータス情報の取得
/usr/bin/6to4relay コマンドを使用し、6to4 リレールーターのサポートが有効になっているかどうかを確認できます。次の例は、6to4 リレールーターのサポートを無効にした場合 (これが Oracle Solaris のデフォルト) の出力です。
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is disabled.
6to4 リレールーターのサポートを有効にすると、次のメッセージが表示されます。
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is enabled. IPv4 remote address of Relay Router=192.88.99.1
# dladm modify-iptun -a [local|remote]=addr,... tunnel-link
既存のトンネルのタイプは変更できません。したがって、-T type オプションはこのコマンドでは許可されません。次のトンネルパラメータだけが変更できます。
ローカルアドレスとリモートトンネルアドレスに対応するリテラル IP アドレスまたはホスト名を指定します。トンネルのタイプに応じて、アドレスを 1 つだけ指定するか、ローカルアドレスとリモートアドレスの両方を指定します。ローカルアドレスとリモートアドレスの両方を指定する場合は、それらのアドレスをコンマで区切ります。
IPv4 トンネルが機能するためには、ローカルとリモートの IPv4 アドレスが必要です。
IPv6 トンネルが機能するためには、ローカルとリモートの IPv6 アドレスが必要です。
6to4 トンネルが機能するためには、ローカル IPv4 アドレスが必要です。
永続的な IP トンネルデータリンクの構成でホスト名をアドレスとして使用した場合、それらのホスト名が構成ストレージに保存されます。次回以降のシステムブート時に、トンネル作成時に使用された IP アドレスとは異なる IP アドレスに名前が解決された場合、トンネルは新しい構成を取得します。
トンネルのローカルとリモートのアドレスを変更する場合には、変更しているトンネルのタイプとこれらのアドレスが矛盾しないことを確認してください。
注 - トンネルリンクの名前を変更する場合、modify-iptun サブコマンドを使用しないでください。代わりに、dladm rename-link を使用します。
# dladm rename-link old-tunnel-link new-tunnel-link
同様に、hoplimit や encaplimit などのトンネルプロパティーを変更するために modify-iptun コマンドを使用しないでください。代わりに、dladm set-linkprop コマンドを使用してそれらのプロパティーの値を設定します。
例 6-6 トンネルのアドレスとプロパティーの変更
この例は 2 つの手順から構成されています。まず、IPv4 トンネル vpn0 のローカルとリモートのアドレスが一時的に変更されます。あとでシステムがリブートされるときに、このトンネルはまた元のアドレスを使用するようになります。2 番目の手順では、vpn0 の hoplimit を 60 に変更します。
# dladm modify-iptun -t -a local=10.8.48.149,remote=192.1.2.3 vpn0 # dladm set-linkprop -p hoplimit=60 vpn0
# dladm show-iptun [-p] -o fields [tunnel-link]
次のオプションがこのコマンドで使用できます。
マシンによる解析が可能な形式で情報を表示します。この引数は省略可能です。
特定のトンネル情報を提供するフィールドのうち、選択されたフィールドを表示します。
構成情報を表示するトンネルを指定します。この引数は省略可能です。トンネル名が省略された場合、このコマンドはシステム上のすべてのトンネルの情報を表示します。
例 6-7 すべてのトンネルに関する情報の表示
この例では、システム上に存在しているトンネルは、1 つだけです。
# dladm show-iptun LINK TYPE FLAGS LOCAL REMOTE tun0 6to4 -- 192.168.35.10 -- vpn0 ipv4 -- 10.8.48.149 192.1.2.3
例 6-8 選択されたフィールドをマシンによる解析が可能な形式で表示する
この例では、トンネル情報を含む特定のフィールドのみが表示されています。
# dladm show-iptun -p -o link,type,local tun0:6to4:192.168.35.10 vpn0:ipv4:10.8.48.149
# dladm show-linkprop [-c] [-o fields] [tunnel-link]
次のオプションがこのコマンドで使用できます。
マシンによる解析が可能な形式で情報を表示します。この引数は省略可能です。
リンクのプロパティーに関する特定の情報を提供する、選択されたフィールドを表示します。
プロパティーに関する情報を表示するトンネルを指定します。この引数は省略可能です。トンネル名が省略された場合、このコマンドはシステム上のすべてのトンネルの情報を表示します。
例 6-9 トンネルのプロパティーの表示
この例では、トンネルのすべてのリンクプロパティーを表示する方法を示します。
# dladm show-linkprop tun0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE tun0 autopush -- -- -- -- tun0 zone rw -- -- -- tun0 state r- up up up,down tun0 mtu r- 65515 -- 576-65495 tun0 maxbw rw -- -- -- tun0 cpus rw -- -- -- tun0 priority rw high high low,medium,high tun0 hoplimit rw 64 64 1-255
# ipadm delete-ip tunnel-link
注 - トンネルを正常に削除するには、そのトンネル上で既存の IP インタフェースが plumb されていてはいけません。
# dladm delete-iptun tunnel-link
このコマンドのオプションは -t だけです。これにより、トンネルは一時的に削除されます。システムをリブートするときに、トンネルが復元されます。
例 6-10 IPv6 インタフェースが構成された IPv6 トンネルの削除
この例では、永続的なトンネルが永遠に削除されます。
# ipadm delete-ip ip6.tun0 # dladm delete-iptun ip6.tun0