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. <<JUDGMENT>> <=================== 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. <<JUDGMENT>> <=================== 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.
RFC2765
4.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