SlideShare a Scribd company logo
1 of 98
Download to read offline
1
IPv6対応Webサービスの作り方
2015年2月27日
IPv6普及・高度化推進協議会
渡辺 露文  
IPv6 Summit in FUKUI 2015
渡辺 露文(わたなべ つゆふみ)
Twitter: @tsuyu23
普段は某SIer勤務
IPv6普及・高度化推進協議会 会員
IPv6導入に起因する問題検討SWG
アプリケーションのIPv6対応検討SWG
技術評論社

Software Design誌連載

(2012年12月号∼

    2014年1月号)
2
About me
3
IPv6 ?
Internet Protocol version 6
インターネットの通信に関する規約
IPネットワークに接続するには1つ以上のIPアドレスが必要
皆さんが馴染んでいるのはIPv4(例:10.1.2.3)
Do you know …
4
Agenda
1. IPv6対応の話をする前に
2. IPv6対応Webサービスの作り方
3. LL(軽量プログラミング言語)の対応状況
4. VPS/IaaSのIPv6対応状況
1. IPv6対応の話をする前に
1. Webサービスを作る上で知っておくべきIPv6の基礎
2. IPv6対応の前に気を付けるべきこと
5
最近のOS
Windows Vista以降
Mac OS X
Linux
FreeBSD
 …
6
実はIPv6を使える環境が

増えています(1)
いずれも
デフォルトで
利用可能
インターネット回線
フレッツ光ネクスト
au ひかり
NURO 光
 …
7
実はIPv6を使える環境が

増えています(2)
利用可能
既存ユーザへの自動導入も

進行中
すでに、ユーザからあなたのサービスにIPv6で

アクセスされようとしている…かもしれない
8
日本におけるIPv6の普及

状況
フレッツ光ネクストのIPv6普及率

(2014年9月)
IPv6普及率:3.9%
フレッツ光ネクスト契約数:15,805,000契約
au ひかりのIPv6普及率(2014年9月):99%
今後本格的に普及する前に

IPv6対応を始めたほうが良い
出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査
   http://v6pc.jp/jp/spread/ipv6spread_03.phtml
9
余談:確認してみよう!

IPv6でインターネットにアクセス
できるかな?
Webブラウザで http://www.test-ipv6.jp にアクセス
Webブラウザで http://www.kame.net にアクセス
IPv6でアクセスすると、亀
が踊ります♪
10
IPv6の背景:

  IPv4アドレス枯渇
IPv4アドレスの在庫状況

(地域インターネットレジストリ)
通信事業者、ISP、デー
タセンター、

クラウド事業者等の在
庫が残るのみ
世界的に足りなくなってきている
11
もはやIPv6対応しないと

時代遅れ?(1)
先日のGHOST騒ぎ…
脚注部分に注目!
「gethostbyname 関数は、
IPv6 の登場によりあまり

利用されなくなっている」‼
http://www.ipa.go.jp/security/announce/20150129-glibc.html
12
もはやIPv6対応しないと時
代遅れ?(2)
GHOSTネタをもう一つ
http://blog.trendmicro.co.jp/archives/10818
多くの新しい

アプリケーションでは、この脆弱
な「gethostbyname*()」関数では
なく、IPv6をサポートする関数
「getaddrinfo()」を使用している
1.1. Webサービスを作る上で

   知っておくべきIPv6の基礎
13
14
IPv4とIPv6とでは何が

違うのか?①
アドレス体系が異なる(IPv6のアドレス空間は広大)
例
IPv4)192.0.2.1
IPv6完全表記)
2001:0db8:0000:0000:0001:0000:0000:0001
IPv6省略表記)2001:db8::1:0:0:1(RFC5952準拠)
IPv4アドレス IPv6アドレス
アドレス長 32bit 128bit
文字列

表記
表記法 8bitずつ区切り、
10進数で表記
16bitずつ区切り、
16進数で表記
区切り文字 . (ドット) : (コロン)
文字列長 15文字以内 39文字以内
15
IPv4とIPv6とでは何が

違うのか?②
ユニキャストアドレスの構成
アドレス利用設計
IPv4では、ネットワークアドレス部の長さを調整
IPv6では、原則的にサブネットプレフィックスは固定
 
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)の場合888bit
IPv4では収容する端末の見込み台数に応じて最適な大きさの
サブネットを設計していたが、IPv6では64bit固定
グローバルスコープ
IPv4とIPv6とでは何が

違うのか?③
16
リンクローカルスコープ
リンクローカルアドレス fe80::/10
ユニークローカルアドレス fc00::/7
グローバルユニキャストアドレス 2000::/3
IPv6では1つのNICに複数のアドレスを

            有効範囲に応じて割当て、使い分ける
17
IPv4とIPv6とでは何が

違うのか?④
他にも機能的にIPv4と異なることがある
最も重要なこと:
IPv4とIPv6は互換性がない
IPv4とIPv6の接続性
18
Internet  
IPv4対応

(IPv6非対応)

システム
IPv4/IPv6

両対応システム
IPv6対応

(IPv4非対応)

システム
(1)
(2)
(3)
IPv4端末
IPv4/IPv6

両対応端末
IPv6端末
IPv4
IPv6
19
IPv6に対応しない場合の
影響
1. IPv6のみの環境と通信できない
ビジネス機会を損失する
システム連携が行えず要件を満たせなくなる
2. 今後、IPv4はサービスレベルが低下していく
通信事業者等によるCGN(Carrier Grade NAT)
導入により、遅くなったり、利用できるセッショ
ン数が少なくなったりする可能性がある
IPv6に対応しなきゃ!
20
WebサービスのIPv6対応
ネットワークとサーバがIPv6に対応すれば、IPv6で接続可能
接続は可能だが…
例えば
システム連携がうまくいかない
想定外の挙動をする
  …
アプリケーションのIPv6対応が不可欠!
サービスが正常に動作しない

かもしれない
1.2. IPv6対応の前に気を付ける

   べきこと
21
22
そのコード、イケてない…
(1)
とある Perl のプログラム
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”;

	 :

	 :
23
このコード、イケてない…
(2)
とある Androidプログラミング書籍に

おけるソケット通信のサンプルコード
public class SocketEx…
…
…
��private final static String IP=“192.168.11.12”;//★変更必須
良い子は真似しちゃダメ
24
どこがイケてない

  (というかヘン)?
IPアドレスのハードコーディングは
NG!
$host = www.example.com
のようにFQDNで接続先を指定する
ダメ。ゼッタイ。
Internet
25
ネットワークアクセスの

作法=名前解決を使う
Client
Web Server
www.example.jp
2001:db8:100::1

192.0.2.1
DNS Server
198.51.100.53
①名前解決問合せ
www.example.jp ?
②アドレス応答
www.example.jp 2001:db8:100::1

  192.0.2.1
③HTTP通信
FQDN
FQDNで接続先を指定し、DNSからアドレス取得
26
なぜIPアドレス直書きが

ダメなのか?
アプリケーションは、IPアドレスに依存すべきではない
目的 変更・改修の理由
アプリケーション 機能の提供 ■ 業務要件の変更
■ サービス内容の変更
■ ユーザビリティ向上 …,etc.
インフラ 資源の提供 ■ 資源管理(IPアドレス、サーバラック…)
■ 性能
互いに変更の影響を受けるべきではない
同一システムでも変更・改修の理由・時期は異なる
例)IPアドレスでユーザを識別すべきではない
Cookie内の情報にも気を
付ける
27
■ 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
28
1章まとめ
Webサービスに重要なIPv4とIPv6の違い
アドレス体系が異なる
アドレス利用設計が変わる
複数のアドレスを有効範囲に応じて使い分ける
IPv4とIPv6は互換性がない
WebサービスのIPv6対応にはアプリケーションの対応が

不可欠
IPアドレスのハードコーディングはダメ。ゼッタイ。
2. IPv6対応Webサービスの

  作り方
2.1. プログラミング言語と実行環境
2.2. 通信処理のIPv6対応
2.3. データとしてIPアドレスを扱う箇所の対応
2.4. DMZのIPv6対応方式とサーバへのアクセス
29
Webサービス
30
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/

フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,

ソケット通信など
クライアント サーバ
アプリケーションを中心に解説します
アプリケーションIPv6対
応の基本方針①
31
 IPv6対応 =
    IPv4とIPv6の両方で動作する
シングルソースコードで対応
32
アプリケーションIPv6対応の
基本方針②
IPv6とIPv4の共存期間が長く続く
これまでIPv4で提供してきたサービスは、
今後も

継続してIPv4でも動作する必要がある
 IPv6対応 =
    IPv4とIPv6の両方で動作する
33
アプリケーションIPv6対応の
基本方針③
各開発言語が概ねIPv6に対応しており、
プロトコルによって開発言語を分ける

必要がなくなった
アプリケーションのメンテナンス性を

重視し、プロトコルによって機能差異が
生じることを未然に防ぐ
シングルソースコードで対応
アプリケーションのIPv6
対応のポイント
34
Ethernet
IP(v4/v6)
TCP / UDP
アプリケーション
OS
ミドルウェア/

フレームワーク
アプリケーション
OS
フレームワーク
HTTP/HTTPS
SMTP, SSH,

ソケット通信など
クライアント サーバ
①IPv4/IPv6両対応の

 プログラミング言語と実行環境を使う
②通信処理をIPv4/IPv6の

 両方に対応させる
③データとしてIPアドレスを

 扱う箇所をIPv4/IPv6の

 両方に対応させる
2.1. プログラミング言語と

   実行環境
35
36
ここでいうIPv4/IPv6両
対応とは?
プログラミング言語と実行環境における
IPv4/IPv6両対応とは?
名前解決機構が

IPv4/IPv6両方のアドレスを適切に扱える
IPv4/IPv6両方で通信できる
これらを満たすプログラミング言語、実装環境を利用する
37
実装上の留意点
プログラミング言語、実行環境の選定における留意点
実際には各プロダクトでサポート状況に差異があるため、

開発するアプリケーションが提供する機能を考慮し、個別に判断
する必要がある
プログラミングにおける留意点
IPv4/IPv6の双方に対応するライブラリ、オブジェクト、

関数、データ型を使う
従来(IPv4のみ)のものとは別に用意されていることがある
C addrinfo構造体、getaddrinfo()
Java InetAddressクラス
Perl IO::Socket::IP       など
アドレス検証、変換などはライブラリを有効活用
2.2. 通信処理のIPv6対応
38
IPv4とIPv6の両方で通信
できることとは?
クライアント
IPv4およびIPv6で

意図するサーバへ

接続できること
サーバ
IPv4およびIPv6で

接続を受付けること
39
IPv6 IPv6
IPv4 IPv4
IPアドレスを複数持つこと
がある
40
IPv6 IPv6
IPv4 IPv4
複数のアドレスを
持つことがある
複数のアドレスを
持つことがある
クライアントがどのアドレスにアクセスするかは

サーバ側では予測できない
特定のアドレスに依存したシステムを構成すべきではない
41
IPv6の名前解決①
FQDNで接続先を指定してIPv6で通信を行うには、DNSにて
FQDNからIPv6アドレスが名前解決できることが必要不可欠
FQDNからIPv6アドレスを名前解決
権威DNSサーバ上で接続先サーバのAAAAレコードにIPv6
アドレスが登録されている
クライアントから接続先サーバのAAAAレコードが引ける
Webアプリケーション開発においては、FQDNのIPv6アドレ
スが正しく名前解決できることを確認する
IPv6の名前解決②
42
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
43
通信の試行順序
RFC6724 Default Address Selection for
IPv6
優先順位が変わるケース
デフォルトを変更している環境
RFC6724に準拠していない実装
IPv6 > IPv4
44
クライアントプログラム
IPv4/IPv6 両宛先アドレスに接続できるよ
うにする
接続できない状況も想定し接続失敗時には
別の宛先アドレスに切替えて接続する
(フォールバック)
アプリケーションの作りが悪いと…
■ 切替えに時間がかかる
■ 正常に切替わらないこともある
ユーザの利便性を
損なう
45
通信処理の補足:フォール
バック
接続できない場合に別の接続先への接続に
切替える動作
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)
フォールバック
46
想定されるフォールバック
の主な原因
サーバ側の

問題
サーバが当該のサービスを提供していない
DNS誤登録、障害等
経路の問題 ネットワークの接続性が失われている
ISPの不具合
クライアント
側の問題
サーバへの到達性がないアドレスを選択し
て通信を行おうとしている
グローバルアドレスを使用している閉域
網
47
フォールバックの予防策
サーバ 設定の不備を修正する
サービスを提供していないIPアドレス
をDNSに登録しない
サービスを適切に提供する
ISP ネットワークの接続性を健全に保つ
クライアント IPv6インターネット接続可能なISPと

契約する
48
サーバプログラム
IPv4/IPv6 両プロトコルでの接続を処理
主要なWebサーバプログラムは対応済み
Apache HTTP Server
Microsoft Internet Information Server
(IIS)
nginx
2.3. データとしてIPアドレスを

   扱う箇所の対応
49
データとしてIPアドレスを扱う箇所
50
入力出力
整列
検索
格納
51
IPv4/IPv6アドレス比較
IPv4アドレス IPv6アドレス
アドレス長 32bit 128bit
文字列
表記
表記法 8bitずつ区切り、
10進数で表記
16bitずつ区切り、
16進数で表記
(省略表記あり)
区切り文字 . (ドット) : (コロン)
文字列長 15文字以内 39文字以内
サブネットマスク/プレフィックス長を
考慮すると、上記+”/”+数字3文字
52
IPv6アドレス表記法
特段の事情がない限り RFC5952 の表記ルールに
従い表記する(省略表記)
アドレス表記例
IPv4)192.0.2.1
IPv6完全表記)
2001:0db8:0000:0000:0001:0000:0000:0001

IPv6省略表記)2001:db8::1:0:0:1
53
IPv6アドレスの文字列長
IPv6アドレスの文字列長:39文字
プレフィックスを加味すると:43文字
例外(39文字を超えることがある)
リンクローカルアドレスにゾーンID(スコープID)を

付与してインターフェースを識別する場合
例)fe80::1%eth1
一部の特殊アドレス
IPv4射影アドレス等

例)::ffff:192.168.0.1
IPv4射影アドレス
IPv4 アドレスを IPv6 アドレスとして表現するた
めの IPv6 アドレス。上位80ビットに0、81∼96
ビット目に1、下位32ビットにIPv4アドレスを埋
め込む。機器内部での使用に限られ、パケット
の始点/終点アドレスには使われない。
出典:

IPv6関連用語集 IPv4-mapped(IPv6) address
54
IPv6アドレスを扱えないIPア
ドレス入力・格納
15文字までの文字列(varchar(15))
1つの整数として扱う
1オクテットずつ4つの整数として扱う
そのままではIPv6アドレスを格納できず、エラーとなる
IPv4/IPv6両対応 39文字以内の文字列 [VARCHAR(39)]
Good!
Bad!
55
Webフォームからの入力
入力値の検証
IPアドレスを扱う場合、入力された文字列がIPアドレスとして取
りうる値であることを検証
IPv4アドレス、IPv6アドレス いずれかとして取りうる値
2箇所で実施可能
ブラウザ側(HTML5のForm Validation等)
サーバ側
アドレス処理ライブラリを利用すると便利
例)PHP Net_IPv6::checkIPv6();

  (PEARにて提供されるNet_IPv6パッケージに含まれる)
56
格納、検索、整列、出力
IPアドレス型が定義されている場合は、IPアドレス型を使う
例) PostgreSQLのネットワークアドレス型
IPアドレス型が定義されていない場合は、文字列型で完全表記を
使う
IPv6完全表記)
2001:0db8:0000:0000:0001:0000:0000:0001
見やすさを求めるときは、省略表記(RFC5952準拠)で出力
過去に開発されたシステム・ツールでは、RFC5952に準
拠しない省略表記が存在しうるので要注意
既存システムは、格納領域にIPv6アドレスが収まるかをチェッ
ク
57
PostgreSQLのネット
ワークアドレス型
58
文字列型で扱う場合、

なぜ完全表記か?①
省略表記のまま整列しても…
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
省略表記の

整列は

アドレス昇順と

一致しない
(
文
字
列
)
整
列
アドレス
昇順
59
文字列型で扱う場合、なぜ完
全表記か?②
整列は完全表記で行う
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
(文字列)

整列
完全表記
完全表記の整列は

アドレス昇順と

一致
60
サンプルコード(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); //整列後配列の出力
?>
61
文字列型として扱うときの
注意点
省略表記 完全表記 の変換はライブラリ
を有効活用する
過去に開発されたシステム・ツールでは、
RFC5952に準拠しない省略表記が存在し

うるので要注意
62
ログ出力・解析への影響
例)Apache HTTP Server ログファイル
OSSログ解析プログラムは大抵問題なく処理できる
AWStats, Webalizer…
注:アクセス元の国/地域は解析できない場合がある
ログ解析を自作している人は要注意!
アドレス部分の文字列長が長くなる
アドレスの区切り文字が変わる
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
2.4. DMZのIPv6対応方式と

   サーバへのアクセス
63
DMZのIPv6対応方式①
64
パラレルスタック デュアルスタック トランスレーション
構成

イメージ
概要 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
DMZのIPv6対応方式②
65
パラレルスタック デュアルスタック トランスレーション
メリット ■ 分界点が明確
■ ネットワークの安
定的な運用が確保
しやすい
■ 概念が単純
■ 低コスト ■ 変更が最小限
デメリット ■ 高コスト
■ 管理対象が増える
■ 運用・分析工数が増
加
■ 障害の影響範囲が広
い
■ セキュリティ機器の
実績不足
■ ネットワーク構造の
変更が必要な場合が
ある
■ 運用実績が少ない
■ 障害発生時に対応が
難しい
■ セキュリティ機器の
通信制御が難しくな
る
参考資料:「IPv6対応セキュリティガイドライン(第1.0版)」IPv6普及・高度化推進協議会セ
キュリティWG
http://www.v6pc.jp/jp/upload/pdf/swg-IPv6SecurityGuideline_v1.0.pdf
DMZのIPv6対応方式と
サーバへのアクセスの関係
66
パラレルスタック デュアルスタック トランスレーション
サーバへの
アクセス
IPv4またはIPv6

(分離)
IPv4およびIPv6

(混在)
IPv4のみ
サーバが認
識する接続
元アドレス
クライアントの

IPアドレス
クライアントの

IPアドレス
トランスレータの

IPアドレス
外部のIPv6
システムへ
の能動的な
接続
可能 可能 不可能

(別途対応が必要)
“X-Forwarded-For:”
ヘッダを付与できる装
置を用い、アプリケー
ション側でこのヘッダ
値を取得する等の方法
で対応可
67
2章まとめ
IPv6対応の基本方針
IPv6対応=IPv6/IPv4の両方で動作させること
シングルソースコードで対応する
IPv6対応のポイント
1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う
2. 通信処理をIPv4/IPv6の両方に対応させる
3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に
対応させる
DMZのIPv6対応方式は、要件に合わせて選択
 
3. LL(軽量プログラミング

  言語)の対応状況
3.1. Perl
3.2. PHP
3.3. その他の言語
68
3.1. Perl
69
70
Perlの概要
Perl のバージョン
最新版(Perl5): 5.20.2 (2015/2/14リリース)
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を使
うことは可能
71
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により対応
72
【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 の置
き換えとして設計され
ており、コンストラク
タやメソッドは互換性
がある (一部例外あり)
IO::Socket::INETで
やっていたことをやり
たい場合には、このモ
ジュールを

使うのが良い
73
【Perl】Socket関連の
対応状況②
IO::Socket::INETとIO::Socket::IPの比較
IO::Socket::INET と IO::Socket::IP による TCP

クライアントの例 ($host の $port に TCP で接続)
赤字の部分 (use およびコンストラクタ) を変更するだけで IPv4専用だっ
たコードが IPv4 / IPv6 両対応になる (はず)
(変更後のプロトコルの優先順位はポリシーテーブルの設定に従う)
※ もちろん, IPv4 アドレスが直書きしてあるような部分については, 

 別途対応する必要あり
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
ここ
74
【Perl】サービス(HTTP,
SMTP)の対応状況
HTTPクライアントのメジャーどころ:IPv6非対応
SMTPクライアント(Net::SMTP):IPv6非対応
IO::Socket::INETのサブクラスのため
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非対応
75
【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 での通信がで
きるようになったことが確認されている
76
【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};
既存のコード
77
【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 アドレスを逆引きするときは :: で省略したアドレスを

渡すことも可能
78
【Perl】アドレス処理
Net::IP
IPv4 / IPv6 アドレス処理のための様々な機能を

提供するCPANモジュール
http://search.cpan.org/dist/Net-IP/
次のようなメソッドを提供する
version() :IP のバージョンを返す (4 or 6)
ip() :IPv6 アドレスの場合, 最も冗長な表現を

       返す
short() :できるだけ省略された表記を返す
reverse_ip() :逆引き用の表記 (PTR レコードの形式) 

       を返す
3.2. PHP
79
80
PHPの概要
PHP最新バージョン
5.6系が最新系列になった。最新は5.6.6 (2015/2/19)
5.5系、5.4系もメンテナンスされている。最新は 5.5.22, 5.4.38
(2015/2/19)
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 欄)
81
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拡張パッケージ
82
【PHP】名前解決
正引き
dns_get_record
引数で指定したRRの情報を取得して、配列で
返す
逆引き
gethostbyaddr
引数で指定したアドレスに対応するホスト名
を返す
// 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');
83
【PHP】HTTPクライア
ント
URLをオープンする
fopen()
ファイルを開くのと同様にURLを指定し
て開くことができる

(php.ini にて allow_url_fopen を有効
にしている場合のみ)
$fh = fopen(“http://www.iajapan.org/ipv6/summit/
FUKUI2015.html”, “r”);
$fh = fopen(“http://[2001:db8::1]”, “r”);
※URLにIPv6アドレスを指定する場合には [ ] で括る
84
【PHP】アドレス処理
PEAR::Net_IPv6
IPv6 アドレスに関する処理を行う
http://pear.php.net/package/Net_IPv6
下記のようなメソッドを提供する
checkIPv6() : IPv6のアドレスか検証
compress() : IPアドレスの短縮
uncompress() : IPアドレスの伸長
isInNetmask() : IPが指定したアドレス空間に

        あるかどうかを調べる
3.3. 他のLLの対応状況
85
86
他の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
87
3章まとめ
Perl:5.14以降は概ねIPv6対応
IO::Socket::INETに起因して非対応のモ
ジュールは、Net::INET6Glue を利用する
ことでIPv6対応可
PHP:PHP5以降はIPv6対応
Python, Rubyも概ねIPv6対応
4. VPS/IaaSのIPv6対応状況
88
89
VPS/IaaSに見られる
IPv6対応方法
構成イメージ 備考
IPv6ネイティブ 先述の「DMZのIPv6対
応方式」における「パラ
レルスタック」もしくは
「デュアルスタック」
トランスレーション 先述の「DMZのIPv6対
応方式」における「トラ
ンスレーション」と同じ
IPv6トンネリング トンネルルータ Webサ
ーバ間において、IPv6を
IPv4でトンネル
ルータ
Web
サーバ
IPv6 IPv6
internet
トンネル
ルータ
Web
サーバ
IPv6
IPv6
トンネル
internet
ロード

バランサ

等
Web
サーバ
IPv6 IPv4
internet
IPv4
90
VPS/IaaSのIPv6対応状況
の注意事項
サービス提供企業がWebサイトで公開している

情報を元にまとめたものです
2015年2月20日現在の情報です
ここに記載されている特定のサービスの利用を

薦めるものではありません
情報に誤りがありましたら、ご指摘ください
91
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/
※AWSの対応状況については、現状、VPC環境で利用できない
92
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
さくらイン
ターネット
さくらのク
ラウド
トライアル提
供(2015年3
月末まで)
トンネル
(6rd)
http://research.sakura.ad.jp/6rd-
trial/
DTI ServerMan
@VPS ○
? http://dream.jp/vps/service.html
93
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
おわりに
94
95
まとめ①
IPv6を使える環境が増えている
IPv4とIPv6は互換性なし
WebサービスのIPv6対応にはアプリケーションの対
応が不可欠
IPアドレスのハードコーディングはダメ。ゼッタイ。
 
96
まとめ②
アプリケーションのIPv6対応の基本方針
IPv6対応=IPv6/IPv4の両方で動作させること
シングルソースコードで対応する
アプリケーションのIPv6対応のポイント
1. IPv4/IPv6両対応のプログラミング言語と実行環境を使う
2. 通信処理をIPv4/IPv6の両方に対応させる
3. データとしてIPアドレスを扱う箇所をIPv4/IPv6の両方に

対応させる
 
LLは概ねIPv6に対応済み
 
決して難しくない!
今日から開発するWebサービスはIPv6に対応させよう!
97
つづきは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
ご清聴いただき、

ありがとうございました
98

More Related Content

What's hot

Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Kiyotaka Doumae
 
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか? ~今後のPaaSの活用について~
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか?~今後のPaaSの活用について~デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか?~今後のPaaSの活用について~
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか? ~今後のPaaSの活用について~Yoshiyuki Takano
 
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiEYoshiyuki Takano
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Hiroyuki Wada
 
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
 
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
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpKaoru Maeda
 
IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfIPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfRuri Hiromi
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューYuya Rin
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町Takahiro Kujirai
 

What's hot (20)

Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか? ~今後のPaaSの活用について~
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか?~今後のPaaSの活用について~デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか?~今後のPaaSの活用について~
デブサミ 【14-E-6】なぜ、がんばってPaaSを提供するのか? ~今後のPaaSの活用について~
 
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE
現場でPaaSの適用はどこまで進んでいるのか?~実例から見るPaaSの活用方法と今後の展開~#devsumiE
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
 
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 最新動向 〜世界共通語で最適化が進むインターネット〜
 
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とセキュリティの話
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechcon
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
 
IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfIPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tf
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
CEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビューCEDEC-Net 2015 テクニカルレビュー
CEDEC-Net 2015 テクニカルレビュー
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町
 

Similar to 20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方

PaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyPaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyKatsunori Kawaguchi
 
IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014v6app
 
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策Kensaku Komatsu
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)nemumu
 
ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成Kenichiro MITSUDA
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1Satoshi Ueno
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待Hideaki Tokida
 
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~Toru Miki
 
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webupAkira Nakagawa
 
20180209 qunog-i pv6-summit_report_kagoshima webup
20180209 qunog-i pv6-summit_report_kagoshima webup20180209 qunog-i pv6-summit_report_kagoshima webup
20180209 qunog-i pv6-summit_report_kagoshima webupAkira Nakagawa
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
I Pv6 Service Deployment Guideline
I Pv6 Service Deployment GuidelineI Pv6 Service Deployment Guideline
I Pv6 Service Deployment Guidelineguestfcd0535
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由Rakuten Group, Inc.
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops裕貴 荒井
 

Similar to 20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方 (20)

IPv6標準化と実装
IPv6標準化と実装IPv6標準化と実装
IPv6標準化と実装
 
PaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyPaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happy
 
IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014
 
IPv6勉強会のご紹介
IPv6勉強会のご紹介IPv6勉強会のご紹介
IPv6勉強会のご紹介
 
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策
 
0607 ntt-soft
0607 ntt-soft0607 ntt-soft
0607 ntt-soft
 
Hbstudy41
Hbstudy41Hbstudy41
Hbstudy41
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)
 
ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
 
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
 
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup
20180223 enog-i pv6-summit_report_tsubame_sanjyo niigata for webup
 
20180209 qunog-i pv6-summit_report_kagoshima webup
20180209 qunog-i pv6-summit_report_kagoshima webup20180209 qunog-i pv6-summit_report_kagoshima webup
20180209 qunog-i pv6-summit_report_kagoshima webup
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
I Pv6 Service Deployment Guideline
I Pv6 Service Deployment GuidelineI Pv6 Service Deployment Guideline
I Pv6 Service Deployment Guideline
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 

Recently uploaded

ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 

Recently uploaded (12)

ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 

20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方