Re: tap interface forcing a permanent ARP association
Date: Fri, 01 Dec 2023 04:20:21 UTC
The plot thickens...
Paul Procacci <pprocacci@gmail.com> writes:
> [1:text/plain Show]
>
>
> [2:text/html Hide Save:noname (7kB)]
>
> On Wed, Nov 29, 2023 at 10:35 PM Olivier <Olivier.Nicole@cs.ait.ac.th>
> wrote:
>
> Hi,
>
> I have an OpenVPN server running on FreeBSD (13.2-p5). I have included
> the following in /etc/rc.conf:
>
> cloned_interfaces="tap0 bridge0"
> ifconfig_bridge0="addm vmx0 addm tap0"
> ifconfig_tap0="UP"
> openvpn_enable="YES"
>
> And it works fine, except that ip maps the MAC address of tap0 to the IP
> of my web server (on another machine), and the mapping is
> "permament":
>
> www.cs.ait.ac.th (10.41.170.42) at aa:bb:cc:dd:ee:ff on tap0 permanent
> [ethernet]
>
> That has two adverse effects:
> - any VPN client cannot access my web server as they would get a wrong
> MAC address;
> - the VPN server will sometime reply to an ARP request on my LAN,
> providing an obviously wrong answer.
>
> Poking around, I found out that it was due to the "ifconfig_tap0=UP"
> line. Further more, that line is not needed for OpenVPN to start
> properly; so I have disabled it.
>
> But I would like to understand why turning up the tap interface causes
> it to update the ARP table.
>
> Best regards,
>
> Olivier
>
> --
>
> If I'm being honest, what you're saying sounds really strange.
> NIC vendors have prefixes assigned to them for their MAC usage and the
> chances of collision between two machines especially since the local nic in
> question is a tap is an absolute fat 0 chance.
> -- That is, unless somewhere someone is doing something they shouldn't, or
> perhaps the entire picture wasn't provided and information is missing.
I have checked that the hostuuid are different and that the MAC
addresses on both machines are different.
I have conducted some more tests on a machine that has been created
from scratch, still FreeBSD RELEASE-13.2-p5
$ ifconfig tap0 create
$ ifconfig tap0 UP
ifconfig: WARNING: setting interface address without mask is deprecated,
default mask may not be correct.
$ ifconfig tap0
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:a4:65
inet 192.41.170.42 netmask 0xffffff00 broadcast 192.41.170.255
groups: tap
media: Ethernet autoselect
status: no carrier
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Does mofidy the ARP table and associates the IP of my web server to the
MAC of the interface tap0:
$ arp -a | grep 192.41.170.42
www.cs.ait.ac.th (192.41.170.42) at 58:9c:fc:10:a4:65 on tap0 permanent [ethernet]
While:
$ ifconfig tap0 create
$ ifconfig tap0 up
$ ifconfig tap0
tap0: flags=8803<UP,BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:a4:65
groups: tap
media: Ethernet autoselect
status: no carrier
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Doesn't:
$ arp -a | grep 192.41.170.42
$
Any idea is welcome.
Best regards,
Olivier