Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2020 07:50:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 245181] Proxy ARP (net.link.ether.inet.proxyall) does not work for FIB other than 0
Message-ID:  <bug-245181-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D245181

            Bug ID: 245181
           Summary: Proxy ARP (net.link.ether.inet.proxyall) does not work
                    for FIB other than 0
           Product: Base System
           Version: 12.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: freebsd-bugzilla@thismonkey.com

Through troubleshooting and subsequent source code verification
(sys/netinet/if_ether.c) it appears that FreeBSD does not perform proxy ARP=
 for
ARP requests whose target host reside in any FIB other than FIB 0.

Code at line 1073 indicates this:

/* XXX MRT use table 0 for arp checks */=20=20=20=20=20=20=20=20=20=20=20=
=20=20
if (fib4_lookup_nh_basic(0, isaddr, 0, 0, &nh4) !=3D 0)
        goto drop;=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20

This seems to be an incomplete implementation of the FIB functionality.=20
FreeBSD should
1) lookup the FIB of the interface on which the ARP request arrived
2) perform a route lookup of the target in correct FIB
3) perform sanity checks
4) proxy-reply to the ARP request accordingly

Without this, operations like dropping some cloned interfaces into a non-ze=
ro
FIB are futile.

Thanks.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-245181-227>