F_Reassembly_dst - Fragment Reassembly (Destination Addresses Differ Between Fragments)
Host and Router
None
Verify that a node correctly reassembles fragmented packets and distinguishes between packet fragments using the Source Address, Destination Address and Fragment ID.
TN NUT
| |
|-------------------------->|
| Echo Request (1st) |
| Dst.addr = NUT-LLA |
| |
|-------------------------->|
| Echo Request (2nd) |
| Dst.addr = NUT-GA |
| |
|-------------------------->|
| Echo Request (3rd) |
| Dst.addr = NUT-LLA |
| |
|<--------------------------|
| ICMP Error |
| |
| |
v v
1. TN transmits 1st, 2nd and 3rd Fragments in order.
1st and 3rd Fragments have a Destination Address of the link-local address of the NUT.
2nd Fragment has a Destination Address of of the global address of the NUT.
The Source Addresses and Fragment IDs for all fragments are the same.
2. Observe the packets transmitted by the NUT.
Echo Request Data (original) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 88
NextHeader = 58 (ICMPv6)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Link Local Address
ICMP Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = (auto)
SequenceNumber = 0
PayloadData = data repeat{0x1, 40}
data repeat{0x2, 40}
Echo Request Data (1st fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 40
NextHeader = 44 (Fragment Header)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 0
MFlag = 1
Identification = 32bit (Automatic generation)
Payload
data = 32 octets from the head of ICMP Echo request
Echo Request Data (2nd fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 40
NextHeader = 44 (Fragment Header)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Global Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 4
MFlag = 0
Identification = 32bit (Automatic generation)
Payload
data = 32 octets from the back of ICMP Echo request
Echo Request Data (3rd fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 32
NextHeader = 44 (Fragment Header)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 8
MFlag = 0
Identification = 32bit (Automatic generation)
Payload
data = 24 octets from the back of ICMP Echo request
PASS: The NUT must not transmit an Echo Reply to TN,
as the Echo Request could not be reassembled due to differences in the Destination Address.
The NUT should transmit an ICMPv6 Time Exceeded Message to TN sixty seconds after reception of 1st Fragment.
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 88
NextHeader = 58 (ICMPv6)
SourceAddress = NUT Link Local Address
Destination Address = TN Link Local Address
ICMP Echo Reply
Type = 3 (Time Exceeded)
Code = 1 (Fragment reassembly time exceeded)
Checksum = (auto)
Reserved = 0
PayloadData = (Sent Packet (1st))
Common Test Cleanup
perldoc V6evalTool