[Bug 273557] Regression preventing bhyve from running inside a jail without IP after f74147e26999838e03a522bf59ea33bef470d356) breaks support for jailing bhyve with IPv4 and IPv6 disabled. Patch included.

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 11 Oct 2023 20:09:39 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273557

--- Comment #13 from crest@rlwinm.de ---
The patch changes the bhyve tap network backend code invoked to open devices
with names starting with "tap" or "vmnet". Since the code is already exclusive
to the if_tuntap driver in tap or vmnet mode I can't see any problem with
relying on one *more* driver specific ioctl(). As far as I can tell there is no
possible configuration where the existing code works as intended, but the patch
wouldn't also work.

Netlink sockets shouldn't offer any way for a bhyve process attached to a vnet
enabled jail to even address network interface in its parent jail (normally the
unjailed host) to bring it up (or down). Anything else would be a security
problem. The device file descriptor is the natural API endpoint to bring an
interface up. It is the capability to manipulate a tap device through the
single opening allowed per tap device (at a time). Having to query the tap
device for its interface name or index to reference the interface in a request
to change interface state by name or index is also a race condition since the
interface could've been destroyed and its name or index reused. Using the file
descriptor precludes any race condition similar to funlinkat() vs unlinkat().

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