Re: ICMPv6 over lo0
- Reply: tuexen_a_freebsd.org: "Re: ICMPv6 over lo0"
- In reply to: tuexen_a_freebsd.org: "ICMPv6 over lo0"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 16 Nov 2022 07:54:49 UTC
16.11.2022 00:14, tuexen@freebsd.org пишет: > when using the master branch of today (or 13.1) I get when running > > tuexen@ampere128:~ % ping6 -c 1 -b 30000 -s 20000 ::1 > PING6(20048=40+8+20000 bytes) ::1 --> ::1 > 20008 bytes from ::1, icmp_seq=0 hlim=64 time=0.709 ms > > --- ::1 ping6 statistics --- > 1 packets transmitted, 1 packets received, 0.0% packet loss > round-trip min/avg/max/std-dev = 0.709/0.709/0.709/0.000 ms > > which is expected. What I don't expect is: > > tuexen@ampere128:~ % tcpdump -i lo0 -n > tcpdump: verbose output suppressed, use -v or -vv for full protocol decode > listening on lo0, link-type NULL (BSD loopback), capture size 262144 bytes > 22:06:38.835630 IP6 ::1 > ::1: frag (0|1232) ICMP6, echo request, seq 0, length 1232 > 22:06:38.835639 IP6 ::1 > ::1: frag (1232|1232) > 22:06:38.835641 IP6 ::1 > ::1: frag (2464|1232) > > Why is for the Echo Request an MTU of 1280 used, whereas for the response an MTU of 16384 > is used. > > Is this intended? At least for me, it is not expected... Hi Michael, I believe it is default behavior for ping6: ``` -u By default, ping asks the kernel to fragment packets to fit into the minimum IPv6 MTU. The -u option will suppress the behavior in the following two levels: when the option is specified once, the behavior will be disabled for unicast packets. When the option is more than once, it will be disabled for both unicast and multicast packets. ``` ``` % ktrace ping6 -c 1 -b 30000 -s 20000 ::1 % kdump | grep -A1 MIN_MTU 14793 ping6 CALL setsockopt(0x3,IPPROTO_IPV6,IPV6_USE_MIN_MTU,0x7fffffffe614,0x4) 14793 ping6 RET setsockopt 0 ``` ``` if (mflag != 1) { optval = mflag > 1 ? 0 : 1; if (setsockopt(ssend, IPPROTO_IPV6, IPV6_USE_MIN_MTU, &optval, sizeof(optval)) == -1) err(1, "setsockopt(IPV6_USE_MIN_MTU)"); } ``` -- WBR, Andrey V. Elsukov