acceptTooBigMesg - Verify changing Path MTU w/ received Too Big Message
Host
acceptTooBigMesg.seq [-tooloption ...] -p acceptTooBigMesg.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
NUT | ----------------+-------+-------- | Router-A | --------+-------+-------+-------- | | Router-B HOST-A | --------+-------+-------+-------- | | Router-C HOST-B | ----------------+-------+-------- | HOST-C
In this test, NUT receives variable Packet Too Big Message. - Decrease PMTU for A from 1500 to 1400 - Decrease PMTU for B from 1500 to 1280 - Re-decrease PMTU for A from 1400 to 1304 - Increase PMTU for B from 1280 to 1400 - Incorrect PMTU value for B 1272
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.
"acceptTooBigMesg" verify NUT's behavior when it receives ICMP Packet Too Big Mesg.
TN NUT | | ---+------------+------
1. PKT TOO BIG (MTU=1400) ------------------------------ 1.1 TN send Echo Request. TN(A) === echo request(1500) ===> NUT
1.2 NUT send Echo Reply.
TN(A) <=== echo reply(1500) === NUT
1.3 TN send ICMPv6 Too Big Mesg include MTU (1400). TN(A) === ICMPv6 Too Big Mesg(MTU=1400) ===> NUT
1.4 TN send Echo Request. TN(A) === echo request(1500) ===> NUT
1.5 NUT send Echo Reply << JUDGMENT 1 >> TN(A) <=== echo reply(1400 1/2) === NUT TN(A) <=== echo reply( 156 2/2) === NUT
2. PKT TOO BIG (MTU=1280) ------------------------------ 2.1 TN send Echo Request. TN(B) === echo request(1500) ===> NUT
2.2 NUT send Echo Reply.
TN(B) <=== echo reply(1500) === NUT
2.3 TN send ICMPv6 Too Big Mesg include MTU (1280). TN(B) === ICMPv6 Too Big Mesg(MTU=1280) ===> NUT
2.4 TN send Echo Request. TN(B) === echo request(1500) ===> NUT
2.5 NUT send Echo Reply << JUDGMENT 2 >> TN(B) <=== echo reply(1280 1/2) === NUT TN(B) <=== echo reply( 276 2/2) === NUT
3. PKT TOO BIG (MTU=1304) ------------------------------ 3.1 TN send Echo Request. TN(A) === echo request(1400) ===> NUT
3.2 NUT send Echo Reply.
TN(A) <=== echo reply(1400) === NUT
3.3 TN send ICMPv6 Too Big Mesg include MTU (1304). TN(A) === ICMPv6 Too Big Mesg(MTU=1304) ===> NUT
3.4 TN send Echo Request. TN(A) === echo request(1400) ===> NUT
3.5 NUT send Echo Reply << JUDGMENT 3 >> TN(A) <=== echo reply(1304 1/2) === NUT TN(A) <=== echo reply( 152 2/2) === NUT
4. PKT TOO BIG (MTU=1400 INCREASE) ------------------------------ 4.1 TN send Echo Request. TN(B) === echo request(1280) ===> NUT
4.2 NUT send Echo Reply.
TN(B) <=== echo reply(1280) === NUT
4.3 TN send ICMPv6 Too Big Mesg include MTU (1400). TN(B) === ICMPv6 Too Big Mesg(MTU=1400) ===> NUT
4.4 TN send Echo Request. TN(B) === echo request(1400) ===> NUT
4.5 NUT send Echo Reply << JUDGMENT 4 >> TN(B) <=== echo reply(1280 1/2) === NUT TN(B) <=== echo reply( 176 2/2) === NUT
5. PKT TOO BIG (MTU=1272) ------------------------------ 5.1 TN send Echo Request. TN(C) === echo request(1500) ===> NUT
5.2 NUT send Echo Reply.
TN(C) <=== echo reply(1500) === NUT
5.3 TN send ICMPv6 Too Big Mesg include MTU (1272). TN(C) === ICMPv6 Too Big Mesg(MTU=1272) ===> NUT
5.4 TN send Echo Request. TN(C) === echo request(1492) ===> NUT
5.5 NUT send Echo Reply << JUDGMENT 5 >> TN(C) <=== echo reply(1280 1/2) === NUT TN(C) <=== echo reply( 268 2/2) === NUT
5.6 TN send Echo Request. TN(C) === echo request(1000) ===> NUT
5.7 NUT send Echo Reply TN(C) <=== echo reply(1008 w/ FH) === NUT
<< JUDGMENT 1 -PASS- >> NUT send Echo Reply
"PASS" means that NUT set valid MTU in received Packet Too Big message. And fragmented packets are 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 set decreased size of valid MTU in received Packet Too Big message. And fragmented packets are correct.
<< JUDGMENT 4 -PASS- >> NUT send Echo Reply
"PASS" means that NUT doesn't set increased size of valid MTU in received Packet Too Big message. And fragmented packets are correct.
<< JUDGMENT 5 -PASS- >> NUT send Echo Reply "PASS" means that NUT set Minimum MTU, rather than MTU in received Packet Too Big Message, that is smaller than Minimum MTU. And NUT add Fragment header even though the packet is smaller than Minimu MTU.
perldoc V6evalTool perldoc V6evalRemote