Submit Search
Upload
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
•
3 likes
•
3,045 views
V
v6app
Follow
OSC広島 jus研究会広島大会での発表資料です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 47
Download now
Download to read offline
Recommended
IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門
v6app
20150312 html5とか勉強会-lt-開発者に知ってほしいi pv6のこと
20150312 html5とか勉強会-lt-開発者に知ってほしいi pv6のこと
v6app
20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方
20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方
v6app
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
v6app
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
v6app
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
v6app
Cndt2021 casareal
Cndt2021 casareal
CASAREAL, Inc.
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
Kiyoshi Ogawa
Recommended
IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門
v6app
20150312 html5とか勉強会-lt-開発者に知ってほしいi pv6のこと
20150312 html5とか勉強会-lt-開発者に知ってほしいi pv6のこと
v6app
20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方
20150227 IPv6 Summit in FUKUI 2015 IPv6対応webサービスの作り方
v6app
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
v6app
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
v6app
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
v6app
Cndt2021 casareal
Cndt2021 casareal
CASAREAL, Inc.
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
Kiyoshi Ogawa
OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方
v6app
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
DMM.com
20170303 java9 hadoop
20170303 java9 hadoop
NTT DATA OSS Professional Services
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
Kiyoshi Ogawa
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
株式会社 NTTテクノクロス
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
safety and security using Raspberry PI
safety and security using Raspberry PI
Kiyoshi Ogawa
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Masayuki Kobayashi
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
NTT DATA OSS Professional Services
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Takuya Iwatsuka
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
CMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 update
OSSラボ株式会社
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
Yahoo!デベロッパーネットワーク
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
IPv6 Update
IPv6 Update
Shinsuke SUZUKI
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
Kohki Ohhira
More Related Content
What's hot
OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方
v6app
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
DMM.com
20170303 java9 hadoop
20170303 java9 hadoop
NTT DATA OSS Professional Services
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
Kiyoshi Ogawa
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
株式会社 NTTテクノクロス
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
safety and security using Raspberry PI
safety and security using Raspberry PI
Kiyoshi Ogawa
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Masayuki Kobayashi
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
NTT DATA OSS Professional Services
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Takuya Iwatsuka
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
CMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 update
OSSラボ株式会社
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
Yahoo!デベロッパーネットワーク
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
What's hot
(20)
OSC2015 Hamanako IPv6アプリの作り方
OSC2015 Hamanako IPv6アプリの作り方
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
20170303 java9 hadoop
20170303 java9 hadoop
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
Spring I/O 2015 報告
Spring I/O 2015 報告
safety and security using Raspberry PI
safety and security using Raspberry PI
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
CMDBuild overview (Japanese) V2.4 update
CMDBuild overview (Japanese) V2.4 update
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
Similar to これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
IPv6 Update
IPv6 Update
Shinsuke SUZUKI
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
Kohki Ohhira
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
Yuya Rin
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
エイシュン コンドウ
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
I pv6 research_basical
I pv6 research_basical
kuni255
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
20120516 v6opsf-ngn final
20120516 v6opsf-ngn final
Ruri Hiromi
IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩
Kenji Ohira
20150715 xflow kikuta_final
20150715 xflow kikuta_final
Kazumasa Ikuta
IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tf
Ruri Hiromi
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
openrtm
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
ひとし あまの
I Pv6 Service Deployment Guideline
I Pv6 Service Deployment Guideline
guestfcd0535
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
Kaoru Maeda
さくらのクラウド導入セミナー(2016.10) 第二部 活用編
さくらのクラウド導入セミナー(2016.10) 第二部 活用編
さくらインターネット株式会社
RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続
Michiya Tominaga
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
洵貴 佐川
Similar to これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
(20)
IPv6 Update
IPv6 Update
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
I pv6 research_basical
I pv6 research_basical
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
20120516 v6opsf-ngn final
20120516 v6opsf-ngn final
IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩
20150715 xflow kikuta_final
20150715 xflow kikuta_final
IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tf
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
I Pv6 Service Deployment Guideline
I Pv6 Service Deployment Guideline
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
さくらのクラウド導入セミナー(2016.10) 第二部 活用編
さくらのクラウド導入セミナー(2016.10) 第二部 活用編
RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
Recently uploaded
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(9)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
1.
オープンソースカンファレンス2014 Hiroshima! jus研究会広島大会
これからのアプリ開発は IPv6対応で行こう! 2014年9月20日 IPv6普及・高度化推進協議会 渡辺 露文
2.
About me 渡辺
露文(わたなべ つゆふみ) Twitter: @tsuyu23 某SIer勤務 IPv6普及・高度化推進協議会 会員 IPv6導入に起因する問題検討SWG アプリケーションのIPv6対応検討SWG 技術評論社 Software Design誌連載 (2012年12月号~ 2014年1月号) ! 2
3.
Do you know
… IPv6 ? Internet Protocol version 6 インターネットの通信に関する規約(RFC791) IPネットワークに接続するには1つ以上のIPアドレスが必要 皆さんが馴染んでいるのはIPv4(例:10.1.2.3) 3
4.
実はIPv6を使える環境が 増えています(1) 最近のOS
Windows Vista以降 Mac OS X Linux FreeBSD … ! ! 4 いずれも デフォルトで 利用可能
5.
実はIPv6を使える環境が 増えています(2) インターネット回線
フレッツ光ネクスト au ひかり NURO 光 … ! ! 5 利用可能 既存ユーザへの自動導入も 進行中 すでに、ユーザからあなたのサービスにIPv6で アクセスされようとしている…かもしれない
6.
日本におけるIPv6の普及 状況 フレッツ光ネクストのIPv6普及率
(2014年6月) IPv6普及率:3.1%! フレッツ光ネクスト契約数:13,588,000契約! ! au ひかりのIPv6普及率(2014年6月):68% ! ! 今後本格的に普及する前に 出典:IPv6普及・高度化推進協議会 アクセス網におけるIPv6普及状況調査! http://v6pc.jp/jp/spread/ipv6spread_03.phtml IPv6対応を始めたほうが良い 6
7.
余談:IPv6でインターネット にアクセスできるかの確認方法 Webブラウザで
http://www.test-ipv6.jp にアクセス ! ! ! ! Webブラウザで http://www.kame.net にアクセス ! ! ! 7 IPv6でアクセスすると、 亀が踊ります♪
8.
IPv6の背景: IPv4アドレス枯渇 IPv4アドレスの在庫状況
(地域インターネットレジストリ) 8 通信事業者、ISP、 データセンター、 クラウド事業者等の 在庫が残るのみ 世界的に足りなくなってきている
9.
もう少しIPv6を知ろう! 9
10.
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準拠) 10 ! 他にも機能的にIPv4と異なることがある IPv4とIPv6は互換性がない
11.
IPv4とIPv6の接続性 11 Internet
IPv4対応 (IPv6非対応) システム IPv4/IPv6 両対応システム IPv6対応 (IPv4非対応) システム (1) (2) (3) IPv4端末 IPv4/IPv6 両対応端末 IPv6端末 IPv4 IPv6
12.
IPv6に対応しない場合の 影響 1.
IPv6のみの環境と通信できない! ビジネス機会を損失する! システム連携が行えず要件を満たせなくなる! 2. 今後、IPv4はサービスレベルが低下していく! 通信事業者等によるCGN(Carrier Grade NAT) 導入により、遅くなり、使用できるセッション 数が減る可能性がある! ! ! IPv6に対応しなきゃ! 12
13.
インフラがIPv6に対応す るだけでいいのでは? ネットワークとサーバがIPv6に対応すれば、IPv6で接続
可能 ! 接続は可能だが… サービスが正常に動作しない 13 !!! かもしれない システム連携がうまくいかない! 想定外の挙動をする! … ! アプリケーションもIPv6に対応しなきゃ!
14.
IPv6対応の話をする前に …① このコード、イケてない…
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”; : : 14 えっ、 IPアドレス直書き? IPアドレス直書きすると、 アドレス変更時に修正が 必要なんですよ… 再テストも必要だし… ダメよ~ダメダメ
15.
IPv6対応の話をする前に …② とある
Androidプログラミング書籍に おけるソケット通信のサンプルコード 15 public class SocketEx… … … private final static String IP=“192.168.11.12”;//★変更必須 良い子は真似しちゃダメ
16.
IPv6対応の話をする前に …③ IPアドレスのハードコーディングはNG
16 ダメ。ゼッタイ。 $host = “www.example.com” のようにFQDNで接続先を指定する
17.
ネットワークアクセスの 作法=名前解決を使う Internet
17 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からアドレス取得
18.
なぜIPアドレス直書きが ダメなのか? 目的変更・改修の理由
アプリケーション機能の提供■ 業務要件の変更! ■ サービス内容の変更! ■ ユーザビリティ向上 …,etc. インフラ資源の提供■ 資源管理(IPアドレス、サーバラック…)! ■ 性能 同一システムでも変更・改修の理由・時期は異なる 互いに変更の影響を受けるべきではない アプリケーションは、IPアドレスに依存すべきではない 例)IPアドレスでユーザを識別すべきではない 18
19.
さあ、アプリケーションを IPv6に対応させよう! ここからが本題
19
20.
アプリケーションIPv6対 応の基本方針 IPv6対応 =!
IPv4とIPv6の両方で動作する シングルソースコードで対応 20
21.
アプリケーションIPv6対 応の基本方針 IPv6対応 =!
IPv4とIPv6の両方で動作する 21 ! !!!! IPv6とIPv4の共存期間が長く続く! これまでIPv4で提供してきたサービスは、今後 も継続してIPv4でも動作する必要あり
22.
アプリケーションIPv6対 応の基本方針 シングルソースコードで対応
22 ! !!! 各開発言語が概ねIPv6に対応しており、プロト コルによって開発言語を分ける必要がなくなっ た! アプリケーションのメンテナンス性を重視し、 プロトコルによって機能差異が生じることを未 然に防ぐ
23.
アプリケーションのIPv6 対応のポイント ②通信処理をIPv4/IPv6の
両方に対応させる ③データとしてIPアドレスを 扱う箇所をIPv4/IPv6の 両方に対応させる クライアントサーバ TCP / UDP IP(v4/v6) Ethernet 23 アプリケーション! ミドルウェア/ フレームワーク OS アプリケーション! フレームワーク OS HTTP/HTTPS! SMTP, SSH, ソケット通信など ①IPv4/IPv6両対応のプログラミング言語と実行環境を使う
24.
ポイント① IPv4/IPv6両対応のプ ログラミング言語と実行環境を使う
(1) IPv4/IPv6両対応のプログラミング言語と 実行環境? IPv4/IPv6の両方で通信できる 24 ! 1. 名前解決でIPv4/IPv6両方のアドレスが扱える! 2. IPv4/IPv6両方で接続できる
25.
ポイント① IPv4/IPv6両対応のプ ログラミング言語と実行環境を使う
(2) 名前解決でIPv4/IPv6両方のアドレスが扱える FQDNからIPv6アドレスが名前解決できる 名前解決で得られるIPv6アドレスを認識、接続先アドレス に指定できる 25 Client Web Server www.example.jp 2001:db8:100::1 example.jpの 権威DNS Server ■ AAAAレコード(IPv4 のAレコードに相当)を リソースレコードに 登録 www.example.jp IN AAAA 2001:db8:100::1 ①名前解決問合せ! www.example.jp ? ②AAAA応答! 2001:db8:100::1 ③HTTP通信 ! ! ! ! ! !
26.
ポイント① プログラミング言 語と実行環境
Perlの対応状況 考慮すべき要素対応状況備考 名前解決○ ■ Socket::getaddrinfo()! 処理○ CPANモジュール Net::IPにより対応 26 ■ Socket::getnameinfo()! ■ CPAN Net::DNS ソケット○ ■ コアモジュールの Socketは 5.10 から 部分的に対応! ■ 5.14でフル対応! 各種(L7) ■ CPANモジュールにも対応しているも プロトコル HTTP クライアント▲ 標準では非対応(コアモジュール HTTP::Tiny, LWP等のメジャーなモジュ ールも非対応) SMTP クライアント▲ 標準では非対応(コアモジュール Net::SMTP) その他IPv6アドレスの
27.
ポイント① プログラミング言 語と実行環境
PHPの対応状況 考慮すべき要素対応状況備考 名前解決○ ■ dns_get_record()! 処理○ PEAR Net_IPv6拡張パッケージ 27 ■ gethostbyaddr()! ■ PEAR Net_DNS2 ソケット○ inet_pton(), inet_ptop()は 5.1.0 以降 対応 各種(L7) プロトコル HTTP クライアント○ 各種ファイル関数 cURLなど SMTP クライアント○ PEAR Net_SMTP! mail(), PEAR Mail ⇒システム環境依存 その他IPv6アドレスの
28.
ポイント① IPv4/IPv6両対応のプ ログラミング言語と実行環境を使う
(3) プログラミングにおける留意点 IPv4/IPv6の双方に対応するライブラリ、 オブジェクト、関数、データ型を使う 従来(IPv4のみ)のものとは別に用意されている ことがある C addrinfo構造体、getaddrinfo() Java InetAddressクラス Perl IO::Socket::IP など 28 ! アドレス検証、変換などはライブラリを有効活用
29.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(1)
接続の優先順位(標準;RFC6724):IPv6 > IPv4 ! サーバプログラム IPv4/IPv6 両プロトコルでの 接続を処理 Client Server ! クライアントプログラム IPv4/IPv6 両宛先アドレスに接続できるようにする 接続できない状況も想定し、接続失敗時には別の 宛先アドレスに切替えて接続する(フォールバック) 29 IPv6 IPv6 IPv4 IPv4 アプリケーションの作りが悪いと… ■ 切替えに時間がかかる ■ 正常に切替わらないこともある ユーザの利便性を 損なう
30.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(2)
フォールバック IPv4 ⇒ IPv6 / IPv6 ⇒ IPv4 / IPv4 ⇒ IPv4 / IPv6 ⇒ IPv6 30 ! ! ! ! ! ! ! ! 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) フォールバック
31.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(3)
想定されるフォールバックの主な原因 サーバ側の 問題 サーバが当該のサービスを提供していない DNS誤登録、障害等 経路の問題ネットワークの接続性が失われている ISPの不具合 31 クライアント 側の問題 サーバへの到達性がないアドレスを 選択して通信を行おうとしている グローバルアドレスを使用している 閉域網
32.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(4)
フォールバックの予防策 サーバ設定の不備を修正する サービスを提供していないIPアドレス をDNSに登録しない サービスを適切に提供する ISP ネットワークの接続性を健全に保つ クライアントIPv6インターネット接続可能なISPと契 32 約する
33.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(5)
クライアントプログラム ホスト名の名前解決結果を リスト形式で取得し、 アドレスリストの順に接続を 試み、接続が確立したものと 送受信を行う Good! ! 更に迅速にフォールバックを行うために、 Happy Eyeballs(RFC6555)も選択肢の一つ 33 ホスト名解決 (DNS問合せ) 接続成功? Yes No リスト取得 リスト順次取出し
34.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(6)
クライアント サンプルコード抜粋(1/2) /* resolve address/port into sockaddr */ memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo(argv[1], argv[2], &hints, &res0); ! if (error) { fprintf(stderr, "%s %s: %sn", argv[1], argv[2], 34 gai_strerror(error)); exit(1); } ! /* 次のページに続く */
35.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(7)
クライアント サンプルコード抜粋(2/2) /* try all the sockaddrs until connection goes successful */ for (res = res0; res; res = res->ai_next) { fprintf(stderr, "trying %s port %sn", hbuf, sbuf); s = socket(res->ai_family, res->ai_socktype, res->ai_protocol); if (s < 0) continue; if (connect(s, res->ai_addr, res->ai_addrlen) < 0) { close(s); s = -1; continue; } ! while ((l = read(s, buf, sizeof(buf))) > 0) write(STDOUT_FILENO, buf, l); close(s); exit(0); } 35
36.
ポイント② 通信処理をIPv4/ IPv6の両方に対応させる(8)
サーバプログラム 同一ソースコードでプログラムを作成 IPv4/IPv6両方の接続を同時に受付ける2種類の 手法 接続プログラム A :ソケットB 36 プロセス A IPv6 接続 IPv4 プログラム α 接続 プロセス B サーバ プロセス C IPv6 IPv4 接続 β サーバ
37.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(1) ! データとしてIPアドレスを扱う箇所 出力入力 37 整列 検索 格納
38.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(2) アドレス体系の違い IPv4アドレスIPv6アドレス ! アドレス長32bit 128bit ! 文字列 表記法8bitずつ区切り、 表記 10進数で表記 ! ! 例 IPv4)192.0.2.1 IPv6完全表記)2001:0db8:0000:0000:0001:0000:0000:0001 IPv6省略表記)2001:db8::1:0:0:1 (RFC5952準拠) 38 16bitずつ区切 り、16進数で表記 区切り文字. (ドット) : (コロン) 文字列長15文字以内39文字以内 RFC5952に文書化されているIPv6アドレス 推奨テキスト表記ルールに従い省略可能
39.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(3) 入力 整数ではなく文字列で入力 IPv4のみ15文字以内の文字列 [VARCHAR(15)] ! もしくは整数×4 ! ! IPv4/IPv6両対応39文字以内の文字列 [VARCHAR(39)] ! 入力値の検証はライブラリの関数・フィルタを利用 例)PHP Net_IPv6::checkIPv6(); (PEARにて提供されるNet_IPv6パッケージに 含まれる) 39 Good!
40.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(4) 格納、検索、整列、出力 IPアドレス型が定義されている場合は、IPアドレス型を 使う 例) PostgreSQLのネットワークアドレス型 IPアドレス型が定義されていない場合は、文字列型で 完全表記を使う IPv6完全表記) 2001:0db8:0000:0000:0001:0000:0000:0001 見やすさを求めるときは、省略表記(RFC5952準拠)で出力 既存システムは、格納領域にIPv6アドレスが収まるか をチェック 40
41.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(5) なぜ、完全表記? 省略表記のままソートしても… アドレス昇順ソート後 41 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 省略表記の ソートは アドレス昇順と 一致しない (文字列) ソート アドレス 昇順
42.
ポイント③ データとしてIPアドレ スを扱う箇所をIPv4/IPv6の両方
に対応させる(6) ソートは完全表記で行う 2001:db8:0:1::1:1 2001:db8:0:2::1 2001:db8:0:1::50 2001:db8:0:10::1 完全表記のソートは アドレス昇順と一致 42 ソート前 アドレス 昇順 完全表記 (文字列) ソート アドレス昇順ソート後 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
43.
43 おわりに
44.
まとめ(1) IPv6を使える環境が増えている IPv4とIPv6の違い:アドレス空間が異なる
, etc. ⇒互換性なし IPアドレスのハードコーディングはダメ。ゼッタイ。 IPv6対応の基本方針 IPv6対応=IPv6/IPv4の両方で動作させること シングルソースコードで対応する 44
45.
まとめ(2) IPv6対応のポイント 1.
IPv4/IPv6両対応のプログラミング言語と実行 環境を使う 2. 通信処理をIPv4/IPv6の両方に対応させる 3. データとしてIPアドレスを扱う箇所をIPv4/IPv6 の両方に対応させる 45 ! 決して難しくない! 今日から開発するアプリケーションは IPv6に対応させよう!
46.
つづきは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 46
47.
ご清聴いただき、 ありがとうございました 47
Download now