pingwRH - Verify the behavior of NUT when it receives ICMP Echo Request which has Routing Header and Greater size than PMTU for next hop.
Host(LCNA)
pingwRH.seq [-tooloption ...] -p pingwRH.def
In this test, NUT is a host(LCNA) and TN plays a Roll of Router and
other host.
Phisical Network configuration
--------+---------------+----------
| |
NUT TN
Logical Network Configuration
NUT
|
----------------+-------+--------
|
Router-A
|
----------------+-------+--------
|
HOST-A
(NotYet)In this test, NUT receives strange Packet Too Big Message.
- Smaller MTU(1200) than Minimum MTU(1280)
(NotYet)The TN send a RA to assign global address prefix.
TN NUT
| |
---+------------+------
===multicast RA===>
src=TN's link-local
dst=LinkLocal-all-node
M=0, O=0,
Lifetime=3600, ReachableTime=60000, RetransTimer=1005
Prefix:
L=1, A=1,
ValidLifetime=3600005, PreferredLifetime=3600005
Prefix=3ffe:501:ffff:100::, PrefixLength=64
Wait (5 sec.)
Ignoring DAD packets for global address.
(NotYet)"pingwRH" verify NUT's behavior when it receives
ICMP Packet Too Big Mesg.
TN NUT
| |
---+------------+------
1. Initializing send PKT TOO BIG (MTU=1280) if required ---
1.1
TN send Echo Request.
TN(A) === echo request(1400) ===> NUT
1.2
NUT send Echo Reply.
TN(A) <=== echo reply(1400) ===== NUT
1.3
TN send ICMPv6 Too Big Mesg include MTU (1280).
TN(A) === ICMPv6 Too Big Mesg(MTU=1280) ===> NUT
1.4
TN send Echo Request.
TN(A) === echo request(1280) ===> NUT
1.5
NUT send Echo Reply.
<< JUDGMENT 1 >>
TN(A) <=== echo reply(1280) ==== NUT
1.6
TN send Echo Request.
TN(B) === echo request(1400) ===> NUT
1.7
NUT send Echo Reply
<< JUDGMENT 2 >>
TN(B) <=== echo reply(1280 1/2) === NUT
TN(B) <=== echo reply( 176 2/2) === NUT
2. PKT TOO BIG (MTU=1400) -------------------------------
2.1
TN send ICMPv6 Too Big Mesg include MTU (1400).
TN(B) === ICMPv6 Too Big Mesg(MTU=1400) ===> NUT
2.4
TN send Echo Request.
TN(B) === echo request(1400) ===> NUT
2.5
NUT send Echo Reply
<< JUDGMENT 3 >>
TN(B) <=== echo reply(1280 1/2) === NUT
TN(B) <=== echo reply( 176 2/2) === NUT
(not yet)
<< JUDGMENT 1 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT can send ICMP Echo Reply which size is 1280.
And packets are correct.
<< JUDGMENT 2 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT does not transmit packets bigger than Minimum MTU.
And fragmented packets are correct.
But LCNA may not be able to deal with packets greater than Minimum MTU,
and also LNCA may not be able to fragment packets.
In this case LCNA could not send Echo Reply.
It is not critical, it means just "not supporting".
The worst case is sending Echo Reply (1400) without fragment.
It means NUT does not pay attention to received Packet Too Big Message.
And also if the NUT does not support PMTU Discovery function,
it MUST NOT send greater packets than Minimun MTU.
<< JUDGMENT 3 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT does not increase MTU by receiving PackeTooBig Message.
And fragmented packets are correct.
But LCNA may not be able to deal with packets greater than Minimum MTU,
and also LNCA may not be able to fragment packets.
In this case LCNA could not send Echo Reply.
It is not critical, it means just "not supporting".
The worst case is sending Echo Reply (1400) without fragment.
It means NUT increase PMTU by receiving Packet Too Big Message.
And also if the NUT does not support PMTU Discovery function,
it MUST NOT send greater packets than Minimun MTU.
perldoc V6evalTool
perldoc V6evalRemote