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 ignores IPv6 header options (except
unexpired Routing Headers, which are not tested here.)
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
Hop-By-Hop option header
PadN (3 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
ICMPv6 echo request 1.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
ICMPv4 echo request
2.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 = 0;
SegmentsLeft = 0;
Address = "::"
ICMPv6 echo request 2.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
ICMPv4 echo request
3.1.
===================>
ICMPv6 Echo Request
IPv6 Header
src address : TN LINK0 IPv4 embedded IPv6 address
dst address : TN LINK1 IPv4 embedded IPv6 address
Fragment option header
NextHeader = 58; // ICMPv6
ICMPv6 echo request 3.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
DF = 1
ICMPv4 echo request
4.1.
===================>
ICMPv6 Echo Request
IPv6 Header
src address : TN LINK0 IPv4 embedded IPv6 address
dst address : TN LINK1 IPv4 embedded IPv6 address
Destination option header
PadN (3 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
Pad1 (1 bytes)
ICMPv6 echo request 4.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
ICMPv4 echo request
5.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 = 0;
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 5.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
DF = 1
ICMPv4 echo request
6.1.
===================>
ICMPv6 Echo Request
IPv6 Header
src address : TN LINK0 IPv4 embedded IPv6 address
dst address : NUT LINK0 global IPv6 address
Routing option header
RoutingType = 0;
SegmentsLeft = 1;
Address = TN LINK1 IPv4 embedded IPv6 address
ICMPv6 echo request 6.2.
<>
===================>
ICMPv4 Echo request
IPv4 Header
src address : TN LINK0 IPv4 address
dst address : TN LINK1 IPv4 address
ICMPv4 echo request
<< PASS >>
NUT ignores all options and translates the echo requests. << FAIL >>
NUT doesn't translate the ICMPv6 echo requests to
ICMPv4 echo requests.
B4.1. Translating IPv6 Headers into IPv4 Headers If any of an IPv6 hop-by-hop options header, destination options
header, or routing header with the Segments Left field equal to zero
are present in the IPv6 packet, they are ignored i.e., there is no
attempt to translate them. However, the Total Length field and the
Protocol field would have to be adjusted to "skip" these extension
headers.
perldoc V6evalTool