連載
» 2015年02月13日 18時00分 UPDATE

CCENT/CCNA 試験対策 2015年版(8):デュアルスタック、トンネリング、NAT――IPv6とIPv4の共存方法 (1/2)

「CCENT/CCNA」資格取得に向けて勉強中の新米ネットワークエンジニアが「IPv6とIPv4の共存方法」について調べました。

[ドヴァ 齋藤貴幸,@IT]
title_ccent.jpg
CCENT/CCNA 試験対策 2015年版

連載目次

 新米ネットワークエンジニアのS君が、「IPv6とIPv4の共存方法」について調べたリポートを、先輩社員 齋藤さん(炭水化物好き)に持ってきました。

 S君はCCENTとCCNAの資格取得に向けて勉強中。炭水化物好きの先輩社員 齋藤さんにランチをごちそうすると、齋藤さんがリポートを添削してくれるのです。


S君のリポート「IPv6とIPv4の共存方法」

i_ccent_s.jpg

 前回のIPv6アドレスに続き、今回はIPv6アドレスとIPv4アドレスの共存方法について調べました。

 ところで齋藤さん。IPv4アドレスが枯渇するって僕が小学生のころから言われてますけれど、なかなかなくなりませんね。

IPv6アドレスとIPv4アドレスの共存方法

 現在さまざまな機器でIPv4アドレスを使用しているため、IPv4アドレスを廃止してIPv6アドレスに移行するのは困難です。そのため、IPv6アドレスとIPv4アドレスが共存する必要性があります。共存方法は大きく分けて以下の3つです。

  • デュアルスタック
  • トンネリング
  • IPv4とIPv6間のNAT

 それぞれを詳しく説明します。

デュアルスタック

 「デュアルスタック」は、IPv6アドレスをサポートしていない機器とIPv6アドレスに対応した機器との通信をするための技術です。デュアルスタックに対応している機器は、IPv4アドレスとIPv6アドレスの両方を持っています。

 図1のようにデュアルスタックに対応すると、IPv4アドレスを用いた通信とIPv6アドレスを用いた通信の両方をサポートできます。

ccent2015_8a.gif 図1 デュアルスタック

 現在ではほとんどの機器が、デュアルスタック対応になりました。しかしデュアルスタック対応機器はIPv4とIPv62つのプロトコルを使うため、負荷が多くかかりがちというデメリットがあります。

トンネリング

 「トンネリング」は、ルーター間の通信をカプセル化する技術です。IPv4とIPv6の異なるプロトコルを用いた場合でも、トンネリング技術を使用すると通信を行えます。

 トンネリング技術は大きく分けて以下の2通りです。

  • IPv6 over IPv4
  • IPv4 over IPv6

 これらを詳しく説明します。

  • IPv6 over IPv4

 「IPv6 over IPv4」は、図2のようにIPv6間通信にIPv4ネットワークを介するパターンのトンネリング技術です。現在はインターネットの世界においてIPv4アドレスの利用が多いので、LAN側ではIPv6を使用するIPv6 over IPv4が多く用いられます。IPv6 over IPv4におけるトンネリング技術も、図2のようにいくつかの種類があります。

 なお「Teredo」は他のトンネリング技術よりも優先度や利用頻度が低いため、今回のリポートには含みません。

ccent2015_8b.gif 図2 IPv6 over IPv4
  • 6to4

 「6to4」は、ルーター間をトンネリングする技術です。

 6to4は、図3のようにIPv6アドレス中にIPv4アドレスを埋め込んだ「6to4アドレス」という専用のアドレスを使います。6to4アドレスは、IPv6アドレス「2002::/16」で構成されるアドレスです。このとき、インターフェースIDは「EUI-64」で生成されます。また、追加されるIPv4アドレスには、グローバルアドレスが入ります。

 注意点は、6to4トンネルを生成するためのルーターはデュアルスタックに対応している必要がある点、プライベートIPv4アドレスは使えない点、NAT機能が使えない点です。

ccent2015_8c.gif 図3 6to4アドレス
  • ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)

 「ISATAP」は、図4のようにデュアルスタック対応のISATAPホストがIPv6ネットワークに出ていく際にトンネリング技術を用いることで、IPv6通信を可能にする技術です。

ccent2015_8d.gif 図4 ISATAP

 ISATAPホストはデュアルスタックなので、IPv4アドレスとIPv6アドレスを持ちます。この際のIPv6アドレスは、図5のようなISATAPアドレスを持ちます。

 この際のIPv4アドレスは、グローバルアドレスとプライベートアドレスのどちらでも使えます。

ccent2015_8e.gif 図5 ISATAPアドレス
参考記事「IPv4とIPv6の相互運用

IPv4 over IPv6

 「IPv4 over IPv6」は、図6のようにIPv4ネットワークにIPv6ネットワークが挟まるパターンのトンネリング技術です。

 IPv4 over IPv6トンネリングの技術を実現しているものに、「MAP-E」や「DS-Lite」があります。MAP-EやDS-LiteはIPv4パケットをIPv6パケット内にカプセル化し通信を行う技術です。この技術を利用すると、IPv6ネットワークを経由してもIPv4通信を行えます。

ccent2015_8f.gif 図6 IPv4 over IPv6

IPv4とIPv6間のNAT

 IPv6アドレスとIPv4アドレスの共存を実現する3つ目の方法は、IPv4とIPv6間で「NAT(Network Address Translation)」を用いるものです。

  • NAT-PT

 「NAT-PT」は、IPv4とIPv6間の通信において変換を行うことで通信を行える技術です。NAT-PTに対応したルーターがIPv4パケットとIPv6パケットのアドレスやポートの変換を行います。しかし現在は、NAT-PTよりも後継技術の「NAT64」の利用が推奨されています。

  • NAT64

 「NAT64」は、NAT-PTの後継として登場した技術で、IPv6とIPv4双方向でのアドレス変換を可能にします。NAT64には2種類あり、IPv6アドレスをどのようにIPv4アドレスへ変換するのかというルール(ステート情報)を保持する「ステートフルNAT64」と「ステートレスNAT64」があります。

 1対1のアドレス変換を行うステートレスNAT64に対し、複数のIPv6アドレスn対1つのIPv4アドレスの変換を行うのがステートフルNAT64です。全てのプロトコルのアドレス変換をステートレスNAT64で行えるのに対し、ステートフルNAT64は、TCP、UDP、ICMPパケットに限定されます。

  • MAP-T

 IPv4パケットのヘッダーをIPv6ヘッダーに置き換えるものです。

  • 464 XLAT

 IPv4間ネットワークにIPv6ネットワークが挟まっている場合に利用します。この際の、IPv4からIPv6への変換を「IP/ICMP Translation Algorithm」という技術を用いて、IPv6からIPv4への変換にNAT64を使います。

 以下2項目はCCENTの試験範囲外ですが、調べてみました。

  • DNS64

 NAT64と併用されることが多いDNSサービスです。単純に名前解決後にIPv6アドレスを返すだけではなく、IPv4アドレスでのみ名前解決できた場合に、疑似的にIPv6アドレスとして応答する仕組みを持っています。

 なお、ドメイン名からIPv4アドレスを参照する「正引き」のための定義は「Aレコード」と呼ばれています。これに対し、ドメイン名に対するIPv6アドレスを定義するレコードは「AAAAレコード」と呼ばれています。

 IPv6ホストからの問い合わせに対し

1 AAAAレコードが存在する場合
 →定義されたIPv6アドレスをそのまま返します。

2 AAAAレコードは存在せず、Aレコードのみ存在する場合
 →64:ff9b::というプレフィックスの末尾にAレコードで参照できたIPv4アドレスを16進数に変換してから付与して、IPv6アドレスを返します。

 例えばAレコードに定義されたIPv4アドレス11.22.33.44だった場合、64:ff9b::b16:212cというIPv6アドレスが返ります。

  • portproxy

 CCENT/CCNAの試験にはほとんど関係がないのですが、IPv4とIPv6の変換には「portproxy」とういう変換方式もあります。

 よくあるwebproxyのように、プロキシサーバーのIPv4(もしくはv6)アドレスとポート番号を指定した上で通信すると、事前に設定済みの転送先にそのまま転送できる仕組みです。

 ただし、このportproxyはWindowsOSでのみ使用できます。詳しくは「netsh interface portproxy」で検索してみてください。

分からない単語集

用語 意味
カプセル化 セグメント=>パケット=>フレーム=>ビットのように、上位レイヤーのPDU(プロトコル データ ユニット)に自レイヤーのヘッダ情報を付加してPDUを生成することが本来の意味。トンネリングのように、同一レイヤーであってもヘッダーを付加することで別プロトコルのPDUに変換できる
NAT Network Address Translation。もともとはプライベートアドレスをWAN側で使用しているグローバルアドレスに変換するための仕組み。IPアドレスだけで変換する方式と、送信元ポート番号とIPアドレスをセットでテーブルに管理する方式がある。NAT64などは同一レイヤーでのカプセル化の仕組みを利用してアドレス変換している

 次回はCSMA/CDやメディアアクセス制御の方式などをリポートします。

リポート作成:新米S


齋藤さんの添削

ccent_stamp01.jpg

 今回は苦戦したようですね。文章のボリュームが少なめなのはそのせいでしょうか? あるいは簡潔に表現しようとした結果なのでしょうか?

 IPv4とIPv6の共存技術である3種類についてしっかり分類できていました。また、CCENT、CCNAの出題範囲には存在しないNAT64、464XLATなど、比較的新しい仕組みについても調査したことは評価に値します。これらの新しい技術についても図表での説明がほしいところですが。

 われながら激甘の評価の気がしますが「大変よくできました」としましょう。甘めに評価を付けたので、ランチは「牛丼屋のカルビ丼特盛りに生卵追加」でお願いします。

 齋藤

今回の宿題

  • トンネリング、NATなどで使用する技術の中で、RFCとして策定されているものはありますか?
  • DNS64に依存するNAT技術はどれですか?
i_ccent_s.jpg

 やったね、齋藤さん! 明日はホームランだ!

i_ccent_saito.jpg

 ずいぶん古いネタを知ってるね。でもS君は、IPv4枯渇問題が始まったころ小学生だったんだよね。いったい幾つなんだい?

i_ccent_s.jpg

 24歳っす! 平成生まれっす! ゆとりっす!

i_ccent_saito.jpg

 ……カルビ丼、3つにしようかな。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。