17
IPv6 Readyって何だ? NAT64/DNS64本当使い方とは? 藤崎 智宏/Internet Society Japan Chapter (ISOC-JP) 岡田 雅之/JPNIC,CONBU

IPv6 Readyって何? NAT64/DNS64 徹底解説! #iosdc #b

  • Upload
    smadako

  • View
    944

  • Download
    2

Embed Size (px)

Citation preview

IPv6 Readyって何だ? NAT64/DNS64の

本当の使い方とは?

藤崎智宏/Internet Society Japan Chapter (ISOC-JP)

岡田雅之/JPNIC,CONBU

自己紹介

•藤崎 智宏(ISOC-JP,そのほか沢山)• Twitter:@dudisaki• メイン:電話屋で,インターネット関連の仕事• IPv6普及に取り組んでいます.

• IPv6普及・高度化推進協議会• アプリケーションのIPv6対応検討SWG部会長• IPv6導入に起因する問題検討SWG部会長等

•岡田 雅之(JPNIC/CONBU/{JANOG})• Twitter:@smadako

• FBのほうが活発です

• ネットワーク関係• IPアドレス配布と関係するシステム

2

インターネットとIPアドレス

3

インターネット

機器(モノ)がインターネットにつながるには,IPアドレスが必要

192.0.2.1

198.51.100.1203.0.113.1

従来から利用されてきたのは”IPv4アドレス”

IPv4では,IPアドレスは 32ビット≒約43億個

IPv4アドレス在庫の枯渇世界的に,IPv4アドレスはほぼ利用し尽くされているのが現状

第30回JPNICオープンポリシーミーティング JPNIC報告資料より抜粋http://www.jpopf.net/JPOPM30Program?action=AttachFile&do=view&target=4_policy-implementation.pdf

IPアドレスが入手できないと,インターネット

が拡張できない!今後の発展のため,インターネットのバージョンアップが進行中!

「IPv4 → IPv6へ」

IPv6とはIPv4の後継プロトコルとしてインターネット標準化団体(IETF)で規定.アドレス数を大幅に増やした

IPv6アドレス: 128ビット

(IPv4: 32ビット)

プロトコル的にはIPv4互換性無し

IPv4機器とIPv6機器は相互に通信不可

同じネットワーク上には共存可能機器はIPv4・IPv6両対応が必要

4

IPv4バケツ一杯分の砂の数

IPv6太陽一個分(地球100万個分)の体積の砂の数

IPv4v4

IPv6v6

変換装置

IPv4による通信

ホストA

ホストB

ホストC

IPv6による通信

IPv6スタックIPv6スタック

IPv4スタック

IPv4スタック

IPv4スタック

IPv4/v6 共存ネットワーク

変換装置による対応もあり

IPv6の普及状況

•世界的に普及が進んでいます.

5

IPv6の普及度https://stats.labs.apnic.net/ipv6/

Google サーバへの通信の割合https://www.google.com/intl/ja/ipv6/statistics.html

IPv6とGoogle, Apple

• Google も Apple も,「インターネットの継続的な発展」という観点から,IPv6普及に積極対応.• 両社,各種サービスはほとんどIPv6対応済み

• Appleにおいては,2016年6月から,iOSアプリの IPv6対応を必須化• アプリ審査でチェック

• 実際に審査が通らなかった

例もあるようです.

6https://developer.apple.com/news/?id=05042016a

Appleの文書より(1)対応プログラムAppleは開発者向け文書で対応方法やテスト方法を解説

https://developer.apple.com/jp/documentation/の,”ネットワーキングオーバービュー ”から,” IPv6 DNS64/NAT64ネットワークのサポート”

IPv6対応ネットワークプログラミングの注意点• プロトコルに埋め込まれたIPアドレスリテラル。

• 構成ファイルに埋め込まれたIPアドレスリテラル。

• ネットワークプリフライト

• 低レベルネットワークAPIの使用

• 小さなアドレスファミリストレージコンテナの使用

IPアドレスを直接プログラムに書かない!

IPアドレスを直接設定ファイルに書かない!

プリフライト(≒インターネット接続チェック)をつかわない!

高レベルAPIで救われる落とし穴にはまる!

IPアドレスは32bitだけじゃない!7

残念な例(1)

8

残念な例(2)

9

memset(&ptr, 0, sizeof(ptr));

ptr.ai_family = AF_INET;ptr.ai_socktype = SOCK_STREAM;

if((ret = getaddrinfo(host, NULL, &ptr, &info )) ! = 0 {printf("network error %d ¥n", ret);return -1;

}

残念な例(3)

残念ながら、探すとたくさんこういった例がいっぱいあります・・・・(T_T)

10

よくある例

Appleの文書より(2)試験環境• IPv6 only (デュアルスタックでなく)の環境でのアプリ試験環境について解説

• IPv4インターネットへは,プロトコル変換 (DNS64/NAT64)を利用したアクセスを想定

11

DNS64サーバ

クライアント

DNS問い合わせ

IPv6アドレス,または合成IPv6アドレス(IPv4ア

ドレスから変換されたIPv6アドレス) IPv4サーバ

クライアント

NAT64ゲートウェイ

IPv6サーバ

合成IPv6アドレ

スに対するコンテンツの要求/返答

コンテンツの要求/返答

IPv6アド

レスに対するコンテンツの要求/返答

① ②

DNS64/NAT64の動作概略

•同文書で詳解されているテスト環境

https://developer.apple.com/jp/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1より抜粋

”IPv6対応” でなく,「DNS64/NAT64環境でのIPv4インターネットへのアクセス」方法なので,注意.

Appleの文書より(2)試験環境続き

12

v6は珍しくありません

13

IPv6へのお誘い

• IPv6普及・高度化推進協議会

お宝満載!

14

IPv4枯渇タスクフォース・JPNICセミナーhttp://kokatsu.jp/

15

IPv4枯渇タスクフォース・JPNICセミナーhttps://www.nic.ad.jp/

16

本日の会場ネットワーク

• NAT64/DNS64環境もご用意• SSID:iosdc-cookpad-64/pass: yatteiku

•動かないアプリがあったら教えてください!• @conbu_net or @smadako等