Re: jail.conf question (vnet.interface)

From: James Gritton <jamie_at_gritton.org>
Date: Sun, 06 Jun 2021 16:23:58 UTC
On 2021-06-06 06:35, Milan Obuch wrote:
> Hi,
> 
> for vnet jails, one needs to move some interface into created virtual
> stack. In jail.conf, this could be achieved using
> 
> jail0
>  {vnet;
>   vnet.interface = re2;
>  }
> 
> and initialize moved interface using standard /etc/rc.conf 
> configuration
> file in jail jail0.
> 
> Adding small paragraph about this in jail.conf man page would be
> useful. I know it is in jail man page in some form, but it deserves
> mentioning this in example section in jail.conf man page. At least,
> this makes it easier to find for first comers :) (Well, that's not me,
> I am using vnet jails aka VIMAGE from the start as an experimental
> feature in FreeBSD 4 or 5, almost 20 years ago.)

True, it would make sense to add a vnet example, since it's now included
in the default kernel.

> I need more interfaces moved this way. It is no problem issue manually
> 
> ifconfig re3 vnet jail0
> 
> but trying to write
> 
> jail0
>  {vnet;
>   vnet.interface = re2;
>   vnet.interface = re3;
>  }
> 
> in jail.conf means only re3 is moved and can be configured with
> standard rc.conf config file. First instance (re2) is kind of
> overwritten and forgotten.
> 
> Is it possible to move more interfaces this way at all? I'd like to
> avoid any hacks if possible, and any workaround for this is ugly...

It's not possible to add more than one interface that way.  It would
make sense for vnet.interface to be an array, so you could say have a
comma-separated list or say "vnet.interface += re3".

Currently, anything more than one interface would need to be an ifconfig
command added to "exec.created".

- Jamie