
第2回 IPv6で外部接続しよう!
鈴木伸介
日立製作所
2002/8/29
前回の記事からだいぶ時間が経ってしまったが、今回は具体的に何をすれば、実際にIPv6で外部との接続を行うことができるのかを解説する。図1の例でいうと、上流ISPと企業網間の回線、およびその回線につながるルータの部分である。
![]() |
| 図1 ある企業網における、要素ごとのIPv6導入ケース。今回は、赤枠で囲まれた上流ISPとの接続部分について説明していく |
| IPv6外部接続の分類 |
2002年8月現在、IPv6サービスの提供を行っているISPは数多くある(表1)。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 表1 IPv6サービスの提供を行っているISPの一覧。IPv6サービスは行っているものの、新規募集を終了したISPはこの表から削除している。また一部のISPのサービスは実験サービスや非商用利用限定であるため、実際に契約する際にはサービス内容に注意する必要がある | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
各社、さまざまなIPv6サービスを行っているが、接続方法という観点では、「トンネル接続」「ネイティブ接続」「デュアル接続」の3つに分類される。
●トンネル接続
既存のIPv4接続回線を利用して、IPv6パケットをカプセル化して通すもの。デュアル接続とは異なり、同じ回線上にはIPv4パケットしか存在しない(一部のIPv4パケットのデータの中身が、IPv6パケットそのものになっている)。
●ネイティブ接続
IPv6接続用に専用の回線を引くもの。デュアル接続とは異なり、同じ回線上に流れるのはIPv6パケットのみである。
●デュアル接続
既存のIPv4接続回線を利用して、IPv6パケットを直接通すもの。トンネル接続とは異なり、同じ回線上にIPv6パケットとIPv4パケットとが混在する。
![]() |
| 図2 IPv6接続形態の分類 |
それぞれの手法のエンドユーザーにとっての長所と短所は表2のとおりである。一般には、価格や運用の手間、既存サービスへの影響とのトレードオフを考慮して、どのサービスを採用するか取捨選択すべきだが、本記事では一番導入コストが低いトンネル接続を例に取り解説を進める。
|
|||||||||||||||||||||||||||||
| 表2 各接続手法の長所・短所 |
それぞれ外部接続に必要な装置や情報は、以下のとおりである。
●IPv6サービス対応ISP
●IPv6プレフィックス
IPv6サービスの契約を行うと、自動的に取得可能。一般に/48を入手できる。この場合、2の16乗個のセグメントにプレフィックスを割り振り、各セグメントにつき最大2の64乗個のアドレスを定義することができる。通常用途なら十分過ぎる数だろう。
大企業ではこれでも不足する可能性もあり得るが、その場合はもう少し広い範囲のプレフィックス(例えば/40)や複数の/48を入手する必要がある。そのようなことが可能か否かはISP次第なので、特に大企業の場合は、プレフィックスの拡張が可能か否かを契約時に確認しておくことが大切だ。
●IPv6対応ルータ
デュアル接続/ネイティブ接続の場合には、対外線(例:ATM、シリアル専用線)そのものでIPv6通信を行えなければならない。
特にデュアル接続の場合には、現在IPv4対外接続に使用しているルータでIPv6通信を行う必要がある。そのため、場合によっては、IPv6導入のために既存の対外接続ルータをリプレイスする必要があることが多いのに注意してほしい(逆にいえば、IPv6対応に関係なく対外接続ルータをリプレイスする際でも、IPv6対応版を最初から導入しておくと後々楽だということだ)。
トンネル接続の場合は、IPv6に対応さえしていれば、以上の2つの制約はない。
●最低1つのIPv4グローバル・アドレス
トンネル接続の場合のみ必須になる。一般に、トンネル接続はNAPT経由では動作しないため、NAPTを経由しないグローバルなIPv4アドレスを用意する必要がある。
| まずは6to4トンネル接続で行こう |
概略はこのくらいにして、実際にトンネルを使って外部とIPv6接続をしてみよう。トンネル技術にはいくつかあるが、まずは「6to4」というトンネル技術を用いて接続してみる。
6to4はRFC3056で規定されたトンネル技術であり、トンネル通信でパケットをカプセル化するときのIPv4アドレスが、通信先のIPv6アドレス内に埋め込まれていることが特徴である(図3)。
|
||||||
| 図3 6to4の動作の様子 |
上側の6to4ルータは自分側で用意し、下側の6to4ルータはIPv6サービスを行うISP側で用意する。ただし、日本には実験用に外部公開されている6to4ルータがあるので(www.6to4.jpのページを参照)、それを使えばISPとIPv6サービス契約を行う必要はない。また、使用できるIPv6プレフィックスは自分の所有するIPv4アドレスから自動的に確定するため、特別なIPv6プレフィックス取得手続きも不要である。そのため、6to4に対応したIPv6ルータとIPv4グローバル・アドレスがあれば、6to4トンネルを使うことができる。
実際に、企業のような複数ネットワークを用いる環境で使うときには、図4に示す構成を取って動作させる。
|
| 図4 6to4アドレス使用例 |
| 6to4を用いるときの注意事項 |
6to4を実際に用いる際には、いくつか留意すべきことがあるので、ここでリストアップする。
●IPv4でカプセル化したパケットはNAPTを通らない
NAPTではTCP/UDPのポート番号を基にしてIPv4アドレスの変換を行うのに対して、IPv6パケットをカプセル化したIPv4パケットのプロトコル種別はTCP/UDPのいずれでもないため(「IPv6」というプロトコル・タイプである)、NAPTでアドレス変換を行うことができないからだ。
最初に、6to4トンネルではIPv4「グローバル」アドレスが必要、という説明をしたのは、上記のような制約があるためである。いうまでもないことだが、NAPTを通しているIPv4グローバル・アドレスも、6to4トンネルに用いるアドレスとしては採用できない。
なお、TCP/UDPのポート番号によらず静的にアドレス変換を行うNATならば、6to4のIPv4パケットを正しく変換することも可能である。ただし、実際にそのような設定が可能かどうかは実装に依存する。混乱を防ぐためにも、最初はIPv4グローバル・アドレスを用いた方がよいだろう。
●IPv6経由でどこにでもIPv4通信ができてしまう
6to4ルータは通常、「2002〜」で始まるIPv6アドレス行きのパケットならば、すべてIPv4でカプセル化して外に送信する。このことを利用すると、通常のIPv4対外線利用では許されなかったIPv4通信が、6to4を経由すると実現できてしまうことになる(図5)。
本来であれば、IPv4的に疎通しなければ6to4トンネルでカプセル化したパケットも疎通しないので、上記のような問題は起こらない。ただし、ファイアウォールに穴を開けて、「『プロトコル・タイプIPv6』のパケットならば全部通す」という設定をしていると、IPv4のフィルタリング・ポリシーでアクセス制限をかけていても、6to4トンネルで越えられてしまう、という問題が発生する。
![]() |
| 図5 6to4ルータ経由でIPv4的には不可能な通信ができてしまう |
この問題に対応するためには、根本的にはファイアウォールのIPv6対応が必要なのだが、6to4ルータの経路制御を工夫することによっても、かなりの部分で対応可能である。図5の例でいうと、6to4ルータの経路の設定で、「2002:0304:0506::/48」あてのIPv6パケットを中継しないようにすればよい。そうすれば、カプセル化されたIPv4パケットがファイアウォールに到達する前に、6to4ルータでIPv6パケットが廃棄されるので、ファイアウォールではじくべきパケットをはじくことが可能になる。
●リンク・ローカル・アドレスがない
リンク・ローカル・アドレスとは、最初の64ビットが「fe80::」で始まっているIPv6アドレスである。このアドレスはルータを越えない通信に用いられ、主に経路制御プロトコルが使用している。
ところが、6to4トンネルではIPv6アドレスの先頭16バイトが2002で固定になっているため、リンク・ローカル・アドレスを用いた通信を行うことができない。このことは、経路制御プロトコルを6to4トンネルを介して動かすことができないことを意味している。そのため、外部への回線を動的に経路制御で切り替えるような使い方をすることはできない。
なお、静的に外部への回線を切り替えるだけならば、6to4ルータの経路の設定を工夫するだけで実現可能だ。デフォルトで特定の6to4ルータへ中継させるのではなく、例えば「2002::/16」を半分に分けて、前半分と後半分を別々の6to4ルータへ中継させるような経路設定をすればよい。
| ISPへトンネル接続しよう |
次に、実際のISPサービスでよく用いられている、静的トンネル接続について説明する。通信方法自体は6to4トンネルと完全に同じで、プロトコル・タイプ「IPv6」のIPv4パケットでIPv6パケットをカプセル化して送信する、という仕組みである。
6to4と異なるのは、そのときに用いるIPv4アドレスが契約により固定されていること、そして使用できるプレフィックスの形式に制約がないことの2つだ。
トンネル接続の契約は、大まかにいうと以下のような手順で進められる。
|
||
|
↓
|
||
|
||
|
↓
|
||
|
上記情報を用いて、それぞれのトンネル・ルータにて、互いのトンネル・ルータへ向けたトンネル・インターフェイスを仮想的に定義し、そのトンネル・インターフェイス上でパケット中継や経路制御を行うイメージである(図6)。
|
||||||||
| 図6 静的トンネルを用いたIPv6外部接続 |
トンネル通信先を1カ所に静的に固定して運用するため、6to4トンネルの問題点として挙げた3つの課題のうち、後者2つの問題は解決される。すなわち、仮想的なIPv6専用のPoint-to-Point回線としての利用が可能になる。
今回は、6to4のトンネル接続を例に、IPv6で対外接続する方法について解説した。次回以降は、内部ネットワークのIPv6化手順について解説していく。
| 「Master of IP Network総合インデックス」 |
TechTargetジャパン
- 実機では測定できない性能を測定? (2012/2/7)
システムの完成前に、達成し得る性能値や必要なサーバリソースを知るには? その解となる「性能シミュレーション技法」を解説 - 性能チューニング個所の検討 (2012/1/30)
アプリのチューニングや環境増強で、どの程度改善が見込める? 今回からは「実際に活用できる性能対策」を解説します - 遅いところを直すだけでいいのですか? (2012/1/24)
負荷が集中したときの性能ボトルネックを改善するのに、アプリケーションサーバとDB、どちらを優先すべきでしょう? - cloudfoundry.comを使ってみよう (2012/1/19)
VMwareが提供するPaaSプラットフォーム「CloudFoundry」。注目を集めるこの基盤を活用してPaaSを構築!
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



