SlideShare a Scribd company logo
IPv6 アプリケーション開発入門
2016年11月28日
技術本部 技術開発部
渡辺 露文
IPv6 Summit in TOKYO 2016
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
自己紹介
渡辺 露文(わたなべ つゆふみ)
twatanab [at] fsi .co.jp
 所属
 富士ソフト株式会社 技術本部 技術開発部
 エキスパート(ネットワーク、セキュリティ)
 経歴
 インフラエンジニアとしてDCでのシステム構築や、研究開発、社内インフラの
構築・運用を経て、現在は、セキュリティ技術の調査・技術者教育、OSS利用
管理などに従事
 コミュニティでの活動
 IPv6普及高度化推進協議会
 アプリケーションのIPv6対応検討SWG
 IPv6導入に起因する問題検討SWG
 脅威分析研究会
 脆弱性診断研究会
- 1 -
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
Introduction
- 2 -
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
Do you know …
- 3 -
IPv6 ?
Internet Protocol version 6
インターネットの通信に関する規約(RFC791)
IPネットワークに接続するには1つ以上のIPアドレスが必要
皆さんが馴染んでいるのはIPv4(例:10.1.2.3)
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
もっとも認識すべきこと
- 4 -
IPv4 同士、IPv6 同士は通信可能だが、
IPv4 と IPv6 は直接通信できない
IPv4とIPv6は互換性がない
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPv4とIPv6の接続性
Internet
IPv4対応
(IPv6非対応)
システム
IPv4/IPv6
両対応システム
IPv6対応
(IPv4非対応)
システム
(1)
(2)
(3)
IPv4端末
IPv4/IPv6
両対応端末
IPv6端末
IPv4
IPv6
- 5 -
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
今年5月 Apple のアナウンス
 2016/6/1 から、App
Store に載せるアプリは、
IPv6-only ネットワークで
動作しないといけない
ほとんどのアプリは何も変更
しなくて大丈夫なはず
もし、IPv4固有のAPIやIPア
ドレスをハードコードしてた
ら、(Networking Overview
の)「Supporting IPv6
DNS64/NAT64 Networks」
を読んで対応してね
- 6 -
https://developer.apple.com/news/?id=05042016a
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
今年9月 マイクロソフトのアナウンス
 AzureがIPv6に対応!
ネイティブでIPv6をサポート
対象
 ロードバランサ―
 Azure VM
– デュアルスタック
- 7 -
https://docs.microsoft.com/ja-jp/azure/load-
balancer/load-balancer-ipv6-overview
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
今年8月および10月の AWS のアナウンス
 IPv6サポート開始
Amazon S3, S3 Transfer Acceleration
CloudFront
WAF
- 8 -
https://aws.amazon.com/jp/blogs/news/now-available-
ipv6-support-for-amazon-s3/
https://aws.amazon.com/jp/blogs/aws/ipv6-support-
update-cloudfront-waf-and-s3-transfer-acceleration/
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
最近の流れ
 今年、大御所の IPv6 対応/ IPv6 対応義務化が目立った
Apple: iOS App Store 登録アプリのIPv6対応義務化
Microsoft: Azure VM およびロードバランサの IPv6 サポート
AWS:S3, CloudFront のIPv6サポート
- 9 -
アプリケーションも IPv6 対応で作る時代が到来
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
Summary
 このセッションで伝えたいこと:
基本方針とアプリケーションIPv6対応 3原則 に沿って対応を!
 IPv6対応の前提
1. IPアドレス直書き禁止!FQDNを使用する
2. IPアドレスでユーザを識別しない
3. 同時に多数のセッションを張らない
 基本方針
 IPv6対応=IPv6/IPv4の両方で動作させること
 シングルソースコードで対応する
 3原則
1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う
2. 通信処理をIPv4/IPv6の両方に対応させる
3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に対応させる
10
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
Agenda
1. アプリケーションIPv6対応 その前に
2. IPv6対応アプリケーション開発入門
1. プログラミング言語と実行環境
2. 通信処理の対応
3. データとして扱う箇所の対応
11
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
1. アプリケーションIPv6対応
その前に
12
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
とあるソースコード
 このコード、イケてない…
13
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 ©2016 FUJISOFT INCORPORATED, All rights reserved.
とあるソースコード
 このコード、イケてない…
14
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 ©2016 FUJISOFT INCORPORATED, All rights reserved.
他にもイケてないコードがある
 とある Androidプログラミング書籍に
おけるソケット通信のサンプルコード
- 15 -
public class SocketEx…
…
…
private final static String IP=“192.168.11.12”;//★変更必須
良い子はマネしちゃダメ
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPアドレスの誤用を防ぐ(1)
 IPアドレス直書きの場合、IPv6対応に関わらず、
IPアドレス変更時に修正が必要となる
 ハードコーディング厳禁!
ハードコーディングの場合は要コンパイル、再テスト、再配布…
 IPアドレスの管理はインフラに任せるべき
最大限OS環境を利用
独自実装は不具合を生みやすい
16
前提1
IPアドレス直書き禁止!FQDNを使用する
1. アプリケーションIPv6対応 その前に
ダメ。ゼッタイ。
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
なぜIPアドレス直書きがダメなのか?
17
アプリケーションは、IPアドレスに依存すべきではない
目的 変更・改修の理由
アプリケーション 機能の
提供
 業務要件の変更
 サービス内容の変更
 ユーザビリティ向上 …,etc.
インフラ 資源の
提供
 資源管理(IPアドレス、サーバリソース
…)
 性能
互いに変更の影響を受けるべきではない
同一システムでも変更・改修の理由・時期は異なる
1. アプリケーションIPv6対応 その前に
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPアドレスの誤用を防ぐ…(2)
 IPアドレスはユーザに割当てるべきものではない
 IPアドレスから端末を一意に特定できない
IPv6に限らず、1台の端末で複数のアドレスを使用することが
当たり前になっている(4G + WiFiなど)
大規模NATに限らず、NATにより複数の端末に同一のIPアドレスが
割当てられることが当たり前になっている
 端末からユーザを一意に特定できない
18
前提2
IPアドレスでユーザを識別しない
1. アプリケーションIPv6対応 その前に
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPv6へ移行しない環境への配慮
 今後、IPv6化が行われないアクセス網で用いられる大規模
NAT(CGN)では、一人あたりのセッション数が少なくな
るため、同時に張るセションは最小限に留めるべき
特にモバイル通信網が顕著になることが予想される
 むしろセッション/コネクションを使い回すのが最近の流れ
HTTP/2, Web Socket
19
前提3
同時に多数のセッションを張らない
CGN(Carrier-Grade NAT):
インターネットサービスプロバイダ(ISP)などの電気通信事業者が、自社内のネッ
トワークと他社のネットワークの分界点付近でネットワークアドレス変換(NAT)を
行うこと。
1. アプリケーションIPv6対応 その前に
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
各プラットフォームの公式ドキュメントを参照
 Microsoft環境
 MSDN
 https://msdn.microsoft.com/library
 Apple
 日本語ドキュメント – Apple Developer
 https://developer.apple.com/jp/documentation/
 ネットワーク周りは「Networking Overview」
 IPv6(DNS64/NAT64)への対応方法も丁寧に書かれている
 https://developer.apple.com/jp/documentation/NetworkingInternetW
eb/Conceptual/NetworkingOverview/Introduction/Introduction.html
 Android
 Android デベロッパー
 https://developer.android.com/index.html
20
1. アプリケーションIPv6対応 その前に
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
2. アプリケーションIPv6対応概要
21
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
 送信側、受信側、中継者のそれぞれが対応する必要がある
 システム、サービスとして対応するためには、
アプリケーションも対応しないといけない
IPv4 同士、IPv6 同士は通信可能だが、
IPv4 と IPv6 は直接通信できない
もっとも認識すべきこと
- 22 -
IPv4とIPv6は互換性がない
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
アプリケーションIPv6対応の基本方針
IPv6とIPv4の共存期間が長く続く
これまでIPv4で提供してきたサービスは、今後も継続してIPv4でも
動作する必要あり
各開発言語が概ねIPv6に対応しており、プロトコルによって開発言
語を分ける必要がなくなった
アプリケーションのメンテナンス性を重視し、プロトコルによって
機能差異が生じることを未然に防ぐ
23
IPv6対応 =
IPv4とIPv6の両方で動作する
シングルソースコードで対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
アプリケーションIPv6対応のポイント
24
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/
フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,
ソケット通信など
クライアント サーバ
①IPv4/IPv6両対応の
プログラミング言語と実行環境を使う
②通信処理をIPv4/IPv6の
両方に対応させる
③データとしてIPアドレスを
扱う箇所をIPv4/IPv6の
両方に対応させる
2. アプリケーションIPv6対応概要
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
2-1. プログラミング言語と実行環境
原則1:IPv4/IPv6両対応のサーバ、ミドルウェア、ライラリ、API
を採用する
 プログラミング言語と実行環境に求められること:
IPv4/IPv6両方で通信できる
1. 名前解決でIPv4/IPv6両方のアドレスが扱える
2. IPv4/IPv6両方で接続できる
25
原則1
IPv4/IPv6両対応のプログラミング言語と実行環境を使う
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/
フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,
ソケット通信など
クライアント サーバ
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPv6とDNS
 アプリケーションのIPv6環境での動作には、DNSのIPv6
対応が不可欠
 IPv6アドレスの名前解決に必要なこと
EDNS0対応のDNSサーバ/クライアント
AAAAレコードの記載
26
Client
Web Server
www.example.jp
2001:db8:100::1
DNS Server
 EDNS0対応のDNSサー
バソフトウェアを使う
 AAAAレコード(IPv4の
Aレコードに相当)をリ
ソースレコードに登録
www.example.jp IN AAAA 2001:db8:100::1
①名前解決問合せ
www.example.jp ?
②AAAA応答
2001:db8:100::1
③HTTP通信
2-1. プログラミング言語と実行環境
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
プログラミングにおける留意点
 IPv4/IPv6の双方に対応するライブラリ、オブジェクト、
関数、データ型を使う
従来(IPv4のみ)のものとは別に用意されていることがある
 C addrinfo構造体、getaddrinfo()
 Java InetAddressクラス
 Perl IO::Socket::IP など
 アドレス検証、変換などはライブラリを有効活用
27
2-1. プログラミング言語と実行環境
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
2-2. 通信処理の対応
 通信処理のIPv6対応で行うべきこと
接続の試行順序を理解する
IPv4/IPv6いずれかが通信できない状況を想定する
アルゴリズムを見直す
 クライアントプログラム:フォールバック時の迅速な切り替え
 サーバプログラム:IPv4/IPv6 両プロトコルでの接続を処理
28
原則2
通信処理をIPv4/IPv6の両方に対応させる
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/
フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,
ソケット通信など
クライアント サーバ
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
接続の試行順序
 IPv4/IPv6の両方で接続可能ということは…
接続の試行順序がある
 RFC3484およびRFC6724で定義されるアドレス選択の優先順位に従う
 ポリシーテーブルをカスタマイズすることにより変更可能
接続失敗時には別の宛先アドレスに切替えて接続する
(=フォールバック)
 アプリケーションの作りが悪いと…
– 切り換えに時間がかかる
– 正常に切り替わらないこともある
29
接続の優先順位: IPv6 > IPv4
2-2. 通信処理の対応
ユーザの利便性を
損なう
フォールバック問題
いずれかが接続できない状況も想定に入れ、接続失敗時
に接続先を迅速に切替えて接続する作りにする
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
フォールバック(1)
 接続できない場合に別の接続先への接続に切替える動作
IPv6⇒IPv4 / IPv6⇒IPv6 / IPv4⇒IPv4 / IPv4⇒IPv6
30
2-2. 通信処理の対応
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 ©2016 FUJISOFT INCORPORATED, All rights reserved.
フォールバック(2)
 想定される主な原因
サーバが当該のサービスを提供していない【サーバ側の問題】
 DNS誤登録、障害等
ネットワークの接続性が失われている【経路の問題】
 グローバルアドレスを利用している閉域網等
サーバへの到達性がないアドレスで通信を行おうとしている
【クライアント側の問題】
 予防策
設定の不備を修正する
 サービスを提供していないIPアドレスをDNSに登録しない
 サービスを適切に提供する
ネットワークの接続性を健全に保つ
ポリシーテーブルをカスタマイズする
 ポリシーテーブル:アドレス選択の優先順位を制御するテーブル
31
2-2. 通信処理の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
クライアントプログラム
 フォールバックを迅速に行う
ホスト名の名前解決結果をリスト形式で取得し、アドレスリストの
順に接続を試み、接続が確立したものと送受信を行う(RFC6724
に準拠させる)
更に迅速にフォールバックを行うために、Happy Eyeballs
(RFC6555)も選択肢の一つ
32
ホスト名解決
(DNS問合せ)
接続成功?
Yes
No
1件取得
ホスト名解決
(DNS問合せ)
接続成功?
Yes
No
リスト取得
リスト先頭取出し
Good!Bad!
2-2. 通信処理の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
サーバプログラム
 IPv4/IPv6両方の接続を同時に
受付ける2種類の手法
1. 2プロセス型
 同一プログラムをIPv4用、
IPv6用それぞれ起動
 既存プログラムの
アルゴリズムは変更せず
起動時にIPv4/IPv6を選択
 例:vs-ftpd
2. 1プロセス型
 単一のプロセスで
IPv4/IPv6両方の接続を処理
 接続待受を並列化
 例:Apache HTTP Server,
Postfixなど
33
サーバ
プロセスA
プロセスB
IPv6
IPv4
プログラム α
起動
起動接続
接続
サーバ
プロセスC
IPv6
IPv4
プログラム β
起動
接続
接続
:ソケット
2-2. 通信処理の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
iOSアプリ、Androidアプリでは…
 プラットフォームが提供するAPIでこの辺を対応
⇒ 開発者に、この辺を意識させない
 iOSアプリ
高レベルネットワークフレームワークの使用を推奨
 「Networking Overview」の中で明記
 WebKit:Webページを読込む複雑なプロセスに対応
 Cocoa URL:アプリケーションでURLと参照先のリソースを操作
 CFNetwork.Core Services:さまざまなネットワークタスク
 Androidアプリ
Web:WebView(Android.webkit.WebView)、
HttpURLConnection(java.net.HttpURLConnection)
Web以外:Socket(java.net.Socket)
34
2-2. 通信処理の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
2-3. データとして扱う箇所の対応
 原則4:データとしてIPアドレスを扱う箇所は領域を拡張しIPv6アド
レスも格納できるようにする
データとして扱う箇所
35
原則3
データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に
対応させる
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/
フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,
ソケット通信など
クライアント サーバ
 入力  格納  出力
 検索  ソート
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPv4/IPv6アドレス比較
 例
IPv4)192.0.2.1
IPv6完全表記)2001:db8:0000:0000:0001:0000:0000:0001
IPv6省略表記)2001:db8::1:0:0:1
36
IPv4アドレス IPv6アドレス
アドレス長 32bit 128bit
文字列
表記
表記法 8bitずつ区切り、
10進数で表記
16bitずつ区切り、
16進数で表記
区切り文字 . (ドット) : (コロン)
文字列長 15文字以内 39文字以内
RFC5952に
従い表記する
2-3. データとして扱う箇所の対応
サブネットマスク/プレフィックス長を
考慮すると、上記+”/”+数字3文字
例外あり(ゾーンID・スコープID、射影アドレス)
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
IPアドレスの入力・格納
 文字列で入力・格納
 入力値の検証はライブラリの関数・フィルタを利用
例)
filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)
 ネットワークアドレス用のデータ型があれば、それを利用
データ型とセットで関数が用意されていると更に便利
例) PostgreSQLのネットワークアドレス型
37
IPv4のみ 15文字以内の文字列 [VARCHAR(15)]
もしくは整数×4
IPv4/IPv6両対応 39文字以内の文字列 [VARCHAR(39)]
Good!
Bad!
2-3. データとして扱う箇所の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
出力への影響と検索・パターンマッチング
 出力への影響
体裁を整える出力やデータ加工では注意が必要
 アドレス部分の文字列長が長くなる
 アドレスの区切り文字が変わる
 検索・パターンマッチング
検索文字列と検索対象を、省略表記もしくは完全表記で
統一する
 省略表記⇔完全表記の変換はライブラリを有効活用する
過去に開発されたシステム・ツールでは、RFC5952に準拠しない省
略表記が存在しうるので要注意
38
2-3. データとして扱う箇所の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
ソート(1)
 推奨表記のままソートしてもアドレス昇順にはならない
39
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
省略表記の
ソートは
アドレス昇順と
一致しない
アドレス
昇順
2-3. データとして扱う箇所の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
ソート(2)
 ソートは完全表記で行う
40
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
(文字列)
ソート
完全表記
完全表記のソートは
アドレス昇順と
一致
2-3. データとして扱う箇所の対応
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
まとめ
41
Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.
まとめ
 基本方針とアプリケーションIPv6対応 3原則 に沿って対応を!
 IPv6対応の前提
1. IPアドレス直書き禁止!FQDNを使用する
2. IPアドレスでユーザを識別しない
3. 同時に多数のセッションを張らない
 IPv6対応の基本方針
 IPv6対応=IPv6/IPv4の両方で動作させること
 シングルソースコードで対応する
 IPv6対応の3原則
1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う
2. 通信処理をIPv4/IPv6の両方に対応させる
3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に対応させる
42
Copyright ©2016 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
- 43 -

More Related Content

What's hot

Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
Kiyoshi Ogawa
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
株式会社 NTTテクノクロス
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
 
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter MeasurementIoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
Kiyoshi Ogawa
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
Michitaka Terada
 
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア外道 父
 
safety and security using Raspberry PI
safety and security using Raspberry PIsafety and security using Raspberry PI
safety and security using Raspberry PI
Kiyoshi Ogawa
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
Yuya Rin
 
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
NTT DATA OSS Professional Services
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo!デベロッパーネットワーク
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
 
IPv6標準化と実装
IPv6標準化と実装IPv6標準化と実装
IPv6標準化と実装
Shinsuke SUZUKI
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
 
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
Taiji Tsuchiya
 
CMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 updateCMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 update
OSSラボ株式会社
 

What's hot (20)

Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter MeasurementIoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア
 
safety and security using Raspberry PI
safety and security using Raspberry PIsafety and security using Raspberry PI
safety and security using Raspberry PI
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
 
IPv6標準化と実装
IPv6標準化と実装IPv6標準化と実装
IPv6標準化と実装
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
 
CMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 updateCMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 update
 

Similar to IPv6 アプリケーション開発入門

20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
v6app
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedback
Takashi Ito
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
OSSラボ株式会社
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Takuya Iwatsuka
 
Nishimotz pycon2011jan
Nishimotz pycon2011janNishimotz pycon2011jan
Nishimotz pycon2011jan
Takuya Nishimoto
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
Takashi Matsunaga
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
Takashi Kanai
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
Koyo Takenoshita
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
 
AppFormix勉強会資料
AppFormix勉強会資料AppFormix勉強会資料
AppFormix勉強会資料
Juniper Networks (日本)
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1Satoshi Ueno
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
 
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
Insight Technology, Inc.
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
史識 川原
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
 
dstn交流会_DataSpider のソーシャルとの融合、手組との融合
dstn交流会_DataSpider のソーシャルとの融合、手組との融合dstn交流会_DataSpider のソーシャルとの融合、手組との融合
dstn交流会_DataSpider のソーシャルとの融合、手組との融合dstn
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 

Similar to IPv6 アプリケーション開発入門 (20)

20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedback
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
 
Nishimotz pycon2011jan
Nishimotz pycon2011janNishimotz pycon2011jan
Nishimotz pycon2011jan
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
AppFormix勉強会資料
AppFormix勉強会資料AppFormix勉強会資料
AppFormix勉強会資料
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
 
dstn交流会_DataSpider のソーシャルとの融合、手組との融合
dstn交流会_DataSpider のソーシャルとの融合、手組との融合dstn交流会_DataSpider のソーシャルとの融合、手組との融合
dstn交流会_DataSpider のソーシャルとの融合、手組との融合
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 

IPv6 アプリケーション開発入門

  • 2. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 自己紹介 渡辺 露文(わたなべ つゆふみ) twatanab [at] fsi .co.jp  所属  富士ソフト株式会社 技術本部 技術開発部  エキスパート(ネットワーク、セキュリティ)  経歴  インフラエンジニアとしてDCでのシステム構築や、研究開発、社内インフラの 構築・運用を経て、現在は、セキュリティ技術の調査・技術者教育、OSS利用 管理などに従事  コミュニティでの活動  IPv6普及高度化推進協議会  アプリケーションのIPv6対応検討SWG  IPv6導入に起因する問題検討SWG  脅威分析研究会  脆弱性診断研究会 - 1 -
  • 3. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. Introduction - 2 -
  • 4. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. Do you know … - 3 - IPv6 ? Internet Protocol version 6 インターネットの通信に関する規約(RFC791) IPネットワークに接続するには1つ以上のIPアドレスが必要 皆さんが馴染んでいるのはIPv4(例:10.1.2.3)
  • 5. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. もっとも認識すべきこと - 4 - IPv4 同士、IPv6 同士は通信可能だが、 IPv4 と IPv6 は直接通信できない IPv4とIPv6は互換性がない
  • 6. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPv4とIPv6の接続性 Internet IPv4対応 (IPv6非対応) システム IPv4/IPv6 両対応システム IPv6対応 (IPv4非対応) システム (1) (2) (3) IPv4端末 IPv4/IPv6 両対応端末 IPv6端末 IPv4 IPv6 - 5 -
  • 7. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 今年5月 Apple のアナウンス  2016/6/1 から、App Store に載せるアプリは、 IPv6-only ネットワークで 動作しないといけない ほとんどのアプリは何も変更 しなくて大丈夫なはず もし、IPv4固有のAPIやIPア ドレスをハードコードしてた ら、(Networking Overview の)「Supporting IPv6 DNS64/NAT64 Networks」 を読んで対応してね - 6 - https://developer.apple.com/news/?id=05042016a
  • 8. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 今年9月 マイクロソフトのアナウンス  AzureがIPv6に対応! ネイティブでIPv6をサポート 対象  ロードバランサ―  Azure VM – デュアルスタック - 7 - https://docs.microsoft.com/ja-jp/azure/load- balancer/load-balancer-ipv6-overview
  • 9. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 今年8月および10月の AWS のアナウンス  IPv6サポート開始 Amazon S3, S3 Transfer Acceleration CloudFront WAF - 8 - https://aws.amazon.com/jp/blogs/news/now-available- ipv6-support-for-amazon-s3/ https://aws.amazon.com/jp/blogs/aws/ipv6-support- update-cloudfront-waf-and-s3-transfer-acceleration/
  • 10. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 最近の流れ  今年、大御所の IPv6 対応/ IPv6 対応義務化が目立った Apple: iOS App Store 登録アプリのIPv6対応義務化 Microsoft: Azure VM およびロードバランサの IPv6 サポート AWS:S3, CloudFront のIPv6サポート - 9 - アプリケーションも IPv6 対応で作る時代が到来
  • 11. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. Summary  このセッションで伝えたいこと: 基本方針とアプリケーションIPv6対応 3原則 に沿って対応を!  IPv6対応の前提 1. IPアドレス直書き禁止!FQDNを使用する 2. IPアドレスでユーザを識別しない 3. 同時に多数のセッションを張らない  基本方針  IPv6対応=IPv6/IPv4の両方で動作させること  シングルソースコードで対応する  3原則 1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う 2. 通信処理をIPv4/IPv6の両方に対応させる 3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に対応させる 10
  • 12. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. Agenda 1. アプリケーションIPv6対応 その前に 2. IPv6対応アプリケーション開発入門 1. プログラミング言語と実行環境 2. 通信処理の対応 3. データとして扱う箇所の対応 11
  • 13. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 1. アプリケーションIPv6対応 その前に 12
  • 14. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. とあるソースコード  このコード、イケてない… 13 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”; :
  • 15. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. とあるソースコード  このコード、イケてない… 14 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アドレス直書き?
  • 16. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 他にもイケてないコードがある  とある Androidプログラミング書籍に おけるソケット通信のサンプルコード - 15 - public class SocketEx… … … private final static String IP=“192.168.11.12”;//★変更必須 良い子はマネしちゃダメ
  • 17. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPアドレスの誤用を防ぐ(1)  IPアドレス直書きの場合、IPv6対応に関わらず、 IPアドレス変更時に修正が必要となる  ハードコーディング厳禁! ハードコーディングの場合は要コンパイル、再テスト、再配布…  IPアドレスの管理はインフラに任せるべき 最大限OS環境を利用 独自実装は不具合を生みやすい 16 前提1 IPアドレス直書き禁止!FQDNを使用する 1. アプリケーションIPv6対応 その前に ダメ。ゼッタイ。
  • 18. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. なぜIPアドレス直書きがダメなのか? 17 アプリケーションは、IPアドレスに依存すべきではない 目的 変更・改修の理由 アプリケーション 機能の 提供  業務要件の変更  サービス内容の変更  ユーザビリティ向上 …,etc. インフラ 資源の 提供  資源管理(IPアドレス、サーバリソース …)  性能 互いに変更の影響を受けるべきではない 同一システムでも変更・改修の理由・時期は異なる 1. アプリケーションIPv6対応 その前に
  • 19. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPアドレスの誤用を防ぐ…(2)  IPアドレスはユーザに割当てるべきものではない  IPアドレスから端末を一意に特定できない IPv6に限らず、1台の端末で複数のアドレスを使用することが 当たり前になっている(4G + WiFiなど) 大規模NATに限らず、NATにより複数の端末に同一のIPアドレスが 割当てられることが当たり前になっている  端末からユーザを一意に特定できない 18 前提2 IPアドレスでユーザを識別しない 1. アプリケーションIPv6対応 その前に
  • 20. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPv6へ移行しない環境への配慮  今後、IPv6化が行われないアクセス網で用いられる大規模 NAT(CGN)では、一人あたりのセッション数が少なくな るため、同時に張るセションは最小限に留めるべき 特にモバイル通信網が顕著になることが予想される  むしろセッション/コネクションを使い回すのが最近の流れ HTTP/2, Web Socket 19 前提3 同時に多数のセッションを張らない CGN(Carrier-Grade NAT): インターネットサービスプロバイダ(ISP)などの電気通信事業者が、自社内のネッ トワークと他社のネットワークの分界点付近でネットワークアドレス変換(NAT)を 行うこと。 1. アプリケーションIPv6対応 その前に
  • 21. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 各プラットフォームの公式ドキュメントを参照  Microsoft環境  MSDN  https://msdn.microsoft.com/library  Apple  日本語ドキュメント – Apple Developer  https://developer.apple.com/jp/documentation/  ネットワーク周りは「Networking Overview」  IPv6(DNS64/NAT64)への対応方法も丁寧に書かれている  https://developer.apple.com/jp/documentation/NetworkingInternetW eb/Conceptual/NetworkingOverview/Introduction/Introduction.html  Android  Android デベロッパー  https://developer.android.com/index.html 20 1. アプリケーションIPv6対応 その前に
  • 22. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 2. アプリケーションIPv6対応概要 21
  • 23. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved.  送信側、受信側、中継者のそれぞれが対応する必要がある  システム、サービスとして対応するためには、 アプリケーションも対応しないといけない IPv4 同士、IPv6 同士は通信可能だが、 IPv4 と IPv6 は直接通信できない もっとも認識すべきこと - 22 - IPv4とIPv6は互換性がない
  • 24. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応の基本方針 IPv6とIPv4の共存期間が長く続く これまでIPv4で提供してきたサービスは、今後も継続してIPv4でも 動作する必要あり 各開発言語が概ねIPv6に対応しており、プロトコルによって開発言 語を分ける必要がなくなった アプリケーションのメンテナンス性を重視し、プロトコルによって 機能差異が生じることを未然に防ぐ 23 IPv6対応 = IPv4とIPv6の両方で動作する シングルソースコードで対応
  • 25. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. アプリケーションIPv6対応のポイント 24 Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ ①IPv4/IPv6両対応の プログラミング言語と実行環境を使う ②通信処理をIPv4/IPv6の 両方に対応させる ③データとしてIPアドレスを 扱う箇所をIPv4/IPv6の 両方に対応させる 2. アプリケーションIPv6対応概要
  • 26. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 2-1. プログラミング言語と実行環境 原則1:IPv4/IPv6両対応のサーバ、ミドルウェア、ライラリ、API を採用する  プログラミング言語と実行環境に求められること: IPv4/IPv6両方で通信できる 1. 名前解決でIPv4/IPv6両方のアドレスが扱える 2. IPv4/IPv6両方で接続できる 25 原則1 IPv4/IPv6両対応のプログラミング言語と実行環境を使う Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ
  • 27. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPv6とDNS  アプリケーションのIPv6環境での動作には、DNSのIPv6 対応が不可欠  IPv6アドレスの名前解決に必要なこと EDNS0対応のDNSサーバ/クライアント AAAAレコードの記載 26 Client Web Server www.example.jp 2001:db8:100::1 DNS Server  EDNS0対応のDNSサー バソフトウェアを使う  AAAAレコード(IPv4の Aレコードに相当)をリ ソースレコードに登録 www.example.jp IN AAAA 2001:db8:100::1 ①名前解決問合せ www.example.jp ? ②AAAA応答 2001:db8:100::1 ③HTTP通信 2-1. プログラミング言語と実行環境
  • 28. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. プログラミングにおける留意点  IPv4/IPv6の双方に対応するライブラリ、オブジェクト、 関数、データ型を使う 従来(IPv4のみ)のものとは別に用意されていることがある  C addrinfo構造体、getaddrinfo()  Java InetAddressクラス  Perl IO::Socket::IP など  アドレス検証、変換などはライブラリを有効活用 27 2-1. プログラミング言語と実行環境
  • 29. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 2-2. 通信処理の対応  通信処理のIPv6対応で行うべきこと 接続の試行順序を理解する IPv4/IPv6いずれかが通信できない状況を想定する アルゴリズムを見直す  クライアントプログラム:フォールバック時の迅速な切り替え  サーバプログラム:IPv4/IPv6 両プロトコルでの接続を処理 28 原則2 通信処理をIPv4/IPv6の両方に対応させる Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ
  • 30. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 接続の試行順序  IPv4/IPv6の両方で接続可能ということは… 接続の試行順序がある  RFC3484およびRFC6724で定義されるアドレス選択の優先順位に従う  ポリシーテーブルをカスタマイズすることにより変更可能 接続失敗時には別の宛先アドレスに切替えて接続する (=フォールバック)  アプリケーションの作りが悪いと… – 切り換えに時間がかかる – 正常に切り替わらないこともある 29 接続の優先順位: IPv6 > IPv4 2-2. 通信処理の対応 ユーザの利便性を 損なう フォールバック問題 いずれかが接続できない状況も想定に入れ、接続失敗時 に接続先を迅速に切替えて接続する作りにする
  • 31. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. フォールバック(1)  接続できない場合に別の接続先への接続に切替える動作 IPv6⇒IPv4 / IPv6⇒IPv6 / IPv4⇒IPv4 / IPv4⇒IPv6 30 2-2. 通信処理の対応 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) フォールバック
  • 32. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. フォールバック(2)  想定される主な原因 サーバが当該のサービスを提供していない【サーバ側の問題】  DNS誤登録、障害等 ネットワークの接続性が失われている【経路の問題】  グローバルアドレスを利用している閉域網等 サーバへの到達性がないアドレスで通信を行おうとしている 【クライアント側の問題】  予防策 設定の不備を修正する  サービスを提供していないIPアドレスをDNSに登録しない  サービスを適切に提供する ネットワークの接続性を健全に保つ ポリシーテーブルをカスタマイズする  ポリシーテーブル:アドレス選択の優先順位を制御するテーブル 31 2-2. 通信処理の対応
  • 33. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. クライアントプログラム  フォールバックを迅速に行う ホスト名の名前解決結果をリスト形式で取得し、アドレスリストの 順に接続を試み、接続が確立したものと送受信を行う(RFC6724 に準拠させる) 更に迅速にフォールバックを行うために、Happy Eyeballs (RFC6555)も選択肢の一つ 32 ホスト名解決 (DNS問合せ) 接続成功? Yes No 1件取得 ホスト名解決 (DNS問合せ) 接続成功? Yes No リスト取得 リスト先頭取出し Good!Bad! 2-2. 通信処理の対応
  • 34. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. サーバプログラム  IPv4/IPv6両方の接続を同時に 受付ける2種類の手法 1. 2プロセス型  同一プログラムをIPv4用、 IPv6用それぞれ起動  既存プログラムの アルゴリズムは変更せず 起動時にIPv4/IPv6を選択  例:vs-ftpd 2. 1プロセス型  単一のプロセスで IPv4/IPv6両方の接続を処理  接続待受を並列化  例:Apache HTTP Server, Postfixなど 33 サーバ プロセスA プロセスB IPv6 IPv4 プログラム α 起動 起動接続 接続 サーバ プロセスC IPv6 IPv4 プログラム β 起動 接続 接続 :ソケット 2-2. 通信処理の対応
  • 35. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. iOSアプリ、Androidアプリでは…  プラットフォームが提供するAPIでこの辺を対応 ⇒ 開発者に、この辺を意識させない  iOSアプリ 高レベルネットワークフレームワークの使用を推奨  「Networking Overview」の中で明記  WebKit:Webページを読込む複雑なプロセスに対応  Cocoa URL:アプリケーションでURLと参照先のリソースを操作  CFNetwork.Core Services:さまざまなネットワークタスク  Androidアプリ Web:WebView(Android.webkit.WebView)、 HttpURLConnection(java.net.HttpURLConnection) Web以外:Socket(java.net.Socket) 34 2-2. 通信処理の対応
  • 36. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 2-3. データとして扱う箇所の対応  原則4:データとしてIPアドレスを扱う箇所は領域を拡張しIPv6アド レスも格納できるようにする データとして扱う箇所 35 原則3 データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に 対応させる Ethernet IP(v4/v6) TCP / UDP アプリケーション OS ミドルウェア/ フレームワーク アプリケーション OS フレームワーク HTTP/HTTPS SMTP, SSH, ソケット通信など クライアント サーバ  入力  格納  出力  検索  ソート
  • 37. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPv4/IPv6アドレス比較  例 IPv4)192.0.2.1 IPv6完全表記)2001:db8:0000:0000:0001:0000:0000:0001 IPv6省略表記)2001:db8::1:0:0:1 36 IPv4アドレス IPv6アドレス アドレス長 32bit 128bit 文字列 表記 表記法 8bitずつ区切り、 10進数で表記 16bitずつ区切り、 16進数で表記 区切り文字 . (ドット) : (コロン) 文字列長 15文字以内 39文字以内 RFC5952に 従い表記する 2-3. データとして扱う箇所の対応 サブネットマスク/プレフィックス長を 考慮すると、上記+”/”+数字3文字 例外あり(ゾーンID・スコープID、射影アドレス)
  • 38. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. IPアドレスの入力・格納  文字列で入力・格納  入力値の検証はライブラリの関数・フィルタを利用 例) filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)  ネットワークアドレス用のデータ型があれば、それを利用 データ型とセットで関数が用意されていると更に便利 例) PostgreSQLのネットワークアドレス型 37 IPv4のみ 15文字以内の文字列 [VARCHAR(15)] もしくは整数×4 IPv4/IPv6両対応 39文字以内の文字列 [VARCHAR(39)] Good! Bad! 2-3. データとして扱う箇所の対応
  • 39. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. 出力への影響と検索・パターンマッチング  出力への影響 体裁を整える出力やデータ加工では注意が必要  アドレス部分の文字列長が長くなる  アドレスの区切り文字が変わる  検索・パターンマッチング 検索文字列と検索対象を、省略表記もしくは完全表記で 統一する  省略表記⇔完全表記の変換はライブラリを有効活用する 過去に開発されたシステム・ツールでは、RFC5952に準拠しない省 略表記が存在しうるので要注意 38 2-3. データとして扱う箇所の対応
  • 40. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. ソート(1)  推奨表記のままソートしてもアドレス昇順にはならない 39 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 省略表記の ソートは アドレス昇順と 一致しない アドレス 昇順 2-3. データとして扱う箇所の対応
  • 41. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. ソート(2)  ソートは完全表記で行う 40 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 (文字列) ソート 完全表記 完全表記のソートは アドレス昇順と 一致 2-3. データとして扱う箇所の対応
  • 42. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. まとめ 41
  • 43. Copyright ©2016 FUJISOFT INCORPORATED, All rights reserved. まとめ  基本方針とアプリケーションIPv6対応 3原則 に沿って対応を!  IPv6対応の前提 1. IPアドレス直書き禁止!FQDNを使用する 2. IPアドレスでユーザを識別しない 3. 同時に多数のセッションを張らない  IPv6対応の基本方針  IPv6対応=IPv6/IPv4の両方で動作させること  シングルソースコードで対応する  IPv6対応の3原則 1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う 2. 通信処理をIPv4/IPv6の両方に対応させる 3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に対応させる 42
  • 44. Copyright ©2016 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 - 43 -