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