SlideShare a Scribd company logo
1 of 29
Download to read offline
アプリケーションのIPv6対応の ススメ(LL編) 
2014年8月23日 
技術本部 技術開発部 
ネットワークエキスパート 
渡辺 露文 
Lightweight Language Diver 
〜LLのDeepなところにDiveする前に知ってほしいIPのこと〜
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
About me 
渡辺 露文 (わたなべ つゆふみ) 
富士ソフト株式会社 技術本部技術開発部 ネットワークエキスパート 
業務経歴 
1999年 富士ソフトABC株式会社(現 富士ソフト株式会社)入社 
入社後、ISP、データセンター顧客向けシステムなどB2Cのシステム 開発・インフラ構築・運用に従事 
2008年〜 社内システムのインフラ企画・構築・運用に従事 
2011年〜 技術調査および社内技術者教育に従事 
主な社外活動 
IPv6普及・高度化推進協議会 
技術評論社 Software Design にて連載(2012年12月号〜 2014年1月号;共同執筆) 
1 
< twatanab@fsi.co.jp >
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Do you know … 
- 2 - 
IPv6 ? 
Internet Protocol 
version 6 
インターネットの通信に関する規約(RFC791) 
IPネットワークに接続するには1つ以上のIPアドレスが必要 
皆さんが馴染んでいるのはIPv4(例:10.1.2.3)
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
実はIPv6を使える環境が増えています 
最近のOS 
Windows Vista以降 
Mac OS X 
Linux 
FreeBSD 
… 
インターネット回線 
フレッツ光ネクスト 
au ひかり 
NURO 光 
… 
- 3 - 
いずれもデフォルトで利用可能 
利用可能 
既存ユーザへの自動導入も進行中 
すでに、ユーザからあなたのサービスにIPv6で アクセスされようとしている…かもしれない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
余談:IPv6でインターネットにアクセスできるかの確認方法 
Webブラウザで http://www.test-ipv6.jp にアクセス 
Webブラウザで http://www.kame.net にアクセス 
- 4 - 
IPv6でアクセスすると、 亀が踊ります♪
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
日本におけるIPv6の普及状況 
フレッツ光ネクストのIPv6普及率(2014年3月) 
IPv6普及率:3.2% 
フレッツ光ネクスト契約数:11,301,000 
au ひかりのIPv6普及率(2014年3月):67% 
- 5 - 
今後本格的に普及する前に 
IPv6対応を始めたほうが良い 
出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査 http://v6pc.jp/jp/spread/ipv6spread_03.phtml
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6の背景:IPv4アドレス枯渇 
- 6 - 
IPv4アドレスの在庫状況(地域インターネットレジストリ) 
アフリカ(AFRINIC) 
在庫あり 
アジア/環太平洋(APNIC) 
枯渇 
北米(ARIN) 
枯渇間近 
中南米、カリブ海(LACNIC) 
枯渇 
ヨーロッパ、中東、中央アジア(RIPE NCC) 
枯渇 
世界的に足りなくなってきている 
いずれ、IPv6アドレスしか持たない ユーザ、システムが現れるようになる 
通信事業者、ISP、 データセンター、 クラウド事業者等の 在庫が残っているのみ
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
もう少しIPv6を知ろう! 
- 7 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6とでは何が違うのか? 
アドレス体系が異なる(IPv6のアドレス空間は広大) 
例 
IPv4)192.0.2.1 
IPv6完全表記)2001:0db8:0000:0000:0001:0000:0000:0001 
IPv6省略表記)2001:db8::1:0:0:1 (RFC5952準拠) 
他にも機能的にIPv4と異なることがある 
- 8 - 
IPv4とIPv6は互換性がない 
IPv4アドレス 
IPv6アドレス 
アドレス長 
32bit 
128bit 
文字列 表記 
表記法 
8bitずつ区切り、 10進数で表記 
16bitずつ区切り、 16進数で表記 
区切り文字 
. (ドット) 
: (コロン) 
文字列長 
15文字以内 
39文字以内 
RFC5952に 文書化されて いる IPv6アドレス 推奨テキスト 表記ルールに 従い省略可能
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6の接続性 
9 
Internet 
IPv4対応 (IPv6非対応) システム 
IPv4/IPv6 両対応システム 
IPv6対応 (IPv4非対応) システム 
(1) 
(2) 
(3) 
IPv4端末 
IPv4/IPv6 両対応端末 
IPv6端末 
IPv4 
IPv6
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6に対応しない場合の影響 
1.IPv6のみの環境と通信できない 
ビジネス機会を損失する 
システム連携が行えず要件を満たせなくなる 
2.今後、IPv4はサービスレベルが低下していく(予想) 
IPv4アドレス節約のため、通信事業者等によるCGN(Carrier Grade NAT)導入により、遅くなったり、利用できるセッション 数が少なくなったりする(と予想される) 
10 
IPv6に対応しなきゃ! 
自分たちは悪くないのに、自分たちの サービスが低下したと思われてしまう
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
インフラがIPv6に対応するだけでいいのでは? 
ネットワークとサーバががIPv6に対応すれば、IPv6で 接続可能 
接続は可能だが… 
例えば 
システム連携がうまくいかない 
想定外の挙動をする 
… 
- 11 - 
アプリケーションもIPv6に対応しなきゃ! 
サービスが正常に動作しない かもしれない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6対応の話をする前に… 
このコード、イケてない… 
12 
IPアドレスのハードコーディングはNG 
ダメ。ゼッタイ。 
IPアドレス直書きすると、 アドレス変更時に修正が 必要なんですよ… 再テストも必要だし… 
use IO::Socket::IP; 
$host = “198.51.100.1”; 
: 
my $sock = IO::Socket::IP->new( 
PeerAddr => $host, 
PeerPort => $port, 
Proto => 'tcp' 
) or die “Error: $!¥n”; 
: 
えっ、 IPアドレス直書き? 
$host = “www.example.com” 
のようにFQDNで接続先を指定する
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Internet 
補足:ネットワークアクセスの作法=名前解決を使う 
 Webアクセスの例 
13 
Client 
Web Server 
www.example.jp 
192.0.2.1 
DNS Server 
198.51.100.53 
①名前解決問合せ 
www.example.jp ? 
②アドレス応答 
www.example.jp ⇒ 192.0.2.1 
③HTTP通信 
FQDN 
FQDNで接続先を指定し、DNSからアドレス取得
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
なぜIPアドレス直書きがダメなのか? 
アプリケーションとインフラでは目的とライフサイクルが 異なる 
14 
アプリケーションは、IPアドレスに依存すべきではない 
目的 
変更・改修の理由 
アプリケーション 
機能の提供 
業務要件の変更 
サービス内容の変更 
ユーザビリティ向上 …,etc. 
インフラ 
資源の提供 
資源管理(IPアドレス、サーバラック…) 
性能 
互いに変更の影響を受けるべきではない 
同一システムでも変更・改修の理由・時期は異なる 
例)IPアドレスでユーザを識別すべきではない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
さあ、アプリケーションを IPv6に対応させよう! 
ここからが本題 
- 15 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションIPv6対応の基本方針 
IPv6とIPv4の共存期間が長く続く 
これまでIPv4で提供してきたサービスは、今後も継続してIPv4でも 動作する必要あり 
各開発言語が概ねIPv6に対応しており、プロトコルによって開発言 語を分ける必要がなくなった 
アプリケーションのメンテナンス性を重視し、プロトコルによって 機能差異が生じることを未然に防ぐ 
16 
IPv6対応 = 
IPv4とIPv6の両方で動作する 
シングルソースコードで対応
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションのIPv6対応のポイント 
17 
Ethernet 
IP(v4/v6) 
TCP / UDP 
アプリケーション 
OS 
ミドルウェア/ フレームワーク 
アプリケーション 
OS 
フレームワーク 
HTTP/HTTPS SMTP, SSH, ソケット通信など 
クライアント 
サーバ 
①IPv4/IPv6両対応の プログラミング言語と実行環境を使う 
②通信処理をIPv4/IPv6の 両方に対応させる 
③データとしてIPアドレスを 扱う箇所をIPv4/IPv6の 両方に対応させる
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ポイント① プログラミング言語と実行環境 
プログラミング言語と実行環境に求められること: IPv4/IPv6両方で通信できる 
1.名前解決でIPv4/IPv6両方のアドレスが扱える 
2.IPv4/IPv6両方で接続できる 
プログラミングにおける留意点 
IPv4/IPv6の双方に対応するライブラリ、オブジェクト、関数、 データ型を使う 
従来(IPv4のみ)のものとは別に用意されていることがある 
–C addrinfo構造体、getaddrinfo() 
–Perl IO::Socket::IP など 
アドレス検証、変換などはライブラリを有効活用 
18 
①IPv4/IPv6両対応のプログラミング言語と実行環境を使う
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ポイント① プログラミング言語と実行環境 Perlの対応状況 
考慮すべき要素 
対応状況 
備考 
名前解決 
○ 
Socket::getaddrinfo() 
Socket::getnameinfo() 
CPAN Net::DNS 
ソケット 
○ 
コアモジュールの Socketは 5.10 か ら部分的に対応 
5.14でフル対応 
CPANモジュールにも対応しているも のがある 
各種(L7) プロトコル 
HTTP クライアント 
▲ 
標準では非対応(コアモジュール HTTP::Tiny, LWP等のメジャーなモ ジュールも非対応) 
SMTP クライアント 
▲ 
標準では非対応(コアモジュール Net::SMTP) 
その他 
IPv6アドレス の処理 
○ 
CPANモジュール Net::IPにより対応 
- 19 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ポイント① プログラミング言語と実行環境 PHPの対応状況 
考慮すべき要素 
対応状況 
備考 
名前解決 
○ 
dns_get_record() 
gethostbyaddr() 
PEAR Net_DNS2 
ソケット 
○ 
inet_pton(), inet_ptop()は 5.1.0 以降 対応 
各種(L7) プロトコル 
HTTP クライアント 
○ 
各種ファイル関数 cURLなど 
SMTP クライアント 
○ 
PEAR Net_SMTP 
mail(), PEAR Mail ⇒システム環境依存 
その他 
IPv6アドレス の処理 
○ 
PEAR Net_IPv6拡張パッケージ 
- 20 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【補足】IPv6アドレスの名前解決 
 FQDNからIPv6アドレスが名前解決できることが不可欠 
1. 権威DNSサーバ上で、接続先サーバのAAAAレコードに 
IPv6アドレスが登録されている 
2. クライアントから接続先サーバのAAAAレコードが引ける 
Client 
Web Server 
www.example.jp 
2001:db8:100::1 
example.jpの 
権威DNS Server 
 AAAAレコード 
(IPv4のAレコードに 
相当)をリソースレ 
コードに登録 
www.example.jp IN AAAA 2001:db8:100::1 
①名前解決問合せ 
www.example.jp ? 
②AAAA応答 
2001:db8:100::1 
③HTTP通信 
- 21 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ポイント② 通信処理の対応 
 接続の優先順位(標準;RFC6724):IPv6 > IPv4 
 サーバプログラム 
 IPv4/IPv6 両プロトコルでの 
接続を処理 
 クライアントプログラム 
 IPv4/IPv6 両宛先アドレスに接続できるようにする 
 接続できない状況も想定し、接続失敗時には別の宛先アドレスに 
切替えて接続する(フォールバック) 
22 
②通信処理をIPv4/IPv6の両方に対応させる 
IPv6 IPv6 
IPv4 IPv4 
Client Server 
アプリケーションの作りが悪いと… 
 切替えに時間がかかる 
 正常に切替わらないこともある 
ユーザの利便性を 
損なう
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
通信処理の補足:フォールバック 
 接続できない場合に別の接続先への接続に切替える動作 
 IPv6⇒IPv4 / IPv6⇒IPv6 / IPv4⇒IPv4 / IPv4⇒IPv6 
23 
Client 
Web Server 
www.example.jp 
DNS Server 
www.example.jp IN AAAA 2001:db8:100::1 
www.example.jp IN A 192.0.2.1 
①名前解決問合せ 
www.example.jp ? 
②AAAA応答 2001:db8:100::1 
A応答 192.0.2.1 
③HTTP通信(IPv6) 
2001:db8:100::1 
192.0.2.1 
2001:db8:ffff::1 
198.51.100.1 
④HTTP通信(IPv4) 
フォールバック
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ポイント③ データとして扱う箇所の対応 
入力 
整数ではなく文字列で入力 
入力値の検証はライブラリの関数・フィルタを活用 
例)PHP Net_IPv6::checkIPv6(); (PEARにて提供されるNet_IPv6パッケージに含まれる) 
格納、検索、整列、出力 
IPアドレス型が定義されている場合は、IPアドレス型を使う 
例) PostgreSQLのネットワークアドレス型 
IPアドレス型が定義されていない場合は、文字列型で完全表記で 格納、検索、整列、出力 
IPv6完全表記)2001:0db8:0000:0000:0001:0000:0000:0001 
見やすさを求めるときは、省略表記(RFC5952準拠)で出力 
既存システムは、格納領域にIPv6アドレスが収まるかをチェック 
24 
③データとしてIPアドレスを扱う箇所を IPv4/IPv6の両方に対応させる
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
おわりに 
- 25 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
まとめ 
IPv6を使える環境が増えている 
IPv4とIPv6の違い:アドレス空間が異なる ⇒互換性なし 
IPアドレスのハードコーディングはダメ。ゼッタイ。 
IPv6対応の基本方針 
IPv6対応=IPv6/IPv4の両方で動作させること 
シングルソースコードで対応する 
IPv6対応のポイント 
1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 
2.通信処理をIPv4/IPv6の両方に対応させる 
3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる 
26 
決して難しくない! 
今日から開発するアプリケーションはIPv6に対応させよう!
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
つづきはWebで(参考文献) 
「アプリケーションのIPv6対応ガイドライン 基礎編」/IPv6 普及・高度化推進協議会 IPv4/IPv6共存WG アプリケーション のIPv6対応検討SWG 
http://www.v6pc.jp/jp/entry/wg/2012/12/ipv610.phtml 
「アプリケーションのIPv6対応ガイドライン Webアプリ編 (案)」/IPv6普及・高度化推進協議会 IPv4/IPv6共存WG アプリケーションのIPv6対応検討SWG 
http://www.v6pc.jp/jp/entry/wg/2014/06/ipv6web.phtml 
Internet Week 2013 「T2 アプリケーション・サービスの IPv6対応」 
軽量プログラミング言語のIPv6対応 Perl編 
https://www.nic.ad.jp/ja/materials/iw/2013/proceedings/t2/t2- watanabe-2.pdf 
軽量プログラミング言語のIPv6対応 PHP編 
https://www.nic.ad.jp/ja/materials/iw/2013/proceedings/t2/t2- hatano-2.pdf 
- 27 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ご清聴いただき、 ありがとうございました 
- 28 -

More Related Content

What's hot

IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜Akira Nakagawa
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築Tomocha Potter
 
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編株式会社 NTTテクノクロス
 
DS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うDS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うSatoshi Togawa
 
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア外道 父
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューYuya Rin
 
IETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjpIETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjpKaoru Maeda
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Takahiro Kujirai
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)Takahiro Kujirai
 
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー 20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー Takahiro Kujirai
 
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 Takahiro Kujirai
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方Tomohiro MITSUMUNE
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -Tomoya Kabe
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpKaoru Maeda
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Kiyotaka Doumae
 
20120120 hiroshima i_pv6_application
20120120 hiroshima i_pv6_application20120120 hiroshima i_pv6_application
20120120 hiroshima i_pv6_applicationRuri Hiromi
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町Takahiro Kujirai
 

What's hot (20)

IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
 
WebRTC研修
WebRTC研修WebRTC研修
WebRTC研修
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
 
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
 
DS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うDS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使う
 
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビュー
 
IETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjpIETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjp
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)
 
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー 20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
 
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
20120120 hiroshima i_pv6_application
20120120 hiroshima i_pv6_application20120120 hiroshima i_pv6_application
20120120 hiroshima i_pv6_application
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町
 

Similar to Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)

IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfIPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfRuri Hiromi
 
IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014v6app
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だった
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だったNAT配下からIPv6でアクセスするEzoScapeはTeredo通信だった
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だったShinichi Hirauchi
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...Insight Technology, Inc.
 
PHPで使うIPv6の実際
PHPで使うIPv6の実際PHPで使うIPv6の実際
PHPで使うIPv6の実際Tetsuji Koyama
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際Tetsuji Koyama
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Tomoya Hibi
 
OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方v6app
 
IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)nemumu
 
CONBU LL Diver/YAPC::Asia 2014 Network
CONBU LL Diver/YAPC::Asia 2014 NetworkCONBU LL Diver/YAPC::Asia 2014 Network
CONBU LL Diver/YAPC::Asia 2014 NetworkYuya Takahashi
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばYoshihiro Nakajima
 
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LTTatsuya Ueda
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Akira Nakagawa
 
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューションJuniper Networks (日本)
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 

Similar to Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編) (20)

IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfIPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tf
 
IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
IPv6 Update
IPv6 UpdateIPv6 Update
IPv6 Update
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だった
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だったNAT配下からIPv6でアクセスするEzoScapeはTeredo通信だった
NAT配下からIPv6でアクセスするEzoScapeはTeredo通信だった
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
 
PHPで使うIPv6の実際
PHPで使うIPv6の実際PHPで使うIPv6の実際
PHPで使うIPv6の実際
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
 
OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方
 
IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)
 
CONBU LL Diver/YAPC::Asia 2014 Network
CONBU LL Diver/YAPC::Asia 2014 NetworkCONBU LL Diver/YAPC::Asia 2014 Network
CONBU LL Diver/YAPC::Asia 2014 Network
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
 
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)

  • 1. アプリケーションのIPv6対応の ススメ(LL編) 2014年8月23日 技術本部 技術開発部 ネットワークエキスパート 渡辺 露文 Lightweight Language Diver 〜LLのDeepなところにDiveする前に知ってほしいIPのこと〜
  • 2. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. About me 渡辺 露文 (わたなべ つゆふみ) 富士ソフト株式会社 技術本部技術開発部 ネットワークエキスパート 業務経歴 1999年 富士ソフトABC株式会社(現 富士ソフト株式会社)入社 入社後、ISP、データセンター顧客向けシステムなどB2Cのシステム 開発・インフラ構築・運用に従事 2008年〜 社内システムのインフラ企画・構築・運用に従事 2011年〜 技術調査および社内技術者教育に従事 主な社外活動 IPv6普及・高度化推進協議会 技術評論社 Software Design にて連載(2012年12月号〜 2014年1月号;共同執筆) 1 < twatanab@fsi.co.jp >
  • 3. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Do you know … - 2 - IPv6 ? Internet Protocol version 6 インターネットの通信に関する規約(RFC791) IPネットワークに接続するには1つ以上のIPアドレスが必要 皆さんが馴染んでいるのはIPv4(例:10.1.2.3)
  • 4. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 実はIPv6を使える環境が増えています 最近のOS Windows Vista以降 Mac OS X Linux FreeBSD … インターネット回線 フレッツ光ネクスト au ひかり NURO 光 … - 3 - いずれもデフォルトで利用可能 利用可能 既存ユーザへの自動導入も進行中 すでに、ユーザからあなたのサービスにIPv6で アクセスされようとしている…かもしれない
  • 5. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 余談:IPv6でインターネットにアクセスできるかの確認方法 Webブラウザで http://www.test-ipv6.jp にアクセス Webブラウザで http://www.kame.net にアクセス - 4 - IPv6でアクセスすると、 亀が踊ります♪
  • 6. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 日本におけるIPv6の普及状況 フレッツ光ネクストのIPv6普及率(2014年3月) IPv6普及率:3.2% フレッツ光ネクスト契約数:11,301,000 au ひかりのIPv6普及率(2014年3月):67% - 5 - 今後本格的に普及する前に IPv6対応を始めたほうが良い 出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査 http://v6pc.jp/jp/spread/ipv6spread_03.phtml
  • 7. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6の背景:IPv4アドレス枯渇 - 6 - IPv4アドレスの在庫状況(地域インターネットレジストリ) アフリカ(AFRINIC) 在庫あり アジア/環太平洋(APNIC) 枯渇 北米(ARIN) 枯渇間近 中南米、カリブ海(LACNIC) 枯渇 ヨーロッパ、中東、中央アジア(RIPE NCC) 枯渇 世界的に足りなくなってきている いずれ、IPv6アドレスしか持たない ユーザ、システムが現れるようになる 通信事業者、ISP、 データセンター、 クラウド事業者等の 在庫が残っているのみ
  • 8. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. もう少しIPv6を知ろう! - 7 -
  • 9. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6とでは何が違うのか? アドレス体系が異なる(IPv6のアドレス空間は広大) 例 IPv4)192.0.2.1 IPv6完全表記)2001:0db8:0000:0000:0001:0000:0000:0001 IPv6省略表記)2001:db8::1:0:0:1 (RFC5952準拠) 他にも機能的にIPv4と異なることがある - 8 - IPv4とIPv6は互換性がない IPv4アドレス IPv6アドレス アドレス長 32bit 128bit 文字列 表記 表記法 8bitずつ区切り、 10進数で表記 16bitずつ区切り、 16進数で表記 区切り文字 . (ドット) : (コロン) 文字列長 15文字以内 39文字以内 RFC5952に 文書化されて いる IPv6アドレス 推奨テキスト 表記ルールに 従い省略可能
  • 10. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6の接続性 9 Internet IPv4対応 (IPv6非対応) システム IPv4/IPv6 両対応システム IPv6対応 (IPv4非対応) システム (1) (2) (3) IPv4端末 IPv4/IPv6 両対応端末 IPv6端末 IPv4 IPv6
  • 11. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6に対応しない場合の影響 1.IPv6のみの環境と通信できない ビジネス機会を損失する システム連携が行えず要件を満たせなくなる 2.今後、IPv4はサービスレベルが低下していく(予想) IPv4アドレス節約のため、通信事業者等によるCGN(Carrier Grade NAT)導入により、遅くなったり、利用できるセッション 数が少なくなったりする(と予想される) 10 IPv6に対応しなきゃ! 自分たちは悪くないのに、自分たちの サービスが低下したと思われてしまう
  • 12. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. インフラがIPv6に対応するだけでいいのでは? ネットワークとサーバががIPv6に対応すれば、IPv6で 接続可能 接続は可能だが… 例えば システム連携がうまくいかない 想定外の挙動をする … - 11 - アプリケーションもIPv6に対応しなきゃ! サービスが正常に動作しない かもしれない
  • 13. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6対応の話をする前に… このコード、イケてない… 12 IPアドレスのハードコーディングはNG ダメ。ゼッタイ。 IPアドレス直書きすると、 アドレス変更時に修正が 必要なんですよ… 再テストも必要だし… use IO::Socket::IP; $host = “198.51.100.1”; : my $sock = IO::Socket::IP->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp' ) or die “Error: $!¥n”; : えっ、 IPアドレス直書き? $host = “www.example.com” のようにFQDNで接続先を指定する
  • 14. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Internet 補足:ネットワークアクセスの作法=名前解決を使う  Webアクセスの例 13 Client Web Server www.example.jp 192.0.2.1 DNS Server 198.51.100.53 ①名前解決問合せ www.example.jp ? ②アドレス応答 www.example.jp ⇒ 192.0.2.1 ③HTTP通信 FQDN FQDNで接続先を指定し、DNSからアドレス取得
  • 15. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. なぜIPアドレス直書きがダメなのか? アプリケーションとインフラでは目的とライフサイクルが 異なる 14 アプリケーションは、IPアドレスに依存すべきではない 目的 変更・改修の理由 アプリケーション 機能の提供 業務要件の変更 サービス内容の変更 ユーザビリティ向上 …,etc. インフラ 資源の提供 資源管理(IPアドレス、サーバラック…) 性能 互いに変更の影響を受けるべきではない 同一システムでも変更・改修の理由・時期は異なる 例)IPアドレスでユーザを識別すべきではない
  • 16. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. さあ、アプリケーションを IPv6に対応させよう! ここからが本題 - 15 -
  • 17. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応の基本方針 IPv6とIPv4の共存期間が長く続く これまでIPv4で提供してきたサービスは、今後も継続してIPv4でも 動作する必要あり 各開発言語が概ねIPv6に対応しており、プロトコルによって開発言 語を分ける必要がなくなった アプリケーションのメンテナンス性を重視し、プロトコルによって 機能差異が生じることを未然に防ぐ 16 IPv6対応 = IPv4とIPv6の両方で動作する シングルソースコードで対応
  • 18. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションのIPv6対応のポイント 17 Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ ①IPv4/IPv6両対応の プログラミング言語と実行環境を使う ②通信処理をIPv4/IPv6の 両方に対応させる ③データとしてIPアドレスを 扱う箇所をIPv4/IPv6の 両方に対応させる
  • 19. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ポイント① プログラミング言語と実行環境 プログラミング言語と実行環境に求められること: IPv4/IPv6両方で通信できる 1.名前解決でIPv4/IPv6両方のアドレスが扱える 2.IPv4/IPv6両方で接続できる プログラミングにおける留意点 IPv4/IPv6の双方に対応するライブラリ、オブジェクト、関数、 データ型を使う 従来(IPv4のみ)のものとは別に用意されていることがある –C addrinfo構造体、getaddrinfo() –Perl IO::Socket::IP など アドレス検証、変換などはライブラリを有効活用 18 ①IPv4/IPv6両対応のプログラミング言語と実行環境を使う
  • 20. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ポイント① プログラミング言語と実行環境 Perlの対応状況 考慮すべき要素 対応状況 備考 名前解決 ○ Socket::getaddrinfo() Socket::getnameinfo() CPAN Net::DNS ソケット ○ コアモジュールの Socketは 5.10 か ら部分的に対応 5.14でフル対応 CPANモジュールにも対応しているも のがある 各種(L7) プロトコル HTTP クライアント ▲ 標準では非対応(コアモジュール HTTP::Tiny, LWP等のメジャーなモ ジュールも非対応) SMTP クライアント ▲ 標準では非対応(コアモジュール Net::SMTP) その他 IPv6アドレス の処理 ○ CPANモジュール Net::IPにより対応 - 19 -
  • 21. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ポイント① プログラミング言語と実行環境 PHPの対応状況 考慮すべき要素 対応状況 備考 名前解決 ○ dns_get_record() gethostbyaddr() PEAR Net_DNS2 ソケット ○ inet_pton(), inet_ptop()は 5.1.0 以降 対応 各種(L7) プロトコル HTTP クライアント ○ 各種ファイル関数 cURLなど SMTP クライアント ○ PEAR Net_SMTP mail(), PEAR Mail ⇒システム環境依存 その他 IPv6アドレス の処理 ○ PEAR Net_IPv6拡張パッケージ - 20 -
  • 22. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【補足】IPv6アドレスの名前解決  FQDNからIPv6アドレスが名前解決できることが不可欠 1. 権威DNSサーバ上で、接続先サーバのAAAAレコードに IPv6アドレスが登録されている 2. クライアントから接続先サーバのAAAAレコードが引ける Client Web Server www.example.jp 2001:db8:100::1 example.jpの 権威DNS Server  AAAAレコード (IPv4のAレコードに 相当)をリソースレ コードに登録 www.example.jp IN AAAA 2001:db8:100::1 ①名前解決問合せ www.example.jp ? ②AAAA応答 2001:db8:100::1 ③HTTP通信 - 21 -
  • 23. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ポイント② 通信処理の対応  接続の優先順位(標準;RFC6724):IPv6 > IPv4  サーバプログラム  IPv4/IPv6 両プロトコルでの 接続を処理  クライアントプログラム  IPv4/IPv6 両宛先アドレスに接続できるようにする  接続できない状況も想定し、接続失敗時には別の宛先アドレスに 切替えて接続する(フォールバック) 22 ②通信処理をIPv4/IPv6の両方に対応させる IPv6 IPv6 IPv4 IPv4 Client Server アプリケーションの作りが悪いと…  切替えに時間がかかる  正常に切替わらないこともある ユーザの利便性を 損なう
  • 24. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 通信処理の補足:フォールバック  接続できない場合に別の接続先への接続に切替える動作  IPv6⇒IPv4 / IPv6⇒IPv6 / IPv4⇒IPv4 / IPv4⇒IPv6 23 Client Web Server www.example.jp DNS Server www.example.jp IN AAAA 2001:db8:100::1 www.example.jp IN A 192.0.2.1 ①名前解決問合せ www.example.jp ? ②AAAA応答 2001:db8:100::1 A応答 192.0.2.1 ③HTTP通信(IPv6) 2001:db8:100::1 192.0.2.1 2001:db8:ffff::1 198.51.100.1 ④HTTP通信(IPv4) フォールバック
  • 25. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ポイント③ データとして扱う箇所の対応 入力 整数ではなく文字列で入力 入力値の検証はライブラリの関数・フィルタを活用 例)PHP Net_IPv6::checkIPv6(); (PEARにて提供されるNet_IPv6パッケージに含まれる) 格納、検索、整列、出力 IPアドレス型が定義されている場合は、IPアドレス型を使う 例) PostgreSQLのネットワークアドレス型 IPアドレス型が定義されていない場合は、文字列型で完全表記で 格納、検索、整列、出力 IPv6完全表記)2001:0db8:0000:0000:0001:0000:0000:0001 見やすさを求めるときは、省略表記(RFC5952準拠)で出力 既存システムは、格納領域にIPv6アドレスが収まるかをチェック 24 ③データとしてIPアドレスを扱う箇所を IPv4/IPv6の両方に対応させる
  • 26. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. おわりに - 25 -
  • 27. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. まとめ IPv6を使える環境が増えている IPv4とIPv6の違い:アドレス空間が異なる ⇒互換性なし IPアドレスのハードコーディングはダメ。ゼッタイ。 IPv6対応の基本方針 IPv6対応=IPv6/IPv4の両方で動作させること シングルソースコードで対応する IPv6対応のポイント 1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 2.通信処理をIPv4/IPv6の両方に対応させる 3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる 26 決して難しくない! 今日から開発するアプリケーションはIPv6に対応させよう!
  • 28. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. つづきはWebで(参考文献) 「アプリケーションのIPv6対応ガイドライン 基礎編」/IPv6 普及・高度化推進協議会 IPv4/IPv6共存WG アプリケーション のIPv6対応検討SWG http://www.v6pc.jp/jp/entry/wg/2012/12/ipv610.phtml 「アプリケーションのIPv6対応ガイドライン Webアプリ編 (案)」/IPv6普及・高度化推進協議会 IPv4/IPv6共存WG アプリケーションのIPv6対応検討SWG http://www.v6pc.jp/jp/entry/wg/2014/06/ipv6web.phtml Internet Week 2013 「T2 アプリケーション・サービスの IPv6対応」 軽量プログラミング言語のIPv6対応 Perl編 https://www.nic.ad.jp/ja/materials/iw/2013/proceedings/t2/t2- watanabe-2.pdf 軽量プログラミング言語のIPv6対応 PHP編 https://www.nic.ad.jp/ja/materials/iw/2013/proceedings/t2/t2- hatano-2.pdf - 27 -
  • 29. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ご清聴いただき、 ありがとうございました - 28 -