42
マルチホームへの対応
3ffe:501:1000::/48
2001:218:1800::/48
パケットフォーマット
44
IPv4 ヘッダ
Ver HL TOS Total Length
Identification Flag Fragment Offset
TTL Protocol Header Checksum Source Address
Destination Address
Options Padding
黒文字は
IPv6
にて 削除もしくは名称変 更されたフィールドIPv4
IPv6 ヘッダ
Ver Traffic
Class 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
IPv6 Header EXT Header EXT Header TCP Header
NDP
(Neighbor Discovery Protocol)
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)
RouterRA
プラグ&プレイ
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
において有効。– ルータレスでのSOHOネットワークの構築
56
セキュリティ機能
IPsec の目標
•
機構はアルゴリムズに独立であり.取り替え可 能であること•
デフォルトアルゴリズムを指定– keyed MD5,DES CBC,…
• 3
つの要求を充足– 認証
– 改ざん防止
58
2 つのセキュリティ メカニズム
• AH − Authentication Header
–
認証と完全性を保証• ESP − Encapsulating Security Payload
–
機密性を保証DNS
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 構造体へのポインタ
– res: 結果を格納する 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);
– sockaddr 構造体からホスト名を返す
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
• TRON@ Access, KASAGO@Elmic
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/
• Freenet6
66