acceptTooBigMesgOnlink - Verify changing Path MTU w/ received Too Big Message on a link
Host
acceptTooBigMesgOnlink.seq [-tooloption ...] -p acceptTooBigMesgOnlink.def
This test evaluate the behavior of NUT when it receive the ICMP
Packet Too Big Message.
In this test, NUT is a host and TN plays a Roll of Router and
other host.
Phisical Network configuration
--------+---------------+----------
| |
NUT TN
Logical Network Configuration
HOST-B NUT
| |
-------+--------+-------+--------
|
Proxy-C
|
--------+-------+----------------
|
HOST-A
In this test, NUT receives variable Packet Too Big Message.
- Decrease PMTU for A from 1500 to 1400
- Re-decrease PMTU for A from 1400 to 1304
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.
"acceptTooBigMesgOnlink" verify NUT's behavior when it receives
ICMP Packet Too Big Mesg even though the destination address
is Link-Local Address.
TN NUT
| |
---+------------+------
1. Confirm MTU (MTU=1500) ------------------------------
1.1
TN send Echo Request.
TN(B) === echo request(1500) ===========> NUT
1.2
NUT send Echo Reply.
<< JUDGMENT 1 >>
TN(B) <=== echo reply(1500) ============= NUT
2. PKT TOO BIG (MTU=1400) ------------------------------
2.1
TN send Echo Request.
TN(A) === echo request(1/2 MTU=1400) ===> NUT
TN(A) === echo request(2/2 MTU= 156) ===> NUT
2.2
NUT send Echo Reply.
TN(A) <=== echo reply(1500) ============= NUT
2.3
TN send ICMPv6 Too Big Mesg include MTU (1400).
TN(C) == ICMPv6 Too Big Mesg(MTU=1400) => NUT
2.4
TN send Echo Request.
TN(A) === echo request(1/2 MTU=1400) ===> NUT
TN(A) === echo request(2/2 MTU= 156) ===> NUT
2.5
NUT send Echo Reply
<< JUDGMENT 2 >>
TN(B) <=== echo reply(1400 1/2) ========= NUT
TN(B) <=== echo reply( 156 2/2) ========= NUT
3. Confirm MTU for B(MTU=1500) ------------------------------
3.1
TN send Echo Request.
TN(B) ==== echo request(1500) ==========> NUT
3.2
NUT send Echo Reply.
<< JUDGMENT 3 >>
TN(B) <==== echo reply(1500) ============ NUT
4. PKT TOO BIG (MTU=1304) ------------------------------
4.1
TN send Echo Request.
TN(A) === echo request(1304 1/2) =======> NUT
TN(A) === echo request( 154 2/2) =======> NUT
4.2
NUT send Echo Reply.
TN(A) <=== echo reply(1400) ============= NUT
4.3
TN send ICMPv6 Too Big Mesg include MTU (1304).
TN(C) = ICMPv6 Too Big Mesg(MTU=1304) ==> NUT
4.4
TN send Echo Request.
TN(A) === echo request(1304 1/2) =======> NUT
TN(A) === echo request( 154 2/2) =======> NUT
4.5
NUT send Echo Reply
<< JUDGMENT 4 >>
TN(A) <=== echo reply(1304 1/2) ========= NUT
TN(A) <=== echo reply( 154 2/2) ========= NUT
<< JUDGMENT 1 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT recognizes Link MTU is greater equal than 1500.
And replied packet was correct.
<< JUDGMENT 2 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT set valid MTU in received Packet Too Big message.
And fragmented packets are correct.
<< JUDGMENT 3 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT treats the MTU in Packet Too Big Message independently.
And fragmented packets are correct.
<< JUDGMENT 4 -PASS- >>
NUT send Echo Reply
"PASS" means that NUT re-set valid MTU in received Packet Too Big message .
And fragmented packets are correct.
perldoc V6evalTool
perldoc V6evalRemote