IPv6 transition technology
DS-Lite (Dual Stack Lite)
fragmentation
必ず カプセル化した後 にしろ (MUST) とのこと
(6.3. Fragmentation and Reassembly) Fragmentation MUST happen after the encapsulation on the IPv6 packet. Reassembly MUST happen before the decapsulation of the IPv6 header. A detailed procedure has been specified in [RFC2473] Section 7.2.
- RFC2473 (Generic Packet Tunneling in IPv6 Specification) - Section 7.2. IPv4 Tunnel Packet Fragmentation
こう書いてある
DF-bit が立っている (SET) なら: Tunnel entry-point node はパケットを破棄 (discard) して、 ICMP unreachable (packet too big, recommended MTU size: xxx) を返す DF-bit が立っていない (CLEAR) なら: Tunnel entry-point node はカプセル化し、それから IPv6 tunnel packet をフラグメントする
で、理由が書いてないけど…?
- まず fragmentation/reassembly の挙動の確認:
- fragmentation: IPv4 なら intermediate node で, IPv6 なら src node で実施.
- reassembly: どちらも通常は dst node で. ただし NAT 時は NAT router がやる必要あり. (RFC2993 (Architectural Implications of NAT) - 6. Problems with NATs)
- IP header 内の関連フィールド: IPパケットごとのID (fragment同士は同じ数字), fragment flag (自分が最後の fragment なら 0 に), fragment offset field (元のIPパケットのpayloadのうち何バイト目からなのか)
- すでに fragment された IPv4 パケットが来たときに IPv4 をまたフラグメントすると困るから? -> そんなことはない
- バッファ沢山するとなると, “Fragmentation Buffer Full attack” が気になる? -> それはどちらでも起きうるのでは
- tunneling はどちらでもいいけど、 NAT しないといけないため IPv4 を fragment するのはだめ?
- A10 (ACOS) の実装例:
By default, fragmentation for IPv6 tunnel packets is enabled but fragmentation of IPv4 packets within the tunnel is disabled.
- ところでIPv6のフラグメンテーションは, source nodeでなら行って良い, と言うものらしい。 RFC
MAP-E (Mapping of Address and Port with Encapsulation)
- RFC: RFC7597
- 一部で利用されている ドラフト版 draft-ietf-softwire-map-03 も大事
fragmentation
8.3. Fragmentation and Path MTU Discovery より、 3つの仕組みを利用してMTU調整やfragmentationを行う:
- Path MTU Discovery (PMTUD)
- fragmentation
- transport-layer negotiation such as the TCP Maximum Segment Size (MSS) option
- Fragmentation
- MAP domain: フラグメントしないように MTU を調整しろ
その他 IPv6 関連情報
- RFC7721 ipv6 privacy and security survey
- RFC7217 SLAAC security and privacy concern
- RFC4941: ランダム生成したif IDを使い捨てる ipv6 プライバシー拡張
- IPv6 addressing - Stateless / Statefull / DHCPv6
- 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も