SlideShare a Scribd company logo
1 of 97
Download to read offline
IPv6対応Webサービスの作り方 
2014年10月23日 
技術本部 技術開発部 
渡辺 露文 
IPv6 Summit in FUKUOKA 2014
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
About me 
渡辺 露文 (わたなべ つゆふみ) 
富士ソフト株式会社 技術本部技術開発部 ネットワークエキスパート 
業務経歴 
1999年 富士ソフトABC株式会社(現 富士ソフト株式会社)入社 
入社後、ISP、データセンター顧客向けシステムなどのシステム開発・イン フラ構築・運用、社内システムのインフラ企画・構築・運用に従事 
2011年~ 技術調査および社内技術者教育に従事 
主な社外活動 
IPv6普及・高度化推進協議会 
–アプリケーションのIPv6対応検討SWG 
–IPv6導入に起因する問題検討SWG 
技術評論社 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 
… 
- 3 - 
いずれも デフォルトで利用可能
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
実はIPv6を使える環境が増えています② 
インターネット回線 
フレッツ光ネクスト 
au ひかり 
NURO 光 
… 
- 4 - 
利用可能 
既存ユーザへの 自動導入も進行中 
すでに、ユーザからあなたのサービスにIPv6で アクセスされようとしている…かもしれない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
日本におけるIPv6の普及状況 
フレッツ光ネクストのIPv6普及率(2014年6月) 
IPv6普及率:3.1% 
フレッツ光ネクスト契約数:13,588,000 
au ひかりのIPv6普及率(2014年6月):68% 
- 5 - 
今後本格的に普及する前に 
IPv6対応を始めたほうが良い 
出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査 
http://v6pc.jp/jp/spread/ipv6spread_03.phtml
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
余談:IPv6でインターネットにアクセスできるかの確認方法 
Webブラウザで http://www.test-ipv6.jp にアクセス 
Webブラウザで http://www.kame.net にアクセス 
- 6 - 
IPv6でアクセスすると、 亀が踊ります♪
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6の背景:IPv4アドレス枯渇 
IPv4アドレスの在庫状況 (地域インターネットレジストリ) 
7 
通信事業者、ISP、 データセンター、 クラウド事業者等の 在庫が残るのみ 
世界的に足りなくなってきている
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Agenda 
1.IPv6対応の話をする前に 
2.IPv6対応Webサービスの作り方 
3.LL(軽量プログラミング言語)の対応状況 
4.VPS/IaaSのIPv6対応状況 
- 8 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
1. IPv6対応の話をする前に 
1.Webサービスを作る上で知っておくべきIPv6の基礎 
2.気を付けるべきこと 
- 9 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
1.1. Webサービスを作る上で 知っておくべきIPv6の基礎 
- 10 -
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準拠) 
- 11 - 
IPv4アドレス 
IPv6アドレス 
アドレス長 
32bit 
128bit 
文字列 表記 
表記法 
8bitずつ区切り、 10進数で表記 
16bitずつ区切り、 16進数で表記 
区切り文字 
. (ドット) 
: (コロン) 
文字列長 
15文字以内 
39文字以内
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6とでは何が違うのか?② 
ユニキャストアドレスの構成 
アドレス利用設計 
IPv4では、ネットワークアドレス部の長さを調整 
IPv6では、原則的にサブネットプレフィックスは固定 
12 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
サブネット プレフィックス 64bit 
インターフェイス ID 64bit 
ネットワーク アドレス 29bit 
ホストアドレス 3bit 
Global Routing Prefix 
n bits 
Subnet ID 
64 bits 
Interface ID 
64-n bits 
Subnet Prefix 
※ ネットマスク 29bit (255.255.255.248)の場合 
8 
8 
8bit 
IPv4では収容する端末の見込み台数に応じて最適な大きさの 
サブネットを設計していたが、IPv6では64bit固定
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
グローバルスコープ 
IPv4とIPv6とでは何が違うのか?③ 
13 
リンクローカルスコープ 
リンクローカルアドレス fe80::/10 
ユニークローカルアドレス fc00::/7 
グローバルユニキャストアドレス 2000::/3 
IPv6では1つのNICに複数のアドレスを 
有効範囲に応じて割当て、使い分ける
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6とでは何が違うのか?④ 
他にも機能的にIPv4と異なることがある 
最も重要なこと: 
- 14 - 
IPv4とIPv6は互換性がない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6の接続性 
15 
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はサービスレベルが低下していく 
通信事業者等によるCGN(Carrier Grade NAT)導入に より、遅くなったり、利用できるセッション数が少なく なったりする可能性がある 
16 
IPv6に対応しなきゃ!
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
WebサービスのIPv6対応 
ネットワークとサーバがIPv6に対応すれば、 IPv6で接続可能 
接続は可能だが… 
例えば 
システム連携がうまくいかない 
想定外の挙動をする 
… 
- 17 - 
アプリケーションのIPv6対応が不可欠! 
サービスが正常に動作しない かもしれない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
1.2. IPv6対応の前に気を付ける べきこと 
- 18 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
とあるソースコード 
このコード、イケてない… 
19 
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”; :
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
とあるソースコード 
このコード、イケてない… 
20 
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アドレス直書き?
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
他にもイケてないコードがある 
とある Androidプログラミング書籍に おけるソケット通信のサンプルコード 
- 21 - 
public class SocketEx… … … private final static String IP=“192.168.11.12”;//★変更必須 
良い子はマネしちゃダメ
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6対応の話をする前に… 
22 
IPアドレスのハードコーディングはNG 
ダメ。ゼッタイ。 
$host = “www.example.com” 
のようにFQDNで接続先を指定する
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Internet 
ネットワークアクセスの作法=名前解決を使う 
 Webアクセスの例 
23 
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アドレス直書きがダメなのか? 
24 
アプリケーションは、IPアドレスに依存すべきではない 
目的 
変更・改修の理由 
アプリケーション 
機能の 提供 
業務要件の変更 
サービス内容の変更 
ユーザビリティ向上 …,etc. 
インフラ 
資源の 提供 
資源管理(IPアドレス、サーバリソース …) 
性能 
互いに変更の影響を受けるべきではない 
同一システムでも変更・改修の理由・時期は異なる 
例)IPアドレスでユーザを識別すべきではない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Cookie内の情報にも気を付ける 
25 
Cookie内に記載される情報の生成がIPv4アドレスを前提としている 実装が散見される。このようなアプリケーションに関しては、生成ロ ジックを変更する必要がある。 
Cookie内の情報としてIPv4アドレスを直接利用している実装がしば しば見られる。特に認証系システムなどでこの種の情報の取扱いがな されている場合が多い。このような実装では、利用者がIPv4/IPv6の 両方の空間を利用しており、どちらを利用するかが一位に定まらない 場合などに問題が発生する。このような実装の場合、単純に IPv4/IPv6両方に対応させることが困難である。 
出典:IPv6普及・高度化推進協議会 セキュリティWG IPv6対応セキュリティガイドライン(第1.0版) http://www.v6pc.jp/jp/upload/pdf/swg-IPv6SecurityGuideline_v1.0.pdf
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
1章まとめ 
Webサービスに重要なIPv4とIPv6の違い 
アドレス体系が異なる 
アドレス利用設計が変わる 
複数のアドレスを有効範囲に応じて使い分ける 
IPv4とIPv6は互換性がない 
WebサービスのIPv6対応にはアプリケーションの 対応が不可欠 
IPアドレスのハードコーディングは ダメ。ゼッタイ。 
- 26 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
2. IPv6対応Webサービスの 作り方 
2.1. プログラミング言語と実行環境 
2.2. 通信処理のIPv6対応 
2.3. データとしてIPアドレスを扱う箇所の対応 
2.4. DMZのIPv6対応方式とサーバへのアクセス 
- 27 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Webサービス 
28 
Ethernet 
IP(v4/v6) 
TCP / UDP 
アプリケーション 
OS 
ミドルウェア/ フレームワーク 
アプリケーション 
OS 
フレームワーク 
HTTP/HTTPS SMTP, SSH, ソケット通信など 
クライアント 
サーバ 
アプリケーションを中心に解説します
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションIPv6対応の基本方針① 
29 
IPv6対応 = 
IPv4とIPv6の両方で動作する 
シングルソースコードで対応
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションIPv6対応の基本方針② 
IPv6とIPv4の共存期間が長く続く 
これまでIPv4で提供してきたサービスは、今後も 継続してIPv4でも動作する必要がある 
30 
IPv6対応 = IPv4とIPv6の両方で動作する
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションIPv6対応の基本方針③ 
各開発言語が概ねIPv6に対応しており、プロトコルに よって開発言語を分ける必要がなくなった 
アプリケーションのメンテナンス性を重視し、 プロトコルによって機能差異が生じることを未然に防ぐ 
31 
シングルソースコードで対応
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
アプリケーションのIPv6対応のポイント 
32 
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. 
2.1. プログラミング言語と 実行環境 
- 33 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ここでいうIPv4/IPv6両対応とは? 
プログラミング言語と実行環境におけるIPv4/IPv6 両対応とは? 
34 
名前解決機構が IPv4/IPv6両方のアドレスを適切に扱える 
IPv4/IPv6両方で通信できる 
これらを満たすプログラミング言語、実装環境を利用する
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
実装上の留意点 
プログラミング言語、実行環境の選定における留意点 
実際には各プロダクトでサポート状況に差異があるため、 開発するアプリケーションが提供する機能を考慮し、個別に 判断する必要がある 
プログラミングにおける留意点 
IPv4/IPv6の双方に対応するライブラリ、オブジェクト、 関数、データ型を使う 
従来(IPv4のみ)のものとは別に用意されていることがある 
–C addrinfo構造体、getaddrinfo() 
–Java InetAddressクラス 
–Perl IO::Socket::IP など 
アドレス検証、変換などはライブラリを有効活用 
35
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
2.2. 通信処理のIPv6対応 
- 36 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4とIPv6の両方で通信できることとは? 
 クライアント 
IPv4およびIPv6で 
意図するサーバへ 
接続できること 
 サーバ 
IPv4およびIPv6で 
接続を受付けること 
- 37 - 
IPv6 IPv6 
IPv4 IPv4
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPアドレスを複数持つことがある 
- 38 - 
IPv6 IPv6 
IPv4 IPv4 
複数のアドレスを 
持つことがある 
複数のアドレスを 
持つことがある 
クライアントがどのアドレスにアクセスするかは 
サーバ側では予測できない 
特定のアドレスに依存したシステムを構成すべきではない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6の名前解決① 
FQDNで接続先を指定してIPv6で通信を行うには、 DNSにてFQDNからIPv6アドレスが名前解決できる ことが必要不可欠 
FQDNからIPv6アドレスを名前解決 
権威DNSサーバ上で接続先サーバのAAAAレコードにIPv6 アドレスが登録されている 
クライアントから接続先サーバのAAAAレコードが引ける 
Webアプリケーション開発においては、FQDNのIPv6 アドレスが正しく名前解決できることを確認する 
- 39 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6の名前解決② 
- 40 - 
Client 
Web Server 
www.example.jp 
2001:db8:100::1 
example.jpの 
権威DNS Server 
 AAAAレコード 
(IPv4のAレコードに 
相当)をリソースレ 
コードに登録 
①名前解決問合せ 
www.example.jp ? 
②AAAA応答 
2001:db8:100::1 
③HTTP通信 
www.example.jp IN AAAA 2001:db8:100::1 
www.example.jp IN A 192.0.2.1
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
通信の試行順序 
RFC6724 Default Address Selection for IPv6 
優先順位が変わるケース 
デフォルトを変更している環境 
RFC6724に準拠していない実装 
- 41 - 
IPv6 > IPv4
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
クライアントプログラム 
IPv4/IPv6 両宛先アドレスに接続できるように する 
接続できない状況も想定し接続失敗時には別の宛先 アドレスに切替えて接続する(フォールバック) 
- 42 - 
アプリケーションの作りが悪いと… 
切替えに時間がかかる 
正常に切替わらないこともある 
ユーザの利便性を 損なう
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
通信処理の補足:フォールバック 
 接続できない場合に別の接続先への接続に切替える 
動作 
43 
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. 
想定されるフォールバックの主な原因 
44 
サーバ側の 問題 
サーバが当該のサービスを提供して いない DNS誤登録、障害等 
経路の問題 
ネットワークの接続性が失われている ISPの不具合 
クライアント 側の問題 
サーバへの到達性がないアドレスを 選択して通信を行おうとしている グローバルアドレスを使用している 閉域網
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
フォールバックの予防策 
45 
サーバ 
設定の不備を修正する サービスを提供していないIPアドレス をDNSに登録しない サービスを適切に提供する 
ISP 
ネットワークの接続性を健全に保つ 
クライアント 
IPv6インターネット接続可能なISPと 契約する
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
サーバプログラム 
IPv4/IPv6 両プロトコルでの接続を処理 
主要なWebサーバプログラムは対応済み 
Apache HTTP Server 
Microsoft Internet Information Server (IIS) 
nginx 
- 46 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
2.3. データとしてIPアドレスを 扱う箇所の対応 
- 47 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
データとしてIPアドレスを扱う箇所 
48 
入力 
出力 
整列 
検索 
格納
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv4/IPv6アドレス比較 
49 
IPv4アドレス 
IPv6アドレス 
アドレス長 
32bit 
128bit 
文字列 表記 
表記法 
8bitずつ区切り、 10進数で表記 
16bitずつ区切り、 16進数で表記 
(省略表記あり) 
区切り文字 
. (ドット) 
: (コロン) 
文字列長 
15文字以内 
39文字以内 
サブネットマスク/プレフィックス長を 考慮すると、上記+”/”+数字3文字
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6アドレス表記法 
特段の事情がない限り RFC5952 の表記ルールに 従い表記する(省略表記) 
アドレス表記例 
IPv4)192.0.2.1 
IPv6完全表記) 2001:0db8:0000:0000:0001:0000:0000:0001 
IPv6省略表記)2001:db8::1:0:0:1 
50
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6アドレスの文字列長 
IPv6アドレスの文字列長:39文字 
プレフィックスを加味すると:43文字 
例外(39文字を超えることがある) 
リンクローカルアドレスにゾーンID(スコープID)を 付与してインターフェースを識別する場合 
例)fe80::1%eth1 
一部の特殊アドレス 
IPv4射影アドレス等 
–例)::ffff:192.168.0.1 
- 51 - 
IPv4射影アドレス 
IPv4 アドレスを IPv6 アドレスとして表現する ための IPv6 アドレス。上位80ビットに0、81~96ビット目に1、下位32ビットにIPv4アドレ スを埋め込む。機器内部での使用に限られ、パ ケットの始点/終点アドレスには使われない。 
出典: IPv6関連用語集 IPv4-mapped(IPv6) address
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
IPv6アドレスを扱えないIPアドレス入力・格納 
15文字までの文字列(varchar(15)) 
1つの整数として扱う 
1オクテットずつ4つの整数として扱う 
- 52 - 
そのままではIPv6アドレスを格納できず、エラーとなる 
IPv4/IPv6両対応 
39文字以内の文字列 [VARCHAR(39)] 
Good! 
Bad!
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Webフォームからの入力 
入力値の検証 
IPアドレスを扱う場合、入力された文字列がIPアドレス として取りうる値であることを検証 
IPv4アドレス、IPv6アドレス いずれかとして取りうる値 
2箇所で実施可能 
ブラウザ側(HTML5のForm Validation等) 
サーバ側 
アドレス処理ライブラリを利用すると便利 
例)PHP Net_IPv6::checkIPv6(); (PEARにて提供されるNet_IPv6パッケージに含まれる) 
- 53 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
格納、検索、整列、出力 
IPアドレス型が定義されている場合は、IPアドレス型 を使う 
例) PostgreSQLのネットワークアドレス型 
IPアドレス型が定義されていない場合は、文字列型で 完全表記を使う 
IPv6完全表記) 2001:0db8:0000:0000:0001:0000:0000:0001 
見やすさを求めるときは、省略表記(RFC5952準拠)で出力 
過去に開発されたシステム・ツールでは、RFC5952に準拠しない省 略表記が存在しうるので要注意 
既存システムは、格納領域にIPv6アドレスが収まるか をチェック 
- 54 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
PostgreSQLのネットワークアドレス型 
- 55 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
文字列型で扱う場合、なぜ完全表記か?① 
省略表記のまま整列しても… 
56 
2001:db8:0:1::1:1 
2001:db8:0:2::1 
2001:db8:0:1::50 
2001:db8:0:10::1 
整列前 
2001:db8:0:10::1 2001:db8:0:1::1:1 2001:db8:0:1::50 2001:db8:0:2::1 
整列後 
アドレス昇順 
2001:db8:0:1::50 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:10::1 
省略表記の 整列は アドレス昇順と 一致しない 
アドレス 昇順
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
文字列型で扱う場合、なぜ完全表記か?② 
整列は完全表記で行う 
57 
2001:db8:0:1::1:1 
2001:db8:0:2::1 
2001:db8:0:1::50 
2001:db8:0:10::1 
整列前 
整列後 
アドレス昇順 
2001:db8:0:1::50 
2001:db8:0:1::1:1 
2001:db8:0:2::1 
2001:db8:0:10::1 
アドレス 昇順 
2001:0db8:0000:0001:0000:0000:0001:0001 2001:0db8:0000:0002:0000:0000:0000:0001 2001:0db8:0000:0001:0000:0000:0000:0050 2001:0db8:0000:0010:0000:0000:0000:0001 
2001:0db8:0000:0001:0000:0000:0000:0050 2001:0db8:0000:0001:0000:0000:0001:0001 2001:0db8:0000:0002:0000:0000:0000:0001 2001:0db8:0000:0010:0000:0000:0000:0001 
(文字列) 整列 
完全表記 
完全表記の整列は アドレス昇順と 一致
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
サンプルコード(IPアドレス整列の例) 
<?php 
$tmp_arr = array("2001:db8:0:1::1:1", "2001:db8:0:2::1", "2001:db8:0:1::50", "2001:db8:0:10::1"); 
require_once "Net/IPv6.php"; // Net_IPv6パッケージを呼び出し 
foreach ($tmp_arr as $short_addr){ 
if (Net_IPv6::checkIPv6($short_addr)){ //IPv6アドレスであることをチェック 
$full_arr[] = Net_IPv6::uncompress($short_addr, true); //省略表記を解除 
} 
} 
echo "before: "; 
print_r($tmp_arr); //整列前配列の出力 
sort($full_arr); //配列を整列 
foreach ($full_arr as $full_addr){ 
if (Net_IPv6::checkIPv6($full_addr)){ //IPv6アドレスであることをチェック 
$sorted_arr[] = Net_IPv6::compress($full_addr); //省略表記化 
} 
} 
echo "<BR>after: "; 
print_r($sorted_arr); //整列後配列の出力 
?> 
- 58 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
文字列型として扱うときの注意点 
省略表記 ⇔ 完全表記 の変換はライブラリを有効 活用する 
過去に開発されたシステム・ツールでは、 RFC5952に準拠しない省略表記が存在しうるので 要注意 
59
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ログ出力・解析への影響 
例)Apache HTTP Server ログファイル 
OSSログ解析プログラムは大抵問題なく処理できる 
AWStats, Webalizer… 
注:アクセス元の国/地域は解析できない場合がある 
ログ解析を自作している人は要注意! 
アドレス部分の文字列長が長くなる 
アドレスの区切り文字が変わる 
60 
fdb6:5591:2612:10::100 - - [08/Oct/2014:17:52:30 +0900] "GET / HTTP/1.1" 200 144 172.16.10.128 - - [08/Oct/2014:18:01:59 +0900] "GET / HTTP/1.1" 200 100 
1 
2
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
2.4. DMZのIPv6対応方式と サーバへのアクセス 
- 61 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
DMZのIPv6対応方式① 
62 
パラレルスタック 
デュアルスタック 
トランスレーション 
構成 イメージ 
概要 
IPv4とIPv6のネット ワークを分離して構 築・運用 
IPv4/IPv6を同列に、 同一のネットワーク で扱う 
IPv4ネットワークを変 更せず、トランスレー タを導入する 
IPv4 
IPv6 
GW 
IPv4 
IPv6 
GW 
NW機器 
NW機器 
NW機器 
IPv4 
IPv6 
GW 
NW機器 
GW 
トランスレータ 
v4 
v4 
v4 
v4 
v4 
v4 
v4 
v6 
v6 
v6 
v4 
v6 
v6 
v6 
v4/v6 
v4/v6 
GW
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
DMZのIPv6対応方式② 
63 
パラレルスタック 
デュアルスタック 
トランスレーション 
メリット 
分界点が明確 
ネットワークの安 定的な運用が確保 しやすい 
概念が単純 
低コスト 
変更が最小限 
デメリット 
高コスト 
管理対象が増える 
運用・分析工数が 増加 
障害の影響範囲が 広い 
セキュリティ機器 の実績不足 
ネットワーク構造 の変更が必要な場 合がある 
運用実績が少ない 
障害発生時に対応 が難しい 
セキュリティ機器 の通信制御が難し くなる 
参考資料:「IPv6対応セキュリティガイドライン(第1.0版)」IPv6普及・高度化推進協議会 セキュリティWG 
http://www.v6pc.jp/jp/upload/pdf/swg-IPv6SecurityGuideline_v1.0.pdf
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
DMZのIPv6対応方式とサーバへのアクセスの関係 
64 
パラレルスタック 
デュアルスタック 
トランスレーション 
サーバへの アクセス 
IPv4またはIPv6 (分離) 
IPv4およびIPv6 (混在) 
IPv4のみ 
サーバが認 識する接続 元アドレス 
クライアントの IPアドレス 
クライアントの IPアドレス 
トランスレータの IPアドレス 
外部のIPv6 システムへ の能動的な 接続 
可能 
可能 
不可能 (別途対応が必要) 
“X-Forwarded-For:” ヘッダを付与できる 装置を用い、アプリ ケーション側でこの ヘッダ値を取得する 等の方法で対応可
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
2章まとめ 
IPv6対応の基本方針 
IPv6対応=IPv6/IPv4の両方で動作させること 
シングルソースコードで対応する 
IPv6対応のポイント 
1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 
2.通信処理をIPv4/IPv6の両方に対応させる 
3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる 
DMZのIPv6対応方式は、要件に合わせて選択 
65
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
3. LL(軽量プログラミング 言語)の対応状況 
3.1. Perl 
3.2. PHP 
3.3. その他の言語 
- 66 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
3.1. Perl 
- 67 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
Perlの概要 
Perl のバージョン 
最新版(Perl5): 5.20.1 (2013/9/22リリース) 
Perl とネットワークプログラミング 
標準ライブラリ (コアモジュール) で基本的なネットワークプログラ ミングが可能 (ソケット, HTTP クライアント, SMTP クライアント) 
その他の機能が欲しい場合は, CPAN*1 のモジュール等を使用する 
*1 Comprehensive Perl Archive Network http://www.cpan.org/ 
Perl と IPv6 
Perl 5.14 から本格的に IPv6 をサポート 
Perl and IPv6 – Perl supports IPv6 
–http://www.perl.org/about/whitepapers/perl-ipv6.html 
それより前のバージョンでも, CPAN モジュールを利用すれば IPv6 を使うことは可能 
- 68 -
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により対応 
- 69 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】Socket関連の対応状況① 
Socket 
IO::Socket::INET 
IO::Socket::IP 
コア/CPAN 
コアモジュール 
コアモジュール 
CPANモジュール 
IPv6対応 
○ (Perl 5.14付属の Socket 1.94以降) 
× 
○ 
備考 
IPv6関連のものは、 ほとんどが、明示的 にインポートする必 要あり 
多くのネットワーク 系モジュールが IO::Socket::INET を使用しているが, それらのモジュール も当然ながら IPv6 非対応となっている (対応方法は後述) 
IO::Socket::INET の置き換えとして設 計されており、コン ストラクタやメソッ ドは互換性がある (一部例外あり) 
- 70 - 
IO::Socket::INET でやっていたことを やりたい場合には、 このモジュールを 使うのが良い
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】Socket関連の対応状況② 
IO::Socket::INETとIO::Socket::IPの比較 
IO::Socket::INET と IO::Socket::IP による TCP クライアントの例 ($host の $port に TCP で接続) 
赤字の部分 (use およびコンストラクタ) を変更するだけで IPv4専用だったコードが IPv4 / IPv6 両対応になる (はず) 
(変更後のプロトコルの優先順位はポリシーテーブルの設定に従う) 
※ もちろん, IPv4 アドレスが直書きしてあるような部分については, 別途対応する必要あり 
- 71 - 
use IO::Socket::INET; 
: 
my $sock = IO::Socket::INET->new( 
PeerAddr => $host, 
PeerPort => $port, 
Proto => 'tcp' 
) or die “Error: $!¥n”; 
: 
use IO::Socket::IP; 
: 
my $sock = IO::Socket::IP->new( 
PeerAddr => $host, 
PeerPort => $port, 
Proto => 'tcp' 
) or die “Error: $!¥n”; 
: 
IO::Socket::INET 
IO::Socket::IP 
ここ
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】サービス(HTTP, SMTP)の対応状況 
HTTPクライアントのメジャーどころ:IPv6非対応 
SMTPクライアント(Net::SMTP):IPv6非対応 
IO::Socket::INETのサブクラスのため 
- 72 - 
HTTP::Tiny 
IO::Socket::INETを使用しているため 
HTTP::Lite [CPAN] 
socket()にPF_INETを渡しているため 
LWP::UserAgent [CPAN] 
内部で使用している Net::HTTP が IO::Socket::INET のサブクラスのため 
IO::Socket::INETに由来して非対応のものが多い 
既存のコード 
CPANモジュール等 
IO::Socket::INET 
依存 
依存 
IPv6非対応
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】Net::INET6GlueによるIPv6対応① 
Net::INET6Glueを使用することで IO::Socket::INET を使用するモジュールをIPv6に 対応させることが可能 
Net::INET6Glue 
IO::Socket::INET6 からシンボルテーブルを IO::Socket::INET にコピーすることで, IO::Socket::INET を IO::Socket::INET6 の ように動作させる CPAN モジュール 
詳細は Net::INET6Glue::INET_is_INET6.pm を参照 
http://search.cpan.org/dist/Net-INET6Glue/ 
LWP や Net::SMTP 等の IO::Socket::INET 依存モジュール を使用したプログラムで, Net::INET6Glue により IPv6 での 通信ができるようになったことが確認されている 
- 73 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】Net::INET6GlueによるIPv6対応② 
使い方: IO::Socket::INET に依存した CPAN モジュール等 を使用している既存のコードの先頭で, “use Net::INET6Glue;” するだけ 
HTTP::Tiny (IO::Socket::INET 依存 = IPv4 専用) を 使用したコードを Net::INET6Glue によって IPv6 に 対応させる例 
use Net::INET6Glue; ← これを追加するだけ 
use HTTP::Tiny; 
: 
my $http = HTTP::Tiny->new; 
my $response = $http->get($url); 
print $response->{content}; 
- 74 - 
既存のコード
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】名前解決 
Net::DNS 
DNS リゾルバ (CPAN モジュール) 
http://search.cpan.org/dist/Net-DNS/ 
IPv6 関連 RR の検索に対応 
IPv6 関連の RR (AAAA, IPv6 アドレスの PTR) は問題なく 引ける 
AAAA を引いた結果の文字列表現は :: による省略がされない (Net::DNS::RR の print() 等) 
IP アドレスはそのままの形式で逆引きできる (in-addr.arpa. / ip6.arpa. 形式にする必要がない) 
IPv6 アドレスを逆引きするときは :: で省略したアドレスを 渡すことも可能 
- 75 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【Perl】アドレス処理 
Net::IP 
IPv4 / IPv6 アドレス処理のための様々な機能を 提供するCPANモジュール 
http://search.cpan.org/dist/Net-IP/ 
次のようなメソッドを提供する 
version() :IP のバージョンを返す (4 or 6) 
ip() :IPv6 アドレスの場合, 最も冗長な表現を返す 
short() :できるだけ省略された表記を返す 
reverse_ip() :逆引き用の表記 (PTR レコードの形式) を返す 
- 76 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
3.2. PHP 
- 77 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
PHPの概要 
PHP最新バージョン 
5.6系が最新系列になった。最新は5.6.2 (2014/10/17) 
5.5系、5.4系もメンテナンスされている。最新は 5.5.18, 5.4.34 (2014/10/17) 
PHPとネットワークプログラミング 
標準ライブラリで非常に広範囲なネットワーク プログラミングが可能 その他の機能が欲しい場合は、 拡張ライブラリ PEAR*1 のパッケージ 等を使用する 
PHP Extension and Application Repository http://pear.php.net/ 
PHPとIPv6 
PHP 5 から IPv6 に対応 
http://www.php.net/ChangeLog-5.php (Version 5.0.0 Beta 1 欄) 
- 78 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
PHPの対応状況 
考慮すべき要素 
対応状況 
備考 
名前解決 
○ 
dns_get_record() 
gethostbyaddr() 
PEAR Net_DNS2 
ソケット 
○ 
inet_pton(), inet_ptop()は 5.1.0 以降 対応 
各種(L7) プロトコル 
HTTP クライアント 
○ 
各種ファイル関数(fopenなど) cURLなど 
SMTP クライアント 
○ 
PEAR Net_SMTP 
mail(), PEAR Mail ⇒システム環境依存 
その他 
IPv6アドレス の処理 
○ 
PEAR Net_IPv6拡張パッケージ 
- 79 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【PHP】名前解決 
正引き 
dns_get_record 
引数で指定したRRの情報を取得して、配列で返す 
逆引き 
gethostbyaddr 
引数で指定したアドレスに対応するホスト名を返す 
- 80 - 
// www.iajapan.org の IPv6 アドレス (AAAA レコード) を検索 $result = dns_get_record('www.iajapan.org', DNS_ALL); 
$result = gethostbyaddr(‘192.168.0.1'); $result = gethostbyaddr(‘2001:db8:0:1::1:1');
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【PHP】HTTPクライアント 
URLをオープンする 
fopen() 
ファイルを開くのと同様にURLを指定して開くことができる (php.ini にて allow_url_fopen を有効にしている場合のみ) 
- 81 - 
$fh = fopen(“http://www.iajapan.org/ipv6/summit/FUKUOKA2014.html”, “r”); $fh = fopen(“http://[2001:db8::1]”, “r”); 
※URLにIPv6アドレスを指定する場合には [ ] で括る
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
【PHP】アドレス処理 
PEAR::Net_IPv6 
IPv6 アドレスに関する処理を行う 
http://pear.php.net/package/Net_IPv6 
下記のようなメソッドを提供する 
checkIPv6() : IPv6のアドレスとして正しいか検証 
compress() : IPアドレスの短縮 
uncompress() : IPアドレスの伸長 
isInNetmask() : IPが指定したアドレス空間にあるか どうかを調べる 
- 82 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
3.3. 他のLLの対応状況 
- 83 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
他のLLの対応状況 
以下を参照ください 
InternetWeek 2012「スクリプト言語とIPv6 -2012-」 /関根 佳直 氏 
https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/t7/t7-sekine.pdf 
InternetWeek 2011「Lightweight LanguageとIPv6」 /関根 佳直 氏 
https://www.nic.ad.jp/ja/materials/iw/2011/proceedings/t5/t5-03.pdf 
- 84 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
3章まとめ 
Perl:5.14以降は概ねIPv6対応 
IO::Socket::INETに起因して非対応のモジュールは、 Net::INET6Glue を利用することでIPv6対応可 
PHP:PHP5以降はIPv6対応 
Python, Rubyも概ねIPv6対応 
- 85 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
4. VPS/IaaSのIPv6対応状況 
- 86 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
VPS/IaaSに見られるIPv6対応方法 
構成イメージ 
備考 
IPv6ネイティブ 
先述の「DMZのIPv6対応 方式」における「パラレ ルスタック」もしくは 「デュアルスタック」 
トランスレーション 
先述の「DMZのIPv6対応 方式」における「トラン スレーション」と同じ 
IPv6トンネリング 
トンネルルータ⇔Web サーバ間において、IPv6 をIPv4でトンネル 
- 87 - 
ルータ 
Web サーバ 
IPv6 
IPv6 
internet 
トンネル ルータ 
Web サーバ 
IPv6 
IPv6 トンネル 
internet 
ロード バランサ 等 
Web サーバ 
IPv6 
IPv4 
internet 
IPv4
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
VPS/IaaSのIPv6対応状況の注意事項 
サービス提供企業がWebサイトで公開している 情報を元にまとめたものです 
2014年10月20日現在の情報です 
ここに記載されている特定のサービスの利用を 薦めるものではありません 
- 88 - 
情報に誤りがありましたら、ご指摘ください
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
VPS/IaaSの対応状況① 
企業名 
サービス 名 
対応状況 
対応方式 
URL 
Amazon 
AWS 
▲※ 
トランス レーション 
http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/using-elb-ipv6.html (Note欄) 
Google 
Google Compute Engine 
× 
- 
https://cloud.google.com/compute/docs/networking 
IBM 
SoftLayer 
○ 
ネイティブ 
http://www.softlayer.com/network 
Microsoft 
Azure 
× 
- 
http://azure.microsoft.com/ ja-jp/pricing/faq/ 
- 89 - 
※AWSの対応状況については、現状、VPC環境で利用できない
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
VPS/IaaSの対応状況② 
企業名 
サービス 名 
対応状況 
対応方式 
URL 
ABLENET 
ABLENET 
○ 
? 
http://www.ablenet.jp/vps/ spec/index.html 
GMOイン ターネッ ト 
ConoHa 
○ 
? 
https://www.conoha.jp/features (スペックシート) 
さくらイ ンター ネット 
さくらの VPS 
○ 
? 
http://vps.sakura.ad.jp/specification.html 
さくらイ ンター ネット 
さくらの クラウド 
トライアル 提供 
トンネル (6rd) 
http://research.sakura.ad.jp/6rd-trial/ 
DTI 
ServerMan@VPS 
○ 
? 
http://dream.jp/vps/service.html 
- 90 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
VPS/IaaSの対応状況③ 
企業名 
サービス 名 
対応状況 
対応方式 
URL 
BIGLOBE 
BIGLOBE クラウド ホスティ ング 
○ 
? 
http://cloud.biglobe.ne.jp/hosting/spec/ 
IIJ 
IIJ GIO ホ スティン グパッ ケージ サービス 
○ 
? 
http://www.iij.ad.jp/biz/hosting/spec.html 
NIFTY 
NIFTY Cloud 
× 
- 
http://cloud.nifty.com/cs/catalog/cloud_faq/catalog_121217001082_1.htm 
NTTコ ミュニ ケーショ ンズ 
Bizホス ティング Enterprise Cloud 
× (今後対応 予定) 
- 
http://www.ntt.com/bhec/data/roadmap.html 
- 91 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
おわりに 
- 92 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
まとめ① 
IPv6を使える環境が増えている 
IPv4とIPv6は互換性なし 
WebサービスのIPv6対応にはアプリケーションの 対応が不可欠 
IPアドレスのハードコーディングは ダメ。ゼッタイ。 
93
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
まとめ② 
アプリケーションのIPv6対応の基本方針 
IPv6対応=IPv6/IPv4の両方で動作させること 
シングルソースコードで対応する 
アプリケーションのIPv6対応のポイント 
1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 
2.通信処理をIPv4/IPv6の両方に対応させる 
3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる 
LLは概ねIPv6に対応済み 
94 
決して難しくない! 今日から開発するWebサービスは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 
- 95 -
Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 
ご清聴いただき、 ありがとうございました 
- 96 -

More Related Content

What's hot

Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Kiyotaka Doumae
 
DS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うDS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うSatoshi Togawa
 
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜Akira Nakagawa
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜Akira Nakagawa
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA
 
Serverless Meetup Japan Virtual #6
Serverless Meetup Japan Virtual #6Serverless Meetup Japan Virtual #6
Serverless Meetup Japan Virtual #6Toshiaki Aoike
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際Tetsuji Koyama
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Akira Nakagawa
 
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイcloudconductor
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpKaoru Maeda
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方Tomohiro MITSUMUNE
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町Takahiro Kujirai
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
Rancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みRancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みMichitaka Terada
 
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューYuya Rin
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Takahiro Kujirai
 

What's hot (20)

Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
DS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使うDS-LiteをFreeBSDで使う
DS-LiteをFreeBSDで使う
 
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechcon
 
Serverless Meetup Japan Virtual #6
Serverless Meetup Japan Virtual #6Serverless Meetup Japan Virtual #6
Serverless Meetup Japan Virtual #6
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
 
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
Rancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みRancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組み
 
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビュー
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118
 

Viewers also liked

楽天Edyオンライン 記者説明会資料
楽天Edyオンライン 記者説明会資料楽天Edyオンライン 記者説明会資料
楽天Edyオンライン 記者説明会資料Kei Wada
 
IoTで遊ぼうピタゴラスイッチ
IoTで遊ぼうピタゴラスイッチ IoTで遊ぼうピタゴラスイッチ
IoTで遊ぼうピタゴラスイッチ Tsuyoshi Seino
 
セルフペースラボで気軽に始めるAWS
セルフペースラボで気軽に始めるAWSセルフペースラボで気軽に始めるAWS
セルフペースラボで気軽に始めるAWSsnihei
 
自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化Rakuten Group, Inc.
 
SORACOM LoRaWAN Conference 2017 | キーノート
SORACOM LoRaWAN Conference 2017 | キーノートSORACOM LoRaWAN Conference 2017 | キーノート
SORACOM LoRaWAN Conference 2017 | キーノートSORACOM,INC
 
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayu
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayuAWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayu
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayuAyumi Tada
 

Viewers also liked (6)

楽天Edyオンライン 記者説明会資料
楽天Edyオンライン 記者説明会資料楽天Edyオンライン 記者説明会資料
楽天Edyオンライン 記者説明会資料
 
IoTで遊ぼうピタゴラスイッチ
IoTで遊ぼうピタゴラスイッチ IoTで遊ぼうピタゴラスイッチ
IoTで遊ぼうピタゴラスイッチ
 
セルフペースラボで気軽に始めるAWS
セルフペースラボで気軽に始めるAWSセルフペースラボで気軽に始めるAWS
セルフペースラボで気軽に始めるAWS
 
自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化
 
SORACOM LoRaWAN Conference 2017 | キーノート
SORACOM LoRaWAN Conference 2017 | キーノートSORACOM LoRaWAN Conference 2017 | キーノート
SORACOM LoRaWAN Conference 2017 | キーノート
 
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayu
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayuAWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayu
AWS初心者に贈る〜AWS関連コンテンツを使い倒そう_20150514 #jawsug_bgnr #jawsug @applebear_ayu
 

Similar to 20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方

Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準Takahiro Hozumi
 
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
 
20120516 v6opsf-ngn final
20120516 v6opsf-ngn final20120516 v6opsf-ngn final
20120516 v6opsf-ngn finalRuri Hiromi
 
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューションJuniper Networks (日本)
 
V6prog OSC2013Hokkaido
V6prog OSC2013HokkaidoV6prog OSC2013Hokkaido
V6prog OSC2013HokkaidoKohki Ohhira
 
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 aitc_jp
 
IBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fallIBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fallYasushi Osonoi
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Koyo Takenoshita
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話Wataru NOGUCHI
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WANInterop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WANShuheiUda
 
Hybrid cloud fj-20190704_final
Hybrid cloud fj-20190704_finalHybrid cloud fj-20190704_final
Hybrid cloud fj-20190704_finalKei Furusawa
 
Mk vpp for-containers-vppug
Mk vpp for-containers-vppugMk vpp for-containers-vppug
Mk vpp for-containers-vppugMiya Kohno
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Maho Takara
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
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
 
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1Computational Materials Science Initiative
 

Similar to 20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方 (20)

Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準
 
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
 
20120516 v6opsf-ngn final
20120516 v6opsf-ngn final20120516 v6opsf-ngn final
20120516 v6opsf-ngn final
 
IPv6 Update
IPv6 UpdateIPv6 Update
IPv6 Update
 
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
 
V6prog OSC2013Hokkaido
V6prog OSC2013HokkaidoV6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
 
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
 
IBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fallIBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fall
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WANInterop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
 
Hybrid cloud fj-20190704_final
Hybrid cloud fj-20190704_finalHybrid cloud fj-20190704_final
Hybrid cloud fj-20190704_final
 
Mk vpp for-containers-vppug
Mk vpp for-containers-vppugMk vpp for-containers-vppug
Mk vpp for-containers-vppug
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
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
 
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
 

Recently uploaded

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方

  • 1. IPv6対応Webサービスの作り方 2014年10月23日 技術本部 技術開発部 渡辺 露文 IPv6 Summit in FUKUOKA 2014
  • 2. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. About me 渡辺 露文 (わたなべ つゆふみ) 富士ソフト株式会社 技術本部技術開発部 ネットワークエキスパート 業務経歴 1999年 富士ソフトABC株式会社(現 富士ソフト株式会社)入社 入社後、ISP、データセンター顧客向けシステムなどのシステム開発・イン フラ構築・運用、社内システムのインフラ企画・構築・運用に従事 2011年~ 技術調査および社内技術者教育に従事 主な社外活動 IPv6普及・高度化推進協議会 –アプリケーションのIPv6対応検討SWG –IPv6導入に起因する問題検討SWG 技術評論社 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 … - 3 - いずれも デフォルトで利用可能
  • 5. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 実はIPv6を使える環境が増えています② インターネット回線 フレッツ光ネクスト au ひかり NURO 光 … - 4 - 利用可能 既存ユーザへの 自動導入も進行中 すでに、ユーザからあなたのサービスにIPv6で アクセスされようとしている…かもしれない
  • 6. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 日本におけるIPv6の普及状況 フレッツ光ネクストのIPv6普及率(2014年6月) IPv6普及率:3.1% フレッツ光ネクスト契約数:13,588,000 au ひかりのIPv6普及率(2014年6月):68% - 5 - 今後本格的に普及する前に IPv6対応を始めたほうが良い 出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査 http://v6pc.jp/jp/spread/ipv6spread_03.phtml
  • 7. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 余談:IPv6でインターネットにアクセスできるかの確認方法 Webブラウザで http://www.test-ipv6.jp にアクセス Webブラウザで http://www.kame.net にアクセス - 6 - IPv6でアクセスすると、 亀が踊ります♪
  • 8. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6の背景:IPv4アドレス枯渇 IPv4アドレスの在庫状況 (地域インターネットレジストリ) 7 通信事業者、ISP、 データセンター、 クラウド事業者等の 在庫が残るのみ 世界的に足りなくなってきている
  • 9. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Agenda 1.IPv6対応の話をする前に 2.IPv6対応Webサービスの作り方 3.LL(軽量プログラミング言語)の対応状況 4.VPS/IaaSのIPv6対応状況 - 8 -
  • 10. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 1. IPv6対応の話をする前に 1.Webサービスを作る上で知っておくべきIPv6の基礎 2.気を付けるべきこと - 9 -
  • 11. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 1.1. Webサービスを作る上で 知っておくべきIPv6の基礎 - 10 -
  • 12. 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準拠) - 11 - IPv4アドレス IPv6アドレス アドレス長 32bit 128bit 文字列 表記 表記法 8bitずつ区切り、 10進数で表記 16bitずつ区切り、 16進数で表記 区切り文字 . (ドット) : (コロン) 文字列長 15文字以内 39文字以内
  • 13. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6とでは何が違うのか?② ユニキャストアドレスの構成 アドレス利用設計 IPv4では、ネットワークアドレス部の長さを調整 IPv6では、原則的にサブネットプレフィックスは固定 12 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 サブネット プレフィックス 64bit インターフェイス ID 64bit ネットワーク アドレス 29bit ホストアドレス 3bit Global Routing Prefix n bits Subnet ID 64 bits Interface ID 64-n bits Subnet Prefix ※ ネットマスク 29bit (255.255.255.248)の場合 8 8 8bit IPv4では収容する端末の見込み台数に応じて最適な大きさの サブネットを設計していたが、IPv6では64bit固定
  • 14. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. グローバルスコープ IPv4とIPv6とでは何が違うのか?③ 13 リンクローカルスコープ リンクローカルアドレス fe80::/10 ユニークローカルアドレス fc00::/7 グローバルユニキャストアドレス 2000::/3 IPv6では1つのNICに複数のアドレスを 有効範囲に応じて割当て、使い分ける
  • 15. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6とでは何が違うのか?④ 他にも機能的にIPv4と異なることがある 最も重要なこと: - 14 - IPv4とIPv6は互換性がない
  • 16. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6の接続性 15 Internet IPv4対応 (IPv6非対応) システム IPv4/IPv6 両対応システム IPv6対応 (IPv4非対応) システム (1) (2) (3) IPv4端末 IPv4/IPv6 両対応端末 IPv6端末 IPv4 IPv6
  • 17. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6に対応しない場合の影響 1.IPv6のみの環境と通信できない ビジネス機会を損失する システム連携が行えず要件を満たせなくなる 2.今後、IPv4はサービスレベルが低下していく 通信事業者等によるCGN(Carrier Grade NAT)導入に より、遅くなったり、利用できるセッション数が少なく なったりする可能性がある 16 IPv6に対応しなきゃ!
  • 18. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. WebサービスのIPv6対応 ネットワークとサーバがIPv6に対応すれば、 IPv6で接続可能 接続は可能だが… 例えば システム連携がうまくいかない 想定外の挙動をする … - 17 - アプリケーションのIPv6対応が不可欠! サービスが正常に動作しない かもしれない
  • 19. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 1.2. IPv6対応の前に気を付ける べきこと - 18 -
  • 20. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. とあるソースコード このコード、イケてない… 19 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”; :
  • 21. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. とあるソースコード このコード、イケてない… 20 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アドレス直書き?
  • 22. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 他にもイケてないコードがある とある Androidプログラミング書籍に おけるソケット通信のサンプルコード - 21 - public class SocketEx… … … private final static String IP=“192.168.11.12”;//★変更必須 良い子はマネしちゃダメ
  • 23. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6対応の話をする前に… 22 IPアドレスのハードコーディングはNG ダメ。ゼッタイ。 $host = “www.example.com” のようにFQDNで接続先を指定する
  • 24. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Internet ネットワークアクセスの作法=名前解決を使う  Webアクセスの例 23 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からアドレス取得
  • 25. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. なぜIPアドレス直書きがダメなのか? 24 アプリケーションは、IPアドレスに依存すべきではない 目的 変更・改修の理由 アプリケーション 機能の 提供 業務要件の変更 サービス内容の変更 ユーザビリティ向上 …,etc. インフラ 資源の 提供 資源管理(IPアドレス、サーバリソース …) 性能 互いに変更の影響を受けるべきではない 同一システムでも変更・改修の理由・時期は異なる 例)IPアドレスでユーザを識別すべきではない
  • 26. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Cookie内の情報にも気を付ける 25 Cookie内に記載される情報の生成がIPv4アドレスを前提としている 実装が散見される。このようなアプリケーションに関しては、生成ロ ジックを変更する必要がある。 Cookie内の情報としてIPv4アドレスを直接利用している実装がしば しば見られる。特に認証系システムなどでこの種の情報の取扱いがな されている場合が多い。このような実装では、利用者がIPv4/IPv6の 両方の空間を利用しており、どちらを利用するかが一位に定まらない 場合などに問題が発生する。このような実装の場合、単純に IPv4/IPv6両方に対応させることが困難である。 出典:IPv6普及・高度化推進協議会 セキュリティWG IPv6対応セキュリティガイドライン(第1.0版) http://www.v6pc.jp/jp/upload/pdf/swg-IPv6SecurityGuideline_v1.0.pdf
  • 27. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 1章まとめ Webサービスに重要なIPv4とIPv6の違い アドレス体系が異なる アドレス利用設計が変わる 複数のアドレスを有効範囲に応じて使い分ける IPv4とIPv6は互換性がない WebサービスのIPv6対応にはアプリケーションの 対応が不可欠 IPアドレスのハードコーディングは ダメ。ゼッタイ。 - 26 -
  • 28. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2. IPv6対応Webサービスの 作り方 2.1. プログラミング言語と実行環境 2.2. 通信処理のIPv6対応 2.3. データとしてIPアドレスを扱う箇所の対応 2.4. DMZのIPv6対応方式とサーバへのアクセス - 27 -
  • 29. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Webサービス 28 Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ アプリケーションを中心に解説します
  • 30. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応の基本方針① 29 IPv6対応 = IPv4とIPv6の両方で動作する シングルソースコードで対応
  • 31. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応の基本方針② IPv6とIPv4の共存期間が長く続く これまでIPv4で提供してきたサービスは、今後も 継続してIPv4でも動作する必要がある 30 IPv6対応 = IPv4とIPv6の両方で動作する
  • 32. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応の基本方針③ 各開発言語が概ねIPv6に対応しており、プロトコルに よって開発言語を分ける必要がなくなった アプリケーションのメンテナンス性を重視し、 プロトコルによって機能差異が生じることを未然に防ぐ 31 シングルソースコードで対応
  • 33. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. アプリケーションのIPv6対応のポイント 32 Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ ①IPv4/IPv6両対応の プログラミング言語と実行環境を使う ②通信処理をIPv4/IPv6の 両方に対応させる ③データとしてIPアドレスを 扱う箇所をIPv4/IPv6の 両方に対応させる
  • 34. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2.1. プログラミング言語と 実行環境 - 33 -
  • 35. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ここでいうIPv4/IPv6両対応とは? プログラミング言語と実行環境におけるIPv4/IPv6 両対応とは? 34 名前解決機構が IPv4/IPv6両方のアドレスを適切に扱える IPv4/IPv6両方で通信できる これらを満たすプログラミング言語、実装環境を利用する
  • 36. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 実装上の留意点 プログラミング言語、実行環境の選定における留意点 実際には各プロダクトでサポート状況に差異があるため、 開発するアプリケーションが提供する機能を考慮し、個別に 判断する必要がある プログラミングにおける留意点 IPv4/IPv6の双方に対応するライブラリ、オブジェクト、 関数、データ型を使う 従来(IPv4のみ)のものとは別に用意されていることがある –C addrinfo構造体、getaddrinfo() –Java InetAddressクラス –Perl IO::Socket::IP など アドレス検証、変換などはライブラリを有効活用 35
  • 37. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2.2. 通信処理のIPv6対応 - 36 -
  • 38. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6の両方で通信できることとは?  クライアント IPv4およびIPv6で 意図するサーバへ 接続できること  サーバ IPv4およびIPv6で 接続を受付けること - 37 - IPv6 IPv6 IPv4 IPv4
  • 39. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPアドレスを複数持つことがある - 38 - IPv6 IPv6 IPv4 IPv4 複数のアドレスを 持つことがある 複数のアドレスを 持つことがある クライアントがどのアドレスにアクセスするかは サーバ側では予測できない 特定のアドレスに依存したシステムを構成すべきではない
  • 40. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6の名前解決① FQDNで接続先を指定してIPv6で通信を行うには、 DNSにてFQDNからIPv6アドレスが名前解決できる ことが必要不可欠 FQDNからIPv6アドレスを名前解決 権威DNSサーバ上で接続先サーバのAAAAレコードにIPv6 アドレスが登録されている クライアントから接続先サーバのAAAAレコードが引ける Webアプリケーション開発においては、FQDNのIPv6 アドレスが正しく名前解決できることを確認する - 39 -
  • 41. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6の名前解決② - 40 - Client Web Server www.example.jp 2001:db8:100::1 example.jpの 権威DNS Server  AAAAレコード (IPv4のAレコードに 相当)をリソースレ コードに登録 ①名前解決問合せ www.example.jp ? ②AAAA応答 2001:db8:100::1 ③HTTP通信 www.example.jp IN AAAA 2001:db8:100::1 www.example.jp IN A 192.0.2.1
  • 42. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 通信の試行順序 RFC6724 Default Address Selection for IPv6 優先順位が変わるケース デフォルトを変更している環境 RFC6724に準拠していない実装 - 41 - IPv6 > IPv4
  • 43. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. クライアントプログラム IPv4/IPv6 両宛先アドレスに接続できるように する 接続できない状況も想定し接続失敗時には別の宛先 アドレスに切替えて接続する(フォールバック) - 42 - アプリケーションの作りが悪いと… 切替えに時間がかかる 正常に切替わらないこともある ユーザの利便性を 損なう
  • 44. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 通信処理の補足:フォールバック  接続できない場合に別の接続先への接続に切替える 動作 43 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) フォールバック
  • 45. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 想定されるフォールバックの主な原因 44 サーバ側の 問題 サーバが当該のサービスを提供して いない DNS誤登録、障害等 経路の問題 ネットワークの接続性が失われている ISPの不具合 クライアント 側の問題 サーバへの到達性がないアドレスを 選択して通信を行おうとしている グローバルアドレスを使用している 閉域網
  • 46. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. フォールバックの予防策 45 サーバ 設定の不備を修正する サービスを提供していないIPアドレス をDNSに登録しない サービスを適切に提供する ISP ネットワークの接続性を健全に保つ クライアント IPv6インターネット接続可能なISPと 契約する
  • 47. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. サーバプログラム IPv4/IPv6 両プロトコルでの接続を処理 主要なWebサーバプログラムは対応済み Apache HTTP Server Microsoft Internet Information Server (IIS) nginx - 46 -
  • 48. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2.3. データとしてIPアドレスを 扱う箇所の対応 - 47 -
  • 49. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. データとしてIPアドレスを扱う箇所 48 入力 出力 整列 検索 格納
  • 50. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv4/IPv6アドレス比較 49 IPv4アドレス IPv6アドレス アドレス長 32bit 128bit 文字列 表記 表記法 8bitずつ区切り、 10進数で表記 16bitずつ区切り、 16進数で表記 (省略表記あり) 区切り文字 . (ドット) : (コロン) 文字列長 15文字以内 39文字以内 サブネットマスク/プレフィックス長を 考慮すると、上記+”/”+数字3文字
  • 51. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6アドレス表記法 特段の事情がない限り RFC5952 の表記ルールに 従い表記する(省略表記) アドレス表記例 IPv4)192.0.2.1 IPv6完全表記) 2001:0db8:0000:0000:0001:0000:0000:0001 IPv6省略表記)2001:db8::1:0:0:1 50
  • 52. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6アドレスの文字列長 IPv6アドレスの文字列長:39文字 プレフィックスを加味すると:43文字 例外(39文字を超えることがある) リンクローカルアドレスにゾーンID(スコープID)を 付与してインターフェースを識別する場合 例)fe80::1%eth1 一部の特殊アドレス IPv4射影アドレス等 –例)::ffff:192.168.0.1 - 51 - IPv4射影アドレス IPv4 アドレスを IPv6 アドレスとして表現する ための IPv6 アドレス。上位80ビットに0、81~96ビット目に1、下位32ビットにIPv4アドレ スを埋め込む。機器内部での使用に限られ、パ ケットの始点/終点アドレスには使われない。 出典: IPv6関連用語集 IPv4-mapped(IPv6) address
  • 53. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. IPv6アドレスを扱えないIPアドレス入力・格納 15文字までの文字列(varchar(15)) 1つの整数として扱う 1オクテットずつ4つの整数として扱う - 52 - そのままではIPv6アドレスを格納できず、エラーとなる IPv4/IPv6両対応 39文字以内の文字列 [VARCHAR(39)] Good! Bad!
  • 54. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Webフォームからの入力 入力値の検証 IPアドレスを扱う場合、入力された文字列がIPアドレス として取りうる値であることを検証 IPv4アドレス、IPv6アドレス いずれかとして取りうる値 2箇所で実施可能 ブラウザ側(HTML5のForm Validation等) サーバ側 アドレス処理ライブラリを利用すると便利 例)PHP Net_IPv6::checkIPv6(); (PEARにて提供されるNet_IPv6パッケージに含まれる) - 53 -
  • 55. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 格納、検索、整列、出力 IPアドレス型が定義されている場合は、IPアドレス型 を使う 例) PostgreSQLのネットワークアドレス型 IPアドレス型が定義されていない場合は、文字列型で 完全表記を使う IPv6完全表記) 2001:0db8:0000:0000:0001:0000:0000:0001 見やすさを求めるときは、省略表記(RFC5952準拠)で出力 過去に開発されたシステム・ツールでは、RFC5952に準拠しない省 略表記が存在しうるので要注意 既存システムは、格納領域にIPv6アドレスが収まるか をチェック - 54 -
  • 56. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. PostgreSQLのネットワークアドレス型 - 55 -
  • 57. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 文字列型で扱う場合、なぜ完全表記か?① 省略表記のまま整列しても… 56 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:1::50 2001:db8:0:10::1 整列前 2001:db8:0:10::1 2001:db8:0:1::1:1 2001:db8:0:1::50 2001:db8:0:2::1 整列後 アドレス昇順 2001:db8:0:1::50 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:10::1 省略表記の 整列は アドレス昇順と 一致しない アドレス 昇順
  • 58. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 文字列型で扱う場合、なぜ完全表記か?② 整列は完全表記で行う 57 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:1::50 2001:db8:0:10::1 整列前 整列後 アドレス昇順 2001:db8:0:1::50 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:10::1 アドレス 昇順 2001:0db8:0000:0001:0000:0000:0001:0001 2001:0db8:0000:0002:0000:0000:0000:0001 2001:0db8:0000:0001:0000:0000:0000:0050 2001:0db8:0000:0010:0000:0000:0000:0001 2001:0db8:0000:0001:0000:0000:0000:0050 2001:0db8:0000:0001:0000:0000:0001:0001 2001:0db8:0000:0002:0000:0000:0000:0001 2001:0db8:0000:0010:0000:0000:0000:0001 (文字列) 整列 完全表記 完全表記の整列は アドレス昇順と 一致
  • 59. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. サンプルコード(IPアドレス整列の例) <?php $tmp_arr = array("2001:db8:0:1::1:1", "2001:db8:0:2::1", "2001:db8:0:1::50", "2001:db8:0:10::1"); require_once "Net/IPv6.php"; // Net_IPv6パッケージを呼び出し foreach ($tmp_arr as $short_addr){ if (Net_IPv6::checkIPv6($short_addr)){ //IPv6アドレスであることをチェック $full_arr[] = Net_IPv6::uncompress($short_addr, true); //省略表記を解除 } } echo "before: "; print_r($tmp_arr); //整列前配列の出力 sort($full_arr); //配列を整列 foreach ($full_arr as $full_addr){ if (Net_IPv6::checkIPv6($full_addr)){ //IPv6アドレスであることをチェック $sorted_arr[] = Net_IPv6::compress($full_addr); //省略表記化 } } echo "<BR>after: "; print_r($sorted_arr); //整列後配列の出力 ?> - 58 -
  • 60. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 文字列型として扱うときの注意点 省略表記 ⇔ 完全表記 の変換はライブラリを有効 活用する 過去に開発されたシステム・ツールでは、 RFC5952に準拠しない省略表記が存在しうるので 要注意 59
  • 61. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ログ出力・解析への影響 例)Apache HTTP Server ログファイル OSSログ解析プログラムは大抵問題なく処理できる AWStats, Webalizer… 注:アクセス元の国/地域は解析できない場合がある ログ解析を自作している人は要注意! アドレス部分の文字列長が長くなる アドレスの区切り文字が変わる 60 fdb6:5591:2612:10::100 - - [08/Oct/2014:17:52:30 +0900] "GET / HTTP/1.1" 200 144 172.16.10.128 - - [08/Oct/2014:18:01:59 +0900] "GET / HTTP/1.1" 200 100 1 2
  • 62. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2.4. DMZのIPv6対応方式と サーバへのアクセス - 61 -
  • 63. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. DMZのIPv6対応方式① 62 パラレルスタック デュアルスタック トランスレーション 構成 イメージ 概要 IPv4とIPv6のネット ワークを分離して構 築・運用 IPv4/IPv6を同列に、 同一のネットワーク で扱う IPv4ネットワークを変 更せず、トランスレー タを導入する IPv4 IPv6 GW IPv4 IPv6 GW NW機器 NW機器 NW機器 IPv4 IPv6 GW NW機器 GW トランスレータ v4 v4 v4 v4 v4 v4 v4 v6 v6 v6 v4 v6 v6 v6 v4/v6 v4/v6 GW
  • 64. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. DMZのIPv6対応方式② 63 パラレルスタック デュアルスタック トランスレーション メリット 分界点が明確 ネットワークの安 定的な運用が確保 しやすい 概念が単純 低コスト 変更が最小限 デメリット 高コスト 管理対象が増える 運用・分析工数が 増加 障害の影響範囲が 広い セキュリティ機器 の実績不足 ネットワーク構造 の変更が必要な場 合がある 運用実績が少ない 障害発生時に対応 が難しい セキュリティ機器 の通信制御が難し くなる 参考資料:「IPv6対応セキュリティガイドライン(第1.0版)」IPv6普及・高度化推進協議会 セキュリティWG http://www.v6pc.jp/jp/upload/pdf/swg-IPv6SecurityGuideline_v1.0.pdf
  • 65. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. DMZのIPv6対応方式とサーバへのアクセスの関係 64 パラレルスタック デュアルスタック トランスレーション サーバへの アクセス IPv4またはIPv6 (分離) IPv4およびIPv6 (混在) IPv4のみ サーバが認 識する接続 元アドレス クライアントの IPアドレス クライアントの IPアドレス トランスレータの IPアドレス 外部のIPv6 システムへ の能動的な 接続 可能 可能 不可能 (別途対応が必要) “X-Forwarded-For:” ヘッダを付与できる 装置を用い、アプリ ケーション側でこの ヘッダ値を取得する 等の方法で対応可
  • 66. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 2章まとめ IPv6対応の基本方針 IPv6対応=IPv6/IPv4の両方で動作させること シングルソースコードで対応する IPv6対応のポイント 1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 2.通信処理をIPv4/IPv6の両方に対応させる 3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる DMZのIPv6対応方式は、要件に合わせて選択 65
  • 67. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 3. LL(軽量プログラミング 言語)の対応状況 3.1. Perl 3.2. PHP 3.3. その他の言語 - 66 -
  • 68. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 3.1. Perl - 67 -
  • 69. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. Perlの概要 Perl のバージョン 最新版(Perl5): 5.20.1 (2013/9/22リリース) Perl とネットワークプログラミング 標準ライブラリ (コアモジュール) で基本的なネットワークプログラ ミングが可能 (ソケット, HTTP クライアント, SMTP クライアント) その他の機能が欲しい場合は, CPAN*1 のモジュール等を使用する *1 Comprehensive Perl Archive Network http://www.cpan.org/ Perl と IPv6 Perl 5.14 から本格的に IPv6 をサポート Perl and IPv6 – Perl supports IPv6 –http://www.perl.org/about/whitepapers/perl-ipv6.html それより前のバージョンでも, CPAN モジュールを利用すれば IPv6 を使うことは可能 - 68 -
  • 70. 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により対応 - 69 -
  • 71. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】Socket関連の対応状況① Socket IO::Socket::INET IO::Socket::IP コア/CPAN コアモジュール コアモジュール CPANモジュール IPv6対応 ○ (Perl 5.14付属の Socket 1.94以降) × ○ 備考 IPv6関連のものは、 ほとんどが、明示的 にインポートする必 要あり 多くのネットワーク 系モジュールが IO::Socket::INET を使用しているが, それらのモジュール も当然ながら IPv6 非対応となっている (対応方法は後述) IO::Socket::INET の置き換えとして設 計されており、コン ストラクタやメソッ ドは互換性がある (一部例外あり) - 70 - IO::Socket::INET でやっていたことを やりたい場合には、 このモジュールを 使うのが良い
  • 72. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】Socket関連の対応状況② IO::Socket::INETとIO::Socket::IPの比較 IO::Socket::INET と IO::Socket::IP による TCP クライアントの例 ($host の $port に TCP で接続) 赤字の部分 (use およびコンストラクタ) を変更するだけで IPv4専用だったコードが IPv4 / IPv6 両対応になる (はず) (変更後のプロトコルの優先順位はポリシーテーブルの設定に従う) ※ もちろん, IPv4 アドレスが直書きしてあるような部分については, 別途対応する必要あり - 71 - use IO::Socket::INET; : my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp' ) or die “Error: $!¥n”; : use IO::Socket::IP; : my $sock = IO::Socket::IP->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp' ) or die “Error: $!¥n”; : IO::Socket::INET IO::Socket::IP ここ
  • 73. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】サービス(HTTP, SMTP)の対応状況 HTTPクライアントのメジャーどころ:IPv6非対応 SMTPクライアント(Net::SMTP):IPv6非対応 IO::Socket::INETのサブクラスのため - 72 - HTTP::Tiny IO::Socket::INETを使用しているため HTTP::Lite [CPAN] socket()にPF_INETを渡しているため LWP::UserAgent [CPAN] 内部で使用している Net::HTTP が IO::Socket::INET のサブクラスのため IO::Socket::INETに由来して非対応のものが多い 既存のコード CPANモジュール等 IO::Socket::INET 依存 依存 IPv6非対応
  • 74. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】Net::INET6GlueによるIPv6対応① Net::INET6Glueを使用することで IO::Socket::INET を使用するモジュールをIPv6に 対応させることが可能 Net::INET6Glue IO::Socket::INET6 からシンボルテーブルを IO::Socket::INET にコピーすることで, IO::Socket::INET を IO::Socket::INET6 の ように動作させる CPAN モジュール 詳細は Net::INET6Glue::INET_is_INET6.pm を参照 http://search.cpan.org/dist/Net-INET6Glue/ LWP や Net::SMTP 等の IO::Socket::INET 依存モジュール を使用したプログラムで, Net::INET6Glue により IPv6 での 通信ができるようになったことが確認されている - 73 -
  • 75. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】Net::INET6GlueによるIPv6対応② 使い方: IO::Socket::INET に依存した CPAN モジュール等 を使用している既存のコードの先頭で, “use Net::INET6Glue;” するだけ HTTP::Tiny (IO::Socket::INET 依存 = IPv4 専用) を 使用したコードを Net::INET6Glue によって IPv6 に 対応させる例 use Net::INET6Glue; ← これを追加するだけ use HTTP::Tiny; : my $http = HTTP::Tiny->new; my $response = $http->get($url); print $response->{content}; - 74 - 既存のコード
  • 76. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】名前解決 Net::DNS DNS リゾルバ (CPAN モジュール) http://search.cpan.org/dist/Net-DNS/ IPv6 関連 RR の検索に対応 IPv6 関連の RR (AAAA, IPv6 アドレスの PTR) は問題なく 引ける AAAA を引いた結果の文字列表現は :: による省略がされない (Net::DNS::RR の print() 等) IP アドレスはそのままの形式で逆引きできる (in-addr.arpa. / ip6.arpa. 形式にする必要がない) IPv6 アドレスを逆引きするときは :: で省略したアドレスを 渡すことも可能 - 75 -
  • 77. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【Perl】アドレス処理 Net::IP IPv4 / IPv6 アドレス処理のための様々な機能を 提供するCPANモジュール http://search.cpan.org/dist/Net-IP/ 次のようなメソッドを提供する version() :IP のバージョンを返す (4 or 6) ip() :IPv6 アドレスの場合, 最も冗長な表現を返す short() :できるだけ省略された表記を返す reverse_ip() :逆引き用の表記 (PTR レコードの形式) を返す - 76 -
  • 78. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 3.2. PHP - 77 -
  • 79. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. PHPの概要 PHP最新バージョン 5.6系が最新系列になった。最新は5.6.2 (2014/10/17) 5.5系、5.4系もメンテナンスされている。最新は 5.5.18, 5.4.34 (2014/10/17) PHPとネットワークプログラミング 標準ライブラリで非常に広範囲なネットワーク プログラミングが可能 その他の機能が欲しい場合は、 拡張ライブラリ PEAR*1 のパッケージ 等を使用する PHP Extension and Application Repository http://pear.php.net/ PHPとIPv6 PHP 5 から IPv6 に対応 http://www.php.net/ChangeLog-5.php (Version 5.0.0 Beta 1 欄) - 78 -
  • 80. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. PHPの対応状況 考慮すべき要素 対応状況 備考 名前解決 ○ dns_get_record() gethostbyaddr() PEAR Net_DNS2 ソケット ○ inet_pton(), inet_ptop()は 5.1.0 以降 対応 各種(L7) プロトコル HTTP クライアント ○ 各種ファイル関数(fopenなど) cURLなど SMTP クライアント ○ PEAR Net_SMTP mail(), PEAR Mail ⇒システム環境依存 その他 IPv6アドレス の処理 ○ PEAR Net_IPv6拡張パッケージ - 79 -
  • 81. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【PHP】名前解決 正引き dns_get_record 引数で指定したRRの情報を取得して、配列で返す 逆引き gethostbyaddr 引数で指定したアドレスに対応するホスト名を返す - 80 - // www.iajapan.org の IPv6 アドレス (AAAA レコード) を検索 $result = dns_get_record('www.iajapan.org', DNS_ALL); $result = gethostbyaddr(‘192.168.0.1'); $result = gethostbyaddr(‘2001:db8:0:1::1:1');
  • 82. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【PHP】HTTPクライアント URLをオープンする fopen() ファイルを開くのと同様にURLを指定して開くことができる (php.ini にて allow_url_fopen を有効にしている場合のみ) - 81 - $fh = fopen(“http://www.iajapan.org/ipv6/summit/FUKUOKA2014.html”, “r”); $fh = fopen(“http://[2001:db8::1]”, “r”); ※URLにIPv6アドレスを指定する場合には [ ] で括る
  • 83. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 【PHP】アドレス処理 PEAR::Net_IPv6 IPv6 アドレスに関する処理を行う http://pear.php.net/package/Net_IPv6 下記のようなメソッドを提供する checkIPv6() : IPv6のアドレスとして正しいか検証 compress() : IPアドレスの短縮 uncompress() : IPアドレスの伸長 isInNetmask() : IPが指定したアドレス空間にあるか どうかを調べる - 82 -
  • 84. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 3.3. 他のLLの対応状況 - 83 -
  • 85. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 他のLLの対応状況 以下を参照ください InternetWeek 2012「スクリプト言語とIPv6 -2012-」 /関根 佳直 氏 https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/t7/t7-sekine.pdf InternetWeek 2011「Lightweight LanguageとIPv6」 /関根 佳直 氏 https://www.nic.ad.jp/ja/materials/iw/2011/proceedings/t5/t5-03.pdf - 84 -
  • 86. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 3章まとめ Perl:5.14以降は概ねIPv6対応 IO::Socket::INETに起因して非対応のモジュールは、 Net::INET6Glue を利用することでIPv6対応可 PHP:PHP5以降はIPv6対応 Python, Rubyも概ねIPv6対応 - 85 -
  • 87. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. 4. VPS/IaaSのIPv6対応状況 - 86 -
  • 88. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. VPS/IaaSに見られるIPv6対応方法 構成イメージ 備考 IPv6ネイティブ 先述の「DMZのIPv6対応 方式」における「パラレ ルスタック」もしくは 「デュアルスタック」 トランスレーション 先述の「DMZのIPv6対応 方式」における「トラン スレーション」と同じ IPv6トンネリング トンネルルータ⇔Web サーバ間において、IPv6 をIPv4でトンネル - 87 - ルータ Web サーバ IPv6 IPv6 internet トンネル ルータ Web サーバ IPv6 IPv6 トンネル internet ロード バランサ 等 Web サーバ IPv6 IPv4 internet IPv4
  • 89. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. VPS/IaaSのIPv6対応状況の注意事項 サービス提供企業がWebサイトで公開している 情報を元にまとめたものです 2014年10月20日現在の情報です ここに記載されている特定のサービスの利用を 薦めるものではありません - 88 - 情報に誤りがありましたら、ご指摘ください
  • 90. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. VPS/IaaSの対応状況① 企業名 サービス 名 対応状況 対応方式 URL Amazon AWS ▲※ トランス レーション http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/using-elb-ipv6.html (Note欄) Google Google Compute Engine × - https://cloud.google.com/compute/docs/networking IBM SoftLayer ○ ネイティブ http://www.softlayer.com/network Microsoft Azure × - http://azure.microsoft.com/ ja-jp/pricing/faq/ - 89 - ※AWSの対応状況については、現状、VPC環境で利用できない
  • 91. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. VPS/IaaSの対応状況② 企業名 サービス 名 対応状況 対応方式 URL ABLENET ABLENET ○ ? http://www.ablenet.jp/vps/ spec/index.html GMOイン ターネッ ト ConoHa ○ ? https://www.conoha.jp/features (スペックシート) さくらイ ンター ネット さくらの VPS ○ ? http://vps.sakura.ad.jp/specification.html さくらイ ンター ネット さくらの クラウド トライアル 提供 トンネル (6rd) http://research.sakura.ad.jp/6rd-trial/ DTI ServerMan@VPS ○ ? http://dream.jp/vps/service.html - 90 -
  • 92. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. VPS/IaaSの対応状況③ 企業名 サービス 名 対応状況 対応方式 URL BIGLOBE BIGLOBE クラウド ホスティ ング ○ ? http://cloud.biglobe.ne.jp/hosting/spec/ IIJ IIJ GIO ホ スティン グパッ ケージ サービス ○ ? http://www.iij.ad.jp/biz/hosting/spec.html NIFTY NIFTY Cloud × - http://cloud.nifty.com/cs/catalog/cloud_faq/catalog_121217001082_1.htm NTTコ ミュニ ケーショ ンズ Bizホス ティング Enterprise Cloud × (今後対応 予定) - http://www.ntt.com/bhec/data/roadmap.html - 91 -
  • 93. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. おわりに - 92 -
  • 94. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. まとめ① IPv6を使える環境が増えている IPv4とIPv6は互換性なし WebサービスのIPv6対応にはアプリケーションの 対応が不可欠 IPアドレスのハードコーディングは ダメ。ゼッタイ。 93
  • 95. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. まとめ② アプリケーションのIPv6対応の基本方針 IPv6対応=IPv6/IPv4の両方で動作させること シングルソースコードで対応する アプリケーションのIPv6対応のポイント 1.IPv4/IPv6両対応のプログラミング言語と実行環境を使う 2.通信処理をIPv4/IPv6の両方に対応させる 3.データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる LLは概ねIPv6に対応済み 94 決して難しくない! 今日から開発するWebサービスはIPv6に対応させよう!
  • 96. 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 - 95 -
  • 97. Copyright ©2014 FUJISOFT INCORPORATED, All rights reserved. ご清聴いただき、 ありがとうございました - 96 -