IPv6

Related Post

現在、主流のIPv4にかわるものとして、それまで約 232(= 約43億)個であったIPアドレスを約 2128(= 約340澗)個まで使えるようにしたのが大きな特徴の一つである。340個のアドレスとは、1038のアドレス空間があるということである。(UUIDの理論により、誰かがランダムに生成したIPv6アドレスは他のIPv6アドレスと重複することはまずあり得ない)Internet Protocol Version 6(インターネット プロトコル バージョン6)、IPv6(アイピーブイ6、アイピーバージョン6)は、Internet Protocolの一種で、OSI参照モデルにおいてネットワーク層に位置付けられるプロトコルである。

TCP/IP群
アプリケーション層
BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP
トランスポート層
TCP / UDP / DCCP / SCTP / RSVP
ネットワーク層
IP (IPv4、IPv6) / ICMP / ICMPv6 / NDP / IGMP / IPsec
リンク層
ARP / OSPF / SPB / トンネリング (L2TP) / PPP / MAC (イーサネット、IEEE 802.11、DSL、ISDN)

実際の運用では、回線事業者がエンドユーザのルーターに提供する最小単位は/64ブロックのことが多い。また、アドレスの下位の64ビットであるインタフェースIDは、一意性を得るためにMACアドレス等から生成されるEUI-64フォーマットが使用されることが多い。(/64でなければならないわけではない)

また、Webブラウザのアドレスバーに入力する場合など、URLのホストパートをIPv6アドレスで指定したいときは、例えば::1ならば[::1]のように半角の角括弧でくくる。[RFC 3986]

 

【概要】

IPv6が誕生した背景には、IPアドレス枯渇問題がある。
1980年代までは、アメリカ国内を中心に、Class A (/8)、Class B (/16)、Class C (/24) などの単位で各組織にIPアドレスを割り振っていた。1990年代に入り、インターネットの国際化と、参加組織の増大によって、Class BのIPv4アドレスが不足する恐れが出てきた。IPアドレスの数が有限である以上、根本的な解決策が必要となることは自明であり、その解決策として検討された最終成果がIPv6である。
しかし、新しいプロトコルであるIPv6を開発し普及させるには時間がかかる。そのため、当面の短期的な対策として、プライベートアドレス (RFC 1918) の導入やCIDR (RFC 4632)、NAT (RFC 2663) などにより、IPv4アドレスを節約および有効活用することで枯渇を回避しているのが現状である。
一部には、IPv4アドレス枯渇には、既存の回避策で対応可能であるとIPv6の必要性を疑問視する声もあった。しかし、国際的なインターネットの爆発的な普及と、携帯電話やスマートフォンなどのインターネット利用機器が急速に増加したことにより、新たなIPアドレスの需要が、運用の改善や新たな回避策によるIPアドレスの供給を上回っており、限界に達しようとしている。また、回避策による弊害も顕著になってきており、インターネットの新たな利用形態の普及を阻害している。
現在は、IPv6の運用に目途がたったことから、IPv4との共存方法やIPv6への移行方法が課題になっている。

【IPv6導入のメリット・デメリット】

<メリット>
一般に言われているIPv6導入によるメリットとしては以下のようなものが挙げられている。

  • 事実上無限の数のIPアドレス
    • アドレス枯渇の心配がほぼ解消される。実際には非常に大きな有限の数(2128個 = 340,282,366,920,938,463,463,374,607,431,768,211,456個 = 約340澗個 = 約340兆×1兆×1兆個)であるが、「その辺の石ころにも個別に割り当てることができる」ぐらいあり余っている。
    • 仮に、地球の全人類(約7,000,000,000 = 70億人)へ均等に割り当てられるとしても、1人あたり約4穣8,600𥝱個 = 4京8,600兆×1兆個 = 4.86×1028個という天文学的な数になり、一生かけても使い尽くせないほど巨大な数になる。
    • 同時に、IPマスカレード(NAT/NAPT等)を使わずに済むので、ノードがグローバルな接続性を持ち、直接接続が可能になる。これによって、P2Pアプリケーション(IP電話、インスタントメッセンジャー及びネットワークゲーム等)の利用が容易になり、またNATの設定等に気を遣わなくて済むようになる。
    • 実際にOCNによるIPv6サービスでは、月額300円で/64のネットワークブロックを2ブロック提供するサービスを実施している。このサービスを受けることで、理論的には300円の月額で、一人あたり約43億の2乗(2の64乗、IPv4におけるIPアドレスの総数の2乗)ものアドレス空間をもつネットワークブロックを2つ取得することができる。
  • IPsecによるIPレイヤでのend to endセキュリティの確保にあっては、ユーザ認証、パケットの暗号化及びなりすまし防止等がサポートされた。これらはIPv4を使う環境では上位レイヤ (TLS) 等で補完しなければならなかった機能である。
    • 一部で「IPv6の実装にはIPSecが必須である」と言われているが、これは規格上 (RFC) の話で、IPSecをサポートしないIPv6の実装は多数存在している。
  • 管理者に負担をかけないIPアドレスの自動設定
    • DHCPサーバがなくても、ホストには自動的にIPアドレスとデフォルト経路が設定される。
  • アドレスの集約による基幹ルータでの経路表サイズの抑制
    • 新たにIPv6の接続を持つとき、ISPの持っているIPv6アドレス(プリフィックス)を切り出してユーザーに渡す。これによって、新しいIPv6サイトが増えたとしてもバックボーンに対して公告する経路情報は増えず、基幹ルータで保持する経路表の大きさが抑えられる。その一方で、アドレスブロックの可搬性がなくなる、複数のISPと契約した時にどのアドレスをどのように使うかを考慮しなければならない「マルチホーム」問題も発生する。
  • 固定長ヘッダ
    • IPv6の基本的なヘッダは固定されているため、ルータの負荷を低減できるなどATM等の固定長パケットネットワークに共通な利点を享受しつつ、また拡張性も保つ。
  • エラー検出
    • IPv4ではレイヤ3 (IP) で各ルータのホップ毎に行われていたエラー検出をIPv6では廃止し、レイヤ4(TCPv6/UDPv6等)以上の上位層で、エンドツーエンド (end-to-end) でエラー検出を行うこととされた。これにより前項と同じくルータの負荷低減等が期待される。

<デメリット>
既存のIPv4と共存させる必要があることから、次のようなデメリットや課題が発生する。

  • IPv4と似たプロトコルではあるものの、互換性がないため、ルータの取替えや新しいソフトウェアの開発・導入などで追加投資を免れない。また、並行運用期間(IPv4が淘汰され消滅するまで)は両方のプロトコルをサポートしなければならない。
  • 普及の目安としてBGPのルーティングテーブルのサイズを比較すると、2014年10月現在でプレフィックスがIPv4で521998、IPv6で19894と、IPv4の3.8%程度の規模でしかない。IPv4での教訓とIPv6の経路が新規に敷設された関係でIPv6の方が経路が集約されていてBGPで広告されている経路が少ないとしても、普及が進んでいないことがわかる。また、Googleによる統計でも、IPv6によるアクセス数は2014年10月現在で全体の5%程度になっている。
  • そもそも、汎世界的なネットワークとなったインターネットが、遍くIPv6に移行するのかどうか、するとしてそれが何時になるのかは、(短期的には)全くの見通しが立っていない。これは、古い機材やOS、ファームの更改により徐々にIPv4/IPv6併存環境が広がっていくことである程度緩和されうる。
  • IPv6のバックボーンはまだIPv4ほど充実していない。また、末端ユーザー/サイトのIPv6接続は、2011年4月時点ではほとんどの場合IPv4によるトンネリングである。そのため、IPv6で接続するとかえって通信性能が低下する場合が多い。また、IPv6での接続に失敗することもままあり、その場合IPv4にフォールバックすることになるが、最初からIPv4で接続していれば不要であったはずのタイムラグが生じてしまう。
  • 前項とも関連するが、現状のIPv6ネットワークはトンネリングやDNSなどをIPv4に依存しているため、IPv6を導入しても管理の手間が増えこそすれ、耐障害性が増すわけではない(IPv4がダウンすればIPv6もダウンしてしまう)。
    • 今後はIPv6メインとしてIPv4をトンネリングしたネット構成の増加が見込まれている。
  • アドレス空間が広いことと、MACアドレスによる自動設定のため、逆引きの管理が困難であり、逆引きを要求されるケースで困ることがある(逆引きできないホストからの接続を拒否するサーバなど)。
  • 技術面や運用面でまだ不確定な要素が多い(サイトローカルアドレスの廃止、エニーキャストアドレスの見直しとDHCPv6の再検討、逆引きの問題など)。
  • IPv4では、NATやIPマスカレードの必要性から中継機を介して間接的にインターネットと接続した結果、「インターネット側から具体的なホストが見えない」という点(= 匿名性)がセキュリティおよびプライバシー上都合が良い場合も多い。IPv6において後述のEUI-64で生成したアドレスを静的に割り当てる場合にはユーザの追跡が可能になるなど特にプライバシーの面で問題が発生する。これに対処するためRFC 3041でPrivacy Extensions for Address Configuration in IPv6が定められ、Windows XP等がこれをサポートしている。
    • ただし、IPv6の接続サービスの場合プレフィックスが契約毎に固定されている場合が多く、プレフィックスに基づくネットワークアドレス単位で識別を行われると、RFC 3041を利用することによる匿名化の効果はない。
  • ユーザーのインターネットプロトコルに対する認識度が低く、IPv6に移行するメリットが見いだしにくい。マーケティング手法の観点からは、エンドユーザーが選択するのは、内部プロトコルではなくエンドサービスであり、内部プロトコルの相違をエンドユーザーに訴求する必要性は低い。
    • ただ、冒頭に記したように20114月に日本でのIPv4アドレスの在庫が払底したこともあり、サーバやVPN開設など何らかの理由で固定IPアドレスを必要とする場合、今後はISPやホスティング業者の保有するアドレス空間の使用状況にもよるが、いずれにせよIPv6でのIPアドレスの取得を検討せざるを得なくなる可能性が大きい。

【IPv6アドレスの種類】

IPv6には、以下のような3種類のアドレスがある。

<ユニキャストアドレス>
一つのインタフェースに付与されているIPアドレス。一つのインタフェースを認識する。一つのコンピュータに多くのインタフェース(LANボード等)が実装されている場合は、インタフェースの数だけユニキャストアドレスを持つことになる。

<マルチキャストアドレス>
複数のノードに割り当てられるアドレス。このアドレスあてに送信されたパケットは、複製されてこのアドレスに参加しているノードに配送される。ffxx:: で始まるアドレス。返信にはユニキャストアドレスが指定される。送信元がマルチキャストアドレスのパケットをルータは中継してはならない。
なお、IPv6にはブロードキャストアドレスというものは存在しないが、必要な場合は、オールノードマルチキャストアドレス (ff02::1) を使う。

<エニーキャストアドレス>
一つのアドレスが複数のノードに割り当てられているという点ではマルチキャストと似ているが、エニーキャストの場合は「そこに属しているノードの中で、ネットワーク上で一番近いノードのどれか一つのみに配送される」という点が異なる。返信にはユニキャストアドレスが指定される。送信元がエニーキャストアドレスのパケットをルータは中継してはならない。
さらに、パケットの到達範囲(スコープ)によって、上記のアドレスそれぞれに対しリンクローカルスコープとグローバルスコープのアドレスが存在する。
リンクローカルスコープ;あるリンクでのみ一意なアドレス。このスコープあてのパケットはルータを越えて配送されることはない。
グローバルスコープ;全IPv6で一意なアドレス。

【特殊なアドレス】

0:0:0:0:0:0:0:0
未指定アドレス (Unspecified Address) として定義されている。0 を省略して 0::0:: とも表記される。このアドレスはノードにまだアドレスが割り当てられていないことを意味し、ノードに割り当てられることはない。ノードの初期化段階において、アドレスの重複をチェックする場合などに送信元アドレスとして使用される。

0:0:0:0:0:0:0:1
ループバックアドレスとして定義されている。0 を省略して 0::1::1 とも表記される。IPv4では 127.0.0.0/8 の範囲の任意のアドレスをループバックアドレスとして使用できるが、IPv6 ではこのアドレスに限られる。ループバックアドレスであるため、このアドレスをインターフェイスに割り当てることはできない。

ローカルユニキャストアドレス (RFC 1884)
各ネットワークインターフェース毎に、初期化時に自動生成し、LANの同一セグメント内でのみ有効なアドレス。IPv6のルータでは中継されないため、インターネット上では使用できない。プレフィックスは常に fe80::/64となる。

128ビットの内訳

長さ 説明
10ビット プリフィックス (1111111010)
54ビット 0固定
64ビット インターフェイスID

ユニークローカルユニキャストアドレス (RFC 4193)
IPv4におけるプライベートIPアドレスと同様に、ローカルでの使用向けに使われるアドレス。
fd00::/8 アドレスの一部をランダムに生成して使用する。完全な一意性は保証されないものの、異なる組織でアドレスが重複する可能性は低い。

128ビットの内訳

長さ 説明
7ビット プリフィックス (1111110)
1ビット L(1=局所的な割り当て、0は現在未定義)
40ビット グローバルID(乱数)
16ビット サブネットID
64ビット インターフェイスID

(グローバルIDは、各ネットワーク単位で乱数を用いて決定することになっている。国際機関で一意に管理されている値ではないため、ユニークローカルユニキャストアドレスはローカルアドレスであってグローバルアドレスとしては運用できない。)

IPv6 アドレス割当のまとめ
アドレス 割り当て IPv4 での割り当て
:: (アドレス未定義を示す) 0.0.0.0
::1 ループバック 127.0.0.0/8
::/96 (IPv4互換アドレス)
::ffff:0:0/96 (IPv4射影アドレス)
0200::/7 CLNS の NSAP アドレス用に予約
0400::/7 IPX 用に予約
2000::/3 グローバルユニキャストアドレス グローバルアドレス
2001::/32 Teredo
2001:2::/48 BMWG
2001:10::/28 ORCHID
2001:db8::/32 (文書記述用アドレスプレフィックス)
2002::/16 6to4
3ffe::/16 6bone – IPv6 の実装実験用
fc00::/7 ユニークローカルユニキャストアドレス
fc00::/8 集中管理
fd00::/8 ローカル管理
fe80::/10 リンクローカルユニキャストアドレス 169.254.0.0/16 (APIPA)
fec0::/10 サイトローカルユニキャストアドレス ※廃止 プライベートアドレス
ff00::/8 マルチキャストアドレス 224.0.0.0/4
ff01::/16 ノードローカル
ff01::1 全ノード
ff01::2 全ルーター
ff02::/16 リンクローカル
ff02::1 全ノード
ff02::2 全ルーター
ff02::4 DVMRPルーター
ff02::5 OSPFIGP
ff02::6 OSPFIGP指定ルーター
ff02::7 STルーター
ff02::8 STホスト
ff02::9 RIPルーター 224.0.0.9 (RIPv2)
ff02::a EIGRPルーター
ff02::b 移動エージェント
ff02::c SSDP
ff02::d 全PIMルーター
ff02::e RSVPカプセル化
ff02::1:1 リンク名
ff02::1:2 全DHCPエージェント
ff02::1:3 LLMNR 224.0.0.252
ff05::/16 サイトローカル
ff05::2 全ルーター
ff05::1:3 全DHCPサーバー
ff05::1:4 全DHCPリレー
ff05::1:c SSDP 239.255.255.250
ff0e::/16 グローバル
ff0e::c SSDP