Date: Mon, 6 Nov 2017 09:53:09 -0500 From: Viktor Dukhovni <freebsd@dukhovni.org> To: freebsd-net@freebsd.org Subject: Re: FreeBSD 11.1-RELEASE: Kernel panic in ipv6_output() via tcp6_usr_connect() Message-ID: <39EFBDF9-B313-4472-85CF-D2D5D508E991@dukhovni.org> In-Reply-To: <b84d376f-ac8f-cc88-8102-3500814750ef@yandex.ru> References: <FCC0833F-AA88-4F27-9DA3-4FA1218C49DB@dukhovni.org> <86dcc06d-b98c-cc1f-8726-8afb011871e3@yandex.ru> <DAB7BA87-49E8-483D-8837-FA3D32711AF1@dukhovni.org> <94e12e46-f54a-ae22-3f4c-0bd9ac7e1fc9@yandex.ru> <20171106044000.GM3322@mournblade.imrryr.org> <b84d376f-ac8f-cc88-8102-3500814750ef@yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Nov 6, 2017, at 6:28 AM, Andrey V. Elsukov <bu7cher@yandex.ru> wrote:
>
>> Reverting the rule on a running system back to "ip", still yields
>> no panics, but I am now running a different 11.1 kernel built from
>> SVN with my "stf" patch. So it is sadly not quite clear where the
>> problem was, my original configuration, the older kernel, something
>> else?
>
> I think it is the right assumption, that IPv6 packet got corrupted by
> nat44 and then ip6_output() is confused by incorrect packet, especially
> wrong packet length may lead to fragmentation and due to the discrepancy
> between ip6_plen and m_pkthdr.len ip6_fragment() creates wrong fragments
> chain.
>
> I think the following patch should be enough to fix the problem:
>
> Index: sys/netpfil/ipfw/ip_fw2.c
> ===================================================================
> --- sys/netpfil/ipfw/ip_fw2.c (revision 325354)
> +++ sys/netpfil/ipfw/ip_fw2.c (working copy)
> @@ -2563,7 +2563,7 @@ do { \
> case O_NAT:
> l = 0; /* exit inner loop */
> done = 1; /* exit outer loop */
> - if (!IPFW_NAT_LOADED) {
> + if (!is_ipv4 || !IPFW_NAT_LOADED) {
> retval = IP_FW_DENY;
> break;
> }
>
>
Would this cause the packet to be denied, or passed through without
nat? Presumably, I would then have to have "ip4" and not "ip" as
"ip6" would then be denied by the "nat" rule. Right?
Any comments on my message (and patch) with subject:
[Patch] The 6to4 stf0 interface flapping in/out of tentative in FreeBSD 11
How do I get this addressed by the maintainer of stf?
--
Viktor.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39EFBDF9-B313-4472-85CF-D2D5D508E991>
