2
問題
• インタネットの急激な成長
– アドレスの枯渇,経路情報の爆発的な増加
– 新しい適用分野,新しい要求
• 緊急の課題 − アドレスと経路
) CIDR
) NAT Î Peer-to-Peer / End-to-End の崩壊
• 抜本的な解決 & 本来の姿への回帰
インターネット
守らなければならないもの
-1.エンドエンドモデルの維持
2.双方向性(Peer2Peer)
4
Internet
“
end-to-end model”
End system
End system
Internet
Routers in the middle
What happen if ..
End system
End system?
Intermediate nodes
•Proxy server •Firewall
Internet
6
End system
End systemInternet
Private Closed NetworkEnclosure by
Client/Server Architecture is breaking
down
Global Addressing Realm Private Address Realm Private Address Realm• For web:
– Sufficient to have clients in private address spaces access servers in global address
space
• Telephones
8
Need
an
end to end naming and
addressing architecture
Global Addressing
Realm
Implication:
–IP Version 6 deployment
required for continued
development of Internet in
Mobile Networks,
NAT(Network Address Translation)
・
受信パケットのIPアドレス(src_IP)およびポート番号 の(src_port)変換テーブルを持ちIPヘッダの変換。 (RFC1631)(1) Private → Global
- DNS : NATルータのIPアドレスが解決される。 - 受信パケット(dst_IP) → 送信パケットの(src_IP, src_port)の書換え(2) Global → Private
- 受信パケット(src_IP, src_port) → 送信パケットの(dst_IP)の書換え(*) ポート番号(src_port)の機能
10
NAT
入力 出力 アドレス ポート アドレス ポート 送信 宛先 送信 宛先 送信 宛先 送信 宛先 A ー ー ー N ー ー ー NAT C A C A 送信アドレス A→Nに変換 C N A C N C 宛先アドレス N→Aに変換Traditional NAT
組織内 インターネット NAT C A A C 宛先アドレス 100 200 宛先ポート番号 C A 200 100 に変換 送信ポート番号 送信アドレス A→N 100 200 N C Basic NAT C N 200 100 N→Aに変換 A C 宛先アドレス 100 200 送信ポート番号 宛先ポート番号 150 200 N C A→N、 100→150に変換 送信アドレス NAPT12
Bi-directional NAT
組織内 インターネット NAT C A A C 宛先アドレス 100 200 宛先ポート番号 A→Nに変換 C A 200 100 C N 200 100 送信アドレス 送信ポート番号 100 200 N C N→Aに変換 (1) ホストAのアドレスは? (2)アドレスはN DNS (3) (4)Twice NAT
組織内 インターネット NAT C A A Nl1 (1)ホストC のアドレスは? (2)アドレスは Nl1 A→NgNl1→Cに変換 宛先アドレス DNS 送信アドレス Ng1 C (3) Nl1 A C Ng1 (4) Ng→A C→Nl1に変換14
Internet Access Requirements Forecast
Going to Connected Environment
-0 5 10 15 20 25 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 Fiber Fixed Wireless T1 DSL Satelitte Dial-up Business Internet Access
Us
er
s (
M
illions)
常時接続インターネット環境
• IP (Internet Protocol
) アドレス – IPv4 : 32 bits ≒ 4x109 (40億) (世界の人口 ≒ 60 億人) • 電話番号アドレス – 国際 : 13 Digits ≒ 1 兆 – 国内 : 10 Digits = 10 億 有線 9 Digits = 1億 (有線) 携帯 2x8 Digits = 2,000万 …既にアドレス変更… – 北米 : 10 Digits = 10億 ….既に不足している… 電話≒人口 インターネット >> 人口16
インターネットアーキテクチャ
• IP (Internet Protocol
) アドレス – IPv4 : 32 bits ≒ 4x109 (40億) (世界の人口 ≒ 60 億人) • 電話番号アドレス – 国際 : 13 Digits ≒ 1 兆 – 国内 : 10 Digits = 10 億 有線 9 Digits = 1億 (有線) 携帯 2x8 Digits = 2,000万 …既にアドレス変更… – 北米 : 10 Digits = 10億 ….既に不足している…常時接続ネットワークを
実際にデザインしてみ
ると……
常時接続ネットワークを
実際にデザインしてみ
ると……
電話≒人口 インターネット >> 人口 電話≒人口 インターネット >> 人口We Need Further Addresses 人口 x N (N=?)
We Need Further Addresses 人口 x N (N=?)
ブロードバンド * 常時接続
• B-to-B 型 by Peer-to-Peerモデル
• B-to-C 型 by Client-Serverモデル
• C-to-C 型 by Peer-to-Peerモデル
アプライアンス型 vs 汎用型
client-server
と
peer-peer(1)
• クライアント
– 能動的にサービス提供を促す側
• サーバ
– 受動的にサービス提供する側
Client Server サービス要求 サービス提供みんな使い始めた P2P アプリ
• VoIP
• Polycomm
• Messenger (MS & AOL)
• Interactive Game
20
インターネット新大陸
• New Object Hooked to the Internet
– 移動体 (Nomadic / Mobile)
– 携帯端末 (Wareable / Mobile)
– 情報家電
• New Topological Regions Hooked to the Internet
– アジア
– アフリカ
– 南米
ユビキタス情報環境
街中で(コンビニ、駅、
GS)
移動中に
旅行先で
バーゲン情報 名所案内 乗換え情報 渋滞情報運転中に
(ITS) 携帯電話 HMD 道順案内 ディジタル放送 パームサイズ 端末Personal Area Network
22
無線方式親装置設置例(1) 無線方式親装置設置例(1)
無線方式親装置設置例(2) 無線方式親装置設置例(2)
24 Millions 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 1,400 1,200 1,000 800 600 400 200 0
Mobile Internet Outlook
Mobile Internet Outlook
More handsets than PCs connected to the Internet by the end of 2003 !
More handsets than PCs connected to the Internet by the end of 2003 !
Projected cellular subscribers (Nokia 1999) Projected PCs connected to the Internet (Dataquest 10/ 98) Projected Web handsets (Nokia 1999)
Wearable Computing
Head-mount Display for a Single Eye Single-hand Keyboard Wearable Computer26
例えば、監視ビジネス
• インターネットを使っ た監視 • 無線アクセス • さらに、音、温度、 湿度など。。 • まったく違うコストで 実現 • MDF室とか冷蔵庫 とか28
IPv6とIPv4の違い
• アドレス空間の拡大
– 32bitから128bitへ • 32bit 4,294,967,296 (40億) • 128bit 340,282,366,920,938,463,463,374,607,431,768,211,456• アドレスアーキテクチャ
– 階層的構造 – スコープの導入 – 集約可能なアドレス体系• プラグアンドプレイ機能の充実
• マルチキャストの標準実装
30
IPv6とIPv4の違い (cont.)
• 高速化への対応
– ヘッダフォーマットの簡易化
• 利用されていないフィールドを削除 • 固定長 • チェックサムの廃止 • IP ヘッダオプションの廃止– 経路上におけるパケット分割の廃止
Router HOST HOSTIPv6とIPv4の違い (cont.)
• リンク層とネットワーク層のアドレス解決
– ARP -> NDP – 不到達性の検知• セキュリティ
– IPsecを標準とする• 柔軟性
– IP 拡張ヘッダ • MobileIPv6 • IPsec32
IPv6 アドレス表記
• 128bit を 16進数で表す
• 4桁ごとに 「 : 」 で区切る
– 3ffe:501:100c:e320:2e0:18ff:fe98:936d
• 連続する「0」は省略可能
– 3ffe:0501:100c:e320:0000:0000:0000:0001 →
3ffe:501:100c:e320::0001
34
IPv6 アドレス構造
• ネットワークプレフィクス とインタフェース
ID に分かれる
– ネットワークプレフィクス (上位64bit)
• 現行では集約可能型アドレス体系に基づいて割り 当てられる– ホストID (下位64bit)
• EUI-64 • Ethernet の場合,MAC アドレスを元に決定IPv6 アドレス構造 (cont.)
Interface ID 64bit 64bit Network Prefix 今回の N+I Network IPv6 : 2001:218:1800::/48 IPv4 : 45.0.0.0/8 2001:218:1800:e100::/64 2001:218:1800:e200::/6436
アドレス種別
• Unicast Address
– 単一のインタフェースに対して割り当てられる
• Anycast Address
– 複数のインタフェースに対して割り当てられ、
そのうちのどれか1つに対して配送される
• Multicast Address
– 複数のインタフェースに対して割り当てられ、
それらすべてに配送される
HOST HOST HOST HOST 2001::1 2001::1 2001::1
Anycast とは
38
アドレス種別 (cont.)
• Loopback Address
– 自分自身を差すアドレス ::1• IPv4 互換アドレス
– ::IPv4 address – ::203.178.142.1 – 自動トンネリングのために使われるアドレス• IPv4 射影アドレス
– ::ffff:IPv4 address – ::ffff:203.178.142.1 – IPv4 しか実装していないノードであることを表すアドレ ス表記アドレス割り当て
3ffe:500::/24TLA ID
ISP A ISP B 組織 A 組織 B 3ffe:501::/32NLA ID
SLA ID
3ffe:501:1000:/48 3ffe:501:2000:/4840
経路の集約
3ffe:501::/32 ISP A ISP A 3ffe:500::/24 ISP B ISP B CC ISP DISP D ISP EISP E
10000 20000 30000 40000 50000 60000 70000 80000 90000
Projected routing table growth without CIDR/NAT
Deployment
Moore’s Law and NATs make routing work today
Source: http//www.telstra.net/ ops/bgptable.html
But they cannot be relied on forever
Growth in BGP Route Table
42
マルチホームへの対応
3ffe:501:1000::/48 2001:218:1800::/48ISP1
Multi-Home NetworkISP2
3ffe:501:1000:1000::/64 2001:218:1800:1000::/6444
IPv4 ヘッダ
Ver HL TOS Total LengthIdentification Flag Fragment Offset
TTL Protocol Header Checksum
Source Address Destination Address Options Padding
黒文字は IPv6 にて
削除もしくは名称変
更されたフィールド
IPv4
IPv6 ヘッダ
Ver TrafficClass Flow Label Payload Length Next
Header Hop Limit
Source Address Destination Address
• 赤字は IPv4 から
名称が変更された
フィールド
• 固定長となった
46
拡張ヘッダ
Next Header = TCP
Next Header = TCP
IPv6 Header TCP Header
IPv6 Header
Next Header = EXT
EXT Header TCP Header
•ホップごとのオプションヘッダ •オプションは別定義 •終点オプションヘッダ •オプションは別定義 •ルーティングヘッダ •フラグメントヘッダ •認証ヘッダ •暗号化ヘッダ •終点オプションヘッダ(最終) •オプションは別定義 Next Header = EXT Next Header = EXT Next Header = TCP
NDP
48
NDP の機能
• ARP(Address Resolution Protocol) から
NDP(Neighbor Discovery Protocol)へ
• ICMPとして実装
• IP 層とリンク層の対応付けを解決
– 近隣ノードの発見
– 近隣ノード不到達性の検知
– 重複アドレスの検知
– Multicast を利用
NDP の機能 (cont.)
• 自動設定
– ルータ発見
– ルータ種別の検知
– 自動アドレス設定
• 到達性
– 到達性の検知
– 不到達性の検知
• リダイレクト
50
ホスト自動設定
• Stateless Address Auto Configuration
• アドレスと経路を自動設定
• NDP として実装
• EUI-64 を用いたアドレス
• DNSサーバ (DHCP, Anycast)
Router RAプラグ&プレイ
52
ルータリナンバリング
• ネットワークのアドレスリナンバリング
• draft-ietf-ipngwg-router-renum-10 にて
制定中
• 組織内のネットワークアドレスを自動で動
的に変更可能
DHCPv6 の役割
• DHCP; Dynamic Host Configuration Protocol
• IPv6では不要であるとの意見が多かった。。
• DHCPは、やっぱり必要そうとの認識
– Address prefix allocation
– DNSサーバアドレス通知
54
マルチリンクサブネット
• 異なる種類のリンクをブリッジ接続
– e.g., IEEE1394, Ethernet, USB, etc
• MPLSのような リンクとIPの間に抽象化され
たフレームを定義するサブレイヤは定義しな
い。 単に、IPパケットをメディア変換する。
• 特に、SOHOにおいて有効。
56
IPsec の目標
• 機構はアルゴリムズに独立であり.取り替え可
能であること
• デフォルトアルゴリズムを指定
– keyed MD5,DES CBC,…
• 3つの要求を充足
– 認証
– 改ざん防止
58
2つのセキュリティ メカニズム
• AH − Authentication Header
– 認証と完全性を保証
• ESP − Encapsulating Security
Payload
60
DNS for IPv6
• RFC1886, RFC2874
• IPv6 アドレスのための新しい RR
– AAAA
– A6
– DNAME
• Inverse zone
– Ip6.int. (nibble boundary)
– Ip6.arpa. (bitlabel boundary)
アプリケーション
プログラミング
62
getaddrinfo
• gethostbyname の代わりとなる関数
• IPv4/IPv6 の違いを隠蔽する
int getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res)
– nodename: ホスト名
– servname: サービス名(ポート番号の文字列でも可) – hints: ヒントとして渡す
– addrinfo 構造体へのポインタ
getnameinfo
• gethostbyaddr に代わる関数
• IPv4/IPv6 の違いを隠蔽する
int getnameinfo(const struct sockaddr *sa,
socklen_t salen, char *host,size_t hostlen, char
*serv, size_t servlen, int flags);
64
製品開発及び展開の状況
•
ホスト
– Microsoft
• XP, Windows2000, Windows CE, WMT
– Sun Microsoft
• Solaris 8
– Apple
• MAC OS X Second Edition
– BSD UNIX Powered by KAME
• NetBSD, FreeBSD, OpenBSD
– Linux Powered by USAGI
– Embedded OS
IPv6 ノススメ
• IETF IPng WG – http://playground.sun.com/ipng/ • 6bone – http://www.6bone.net/ • IPv6.org – http://www.ipv6.org/ • 6bone-JP – http://6bone.v6.wide.ad.jp/ • KAME BSD – http://www.kame.net • USAGI Linux – http://www.linux-ipv6.org/ • Freenet666