I'm performing an IPv6 Ready Logo Phase-2 Test on my FreeBSD 9.1R i386. And got some strange problems.
On #169 to #175 of nd.p2 (Neighbor Discovery for IPv6), I got a "Cleanup Fail" and "Initialization Fail". So I make another FreeBSD 7.1R (the only FreeBSD version that I can find on the Internet that passed this test) and do some
On successful (Node under test is 7.1R)
In the indicated, I saw TN (Test Node, 9.1R) send a icmp6 redirect. Then NUT (Node Under Test, 7.1R) will not reply next icmp6 echo. That's what is expected to happen.
On failure (Node under test is 9.1R)
See the indicated lines, after receiving an icmp6 redirect. The 9.1R NUT still replies with the next icmp6 echo req.
Is there any sysctl OIDs to control this behavior? Or have I missed anything? Thanks for any hints or advises.
Below are configuration files of TN.
/etc/rc.conf
/etc/sysctl.conf
On #169 to #175 of nd.p2 (Neighbor Discovery for IPv6), I got a "Cleanup Fail" and "Initialization Fail". So I make another FreeBSD 7.1R (the only FreeBSD version that I can find on the Internet that passed this test) and do some
tcudump -vvi to verify what's wrong is it.On successful (Node under test is 7.1R)
Code:
14:06:18.136591 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:0:250:60ff:fe80:3883 > 3ffe:501:ffff:100:250:56ff:fe80:6a40: [icmp6 sum ok] ICMP6, echo request, seq 0
14:06:18.136819 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:100:250:56ff:fe80:6a40 > 3ffe:501:ffff:0:250:60ff:fe80:3883: [icmp6 sum ok] ICMP6, echo reply, seq 0
>> 14:06:18.179909 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 40) fe80::200:ff:fe00:a0a0 > 3ffe:501:ffff:100:250:56ff:fe80:6a40: [icmp6 sum ok] ICMP6, redirect, length 40, 3ffe:501:ffff:0:250:60ff:fe80:3883 to 3ffe:501:ffff:0:250:60ff:fe80:3883 <<
>> 14:06:18.203823 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:0:250:60ff:fe80:3883 > 3ffe:501:ffff:100:250:56ff:fe80:6a40: [icmp6 sum ok] ICMP6, echo request, seq 0 <<
14:06:18.203986 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) 3ffe:501:ffff:100:250:56ff:fe80:6a40 > ff02::1:ff80:3883: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 3ffe:501:ffff:0:250:60ff:fe80:3883
In the indicated, I saw TN (Test Node, 9.1R) send a icmp6 redirect. Then NUT (Node Under Test, 7.1R) will not reply next icmp6 echo. That's what is expected to happen.
On failure (Node under test is 9.1R)
Code:
14:10:19.054571 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:0:250:60ff:fe80:3883 > 3ffe:501:ffff:100:250:56ff:fe80:6657: [icmp6 sum ok] ICMP6, echo request, seq 0
14:10:19.054790 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:100:250:56ff:fe80:6657 > 3ffe:501:ffff:0:250:60ff:fe80:3883: [icmp6 sum ok] ICMP6, echo reply, seq 0
>> 14:10:19.097796 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 40) fe80::200:ff:fe00:a0a0 > 3ffe:501:ffff:100:250:56ff:fe80:6657: [icmp6 sum ok] ICMP6, redirect, length 40, 3ffe:501:ffff:0:250:60ff:fe80:3883 to 3ffe:501:ffff:0:250:60ff:fe80:3883 <<
14:10:19.119554 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:0:250:60ff:fe80:3883 > 3ffe:501:ffff:100:250:56ff:fe80:6657: [icmp6 sum ok] ICMP6, echo request, seq 0
>> 14:10:19.119743 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 3ffe:501:ffff:100:250:56ff:fe80:6657 > 3ffe:501:ffff:0:250:60ff:fe80:3883: [icmp6 sum ok] ICMP6, echo reply, seq 0 <<
14:10:21.159012 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::250:60ff:fe80:3883 > ff02::1: [icmp6 sum ok] ICMP6, neighbor advertisement, length 32, tgt is 3ffe:501:ffff:0:250:60ff:fe80:3883, Flags [override]
See the indicated lines, after receiving an icmp6 redirect. The 9.1R NUT still replies with the next icmp6 echo req.
Is there any sysctl OIDs to control this behavior? Or have I missed anything? Thanks for any hints or advises.
Below are configuration files of TN.
/etc/rc.conf
Code:
ipv6_enable="YES"
ipv6_network_interfaces="em0"
ipv6_default_interface="em0"
ifconfig_em0_ipv6="inet6 up accept_rtadv nud"
rtsold_enable="YES"
rtsold_flags="-1 -F em0"
/etc/sysctl.conf
Code:
net.inet6.icmp6.nd6_onlink_ns_rfc4861=1
net.inet6.ip6.accept_rtadv=1