Bug 250453

Summary: jexec does not set the fib of a jail
Product: Base System Reporter: Dirk Meyer <dinoex>
Component: kernAssignee: freebsd-jail (Nobody) <jail>
Status: New ---    
Severity: Affects Some People CC: lwhsu
Priority: ---    
Version: 12.1-RELEASE   
Hardware: amd64   
OS: Any   

Description Dirk Meyer freebsd_committer 2020-10-19 09:34:01 UTC
FreeBSD 12.1-RELEASE-p8 r364057 GENERIC amd64

Booted with fibs enabled:

/boot/loader.conf:
net.fibs="8"

Starting a jail with "exec.fib"
Networking inside is working as configured.

# jail -e '~' | tr '~' '\n'
name=adsl
exec.start="/usr/sbin/sshd -f /etc/ssh/sshd_config.adsl"
exec.stop=""
exec.clean
mount.nodevfs
exec.consolelog=/dev/console
path=/jail/adsl
host.hostname=t7a.adsl.example.com
ip4.addr=192.168.8.217
interface=vlan3
exec.fib=3
allow.raw_sockets
persist

Networking is working when logging in via SSH.

# ssh root@192.168.8.217
# netstat -nr4 | head -1
Routing tables (fib: 3)

Networking fails if commands are executed with "jexec".

# jexec adsl
# netstat -nr4 | head -1
Routing tables

Networking works if "jexec" is prefixed with the fib used.

# setfib 3 jexec adsl
# netstat -nr4 | head -1
Routing tables (fib: 3)

I would expect that attaching to a running jail, the fib of the jail is used.