rfc2765_4.1_options.seq - Verify IPv6 <-> IPv4 header
translation in accordance with RFC2765 [SIIT]
Router
rfc2765_4.1_options.seq [-tooloption ...]
-p rfc2765_4.1_options.def
Before this test starts, run initialize.seq.
This test verifies that NUT drops packets with unexpired Routing
Headers, and sends back ICMPv6 Parameter Problem errors.
Network Topology
Link0
--------------------------
| |
TN NUT
| |
--------------------------
Link1
TN -- (Link0) -- NUT NUT -- (Link1) -- TN
--------------------- ------------------------
1.1.
===================>
ICMPv6 Echo Request
IPv6 Header
src address : TN LINK0 IPv4 embedded IPv6 address
dst address : TN LINK1 IPv4 embedded IPv6 address
Routing option header
RoutingType = 1;
SegmentsLeft = 0;
Address = TN LINK1 IPv4 embedded IPv6 address
ICMPv6 echo request 1.2.
<>
<===================
ICMPv6 Parameter Problem (Type 4, Code 0)
IPv6 Header
src address : NUT LINK0 global IPv6 address
dst address : TN LINK0 IPv4 embedded IPv6 address
ICMPv6 Parameter Problem
Type = 4
Code = 0
Pointer = 43
Payload = IPv6 Echo Request packet
2.1.
===================>
ICMPv6 Echo Request
IPv6 Header
src address : TN LINK0 IPv4 embedded IPv6 address
dst address : TN LINK1 IPv4 embedded IPv6 address
Hop-By-Hop option header
PadN (3 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
Routing option header
RoutingType = 0;
SegmentsLeft = 1;
Address = TN LINK1 IPv4 embedded IPv6 address
Fragment option header
NextHeader = 60; // Destination option header
Destination option header
PadN (3 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
ICMPv6 echo request 2.2.
<>
<===================
ICMPv6 Parameter Problem (Type 4, Code 0)
IPv6 Header
src address : NUT LINK0 global IPv6 address
dst address : TN LINK0 IPv4 embedded IPv6 address
ICMPv6 Parameter Problem
Type = 4
Code = 0
Pointer = 51
Payload = IPv6 Echo Request packet
<< PASS >>
NUT sends back two ICMPv6 Parameter Problem packets. << FAIL >>
NUT translates the ICMPv6 echo requests to
ICMPv4 echo requests or doesn't send back two
ICMPv6 Parameter Problem packets.
B4.1. Translating IPv6 Headers into IPv4 Headers If a routing header with a non-zero Segments Left field is present
then the packet MUST NOT be translated, and an ICMPv6 "parameter
problem/ erroneous header field encountered" (Type 4/Code 0) error
message, with the Pointer field indicating the first byte of the
Segments Left field, SHOULD be returned to the sender.
perldoc V6evalTool