IPv6普及・高度化推進協議会
共存WGアプリケーションSWGの活動紹介

2012年6月13日

先端技術研究所
廣海 緑里
Copyright © 2012 INTEC Inc.

IPv6普及・高度化推進協議会• IPv6による「次世代インターネット」の普及と、社会基盤構築を目指した高度化のために発足• 人材育成から技術認定、ガイドライン提供など幅広い活動• 産官学の幅広い関係者が活動に参加• 会員数（2012年5月現在）– 法人会員 ８５社– 個人会員 １１９名
– 後援会員 ５団体

http://www.v6pc.jp/
Copyright © 2012 INTEC Inc.

1

活動体制
• 内容や目的に応じたワーキンググループ• 非会員でもワーキンググループに参加しているケースもある（WG毎の活動規定による）

IPv6移行ガイドライン策定
IPv6 Ready ロゴプログラム

IPv6テストベッド（検証環境）

FMC技術仕様と運用方法の検討と検証

IPv6ハンズオンセミナー
IPTV／DTVのIPv6プラット
フォーム整備の支援

ネットワーク技術者に求められるIPv6
関連技術習得に係る資格試験認定

Facility Network相互接続支援

New!

IPv6対応セキュリティガイドライン（第0.5版）（企業ネットワーク（DMZ）に関する中間報告書）

GLOBAL IP BUSINESSEXCHANGE の開催

CGNとHTML5/SPDY/WEBSOCKETなど新しい技術の運用検討
Copyright © 2012 INTEC Inc.

2

アプリケーションのIPv6対応検討SWG• ２つの目標– WebアプリケーションのIPv6対応ガイドライン– 基盤となるSocketプログラミングのIPv6対応ガイドライン

2011年9月に発足

Copyright © 2012 INTEC Inc.

3

設立の背景Alaxalaネットワークス新氏CAETEC2011資料より
責任政治

2012年に変化がおきるレイヤ

プレゼンテーション

しがらみ

経済

モチベーション

ロジック/ビジネススキル

アプリケーション

データ

プレゼンテーション
セッション

IPv6対応に目途がついているレイヤ

トランスポート

信頼性、性能などがネットワーク

よくわからない土管

データリンク物理

ネットワーク技術者の視点
Copyright © 2012 INTEC Inc.

4

アプリケーション/サービス開発者の視点

アプリケーションのIPv6対応ガイドライン SOCKET編• 2012年5月11に公開、パブリックコメント募集開始– ６月２２日（金）〆切り！

「アプリケーションのIPv6対応ガイドラインSOCKET編」
http://www.v6pc.jp/jp/entry/wg/2012/05/ipv6_socket.phtml
Copyright © 2012 INTEC Inc.

5

サーバ処理の流れの例※複数ソケットでの待受け例

IPv4前提時代

gethostbyname()
等で単一の待受け用IPv4アドレスを取得

getaddrinfo等で待受け用IPv4,IPv6アドレスリストを取得
1つ1つにsocket生成

A = 192.0.2.25

A = 192.0.2.25
AAAA = 2001:DB8::25

socketbind

得られたデスクリプタについてselectで待受け

listenacceptclose
Copyright © 2012 INTEC Inc.

IPv6導入時代

6クライアント処理の流れの例
IPv4前提時代

socketIPv6導入時代

gethostbyname()等
で単一の接続先IPv4アドレスを取得

getaddrinfo等で接続先IPv4,IPv6アドレスリストを取得

A = 192.0.2.25

A = 192.0.2.25
AAAA = 2001:DB8::25
アドレスリストは、RFC3484のアドレス選択機構に従ったソートがされる（デフォルトではIPv6優先）IPv6,IPv4アドレスリストを順に接続を試す

connect

closeCopyright © 2012 INTEC Inc.

7

HappyEyeball提案動作(Fast Fallback)によるクライア
ント処理の流れの例
IPv4前提時代

gethostbyname()等
で単一の接続先IPv4アドレスを取得
socketIPv6とIPv4を交互に並べ替え

connect

IPv6導入時代

getaddrinfo等で接続先IPv4,IPv6アドレスリストを取得
アドレスリストは、RFC3484のアドレス選択機構に従ったソートがされる（デフォルトではIPv6優先）

アドレスリストを順に接続を試す（最初のconnect後一定期間経過後、続けて別のアドレスファミリでconnectし、応答が速いものが選択される）

close“Happy Eyeballs: Success with Dual-Stack Hosts”
RFC6555、http://tools.ietf.org/html/rfc6555
応答の一定期間の参考値：Firefox and Chrome use 300ms
Copyright © 2012 INTEC Inc.

8

アドレス選択機構（１）
•

前提条件
–––

クライアントも接続先も複数のアドレスを持っている
送信元と接続先のアドレスが正しい組み合わせであることが必要
RFC3484でアドレス選択機構のアルゴリズムとデフォルトのポリシーテーブルが規定（実装依存→最近までMac OSには適用されていなかった）

接続先

アドレスの性質

192.0.2.1

グローバルIPv4アドレス

2001:db8::80

グローバルIPv6アドレス

DNS参照で得た値ノードが持つアドレス

自端末

アドレスの性質

169.254.0.1

自動構成IPv4アドレス/リンクローカルIPv4アドレス

127.0.0.1

ループバックアドレス

IPv4プライベートアドレス
IPv4グローバルアドレス
fe80::60c:ceff:fee4:7ea

リンクローカルIPv6アドレス(fe80::/10)::1

IPv6ループバックアドレス

ff0x::1

IPv6全ノードマルチキャストアドレス

ff02::1:ff/104

IPv6要請ノードマルチキャストアドレス

Fd01:

IPv6ユニークローカルグローバルユニキャストアドレス(ULA)

IPv6グローバルユニキャストアドレス

Copyright © 2012 INTEC Inc.

9

アドレス選択機構（２）PrefixPrecedence

Label::1/128

50

0::/0401

2002::/1630

2::/9620

3::ffff:0:0/96

10

4100

宛先のIPv4のアドレスは、IPv6 mapped アドレスに置きかえられて比較される

IPv6 mapped アドレスの優先度をあげる(10→100)と、IPv4が優先になる※ テーブル変更できないOS、テーブル実装されてないOSもある
Copyright © 2012 INTEC Inc.

10

今後公開予定の資料• WEBアプリケーションの対応ガイドライン• IPv4依存関数とプロトコル非依存の関数（各言語のチートシート）– C、Perl、Javaなどを予定

Copyright © 2012 INTEC Inc.

11

メンバー＆コメント募集• パブリックコメントは６／２２（金）〆切りです– http://www.v6pc.jp/jp/entry/wg/2012/05/ipv6_socket.phtml• メンバー随時募集中– http://www.v6pc.jp/jp/wg/coexistenceWG/v6appswg.phtml

Copyright © 2012 INTEC Inc.

12