32-bit jail on 64-bit host

Eugene Grosbein eugen at grosbein.net
Thu Apr 22 10:27:53 UTC 2021


22.04.2021 15:36, Peter Blok wrote:
> Hi,
> 
> I have created a 32-bit jail on a 64-bit running 12-STABLE. The jail is also build using the same source.
> 
> The jail gives me a 32-bit environment. I’m getting an IP address and I can ping others on the same network segment.
> 
> But I can’t set a default route.
> 
> route add default 192.168.1.1
> route: writing to routing socket: Invalid argument
> add net default: gateway 192.168.1.1 fib 0: Invalid argument
> 
> # netstat -rn
> Routing tables
> (0) (0) UH 
> (0) (0) U 
> (0) (0) UHS 
> (0) (0) UH 
> (0) (0) U 
> (0) (0) UHS
> 
> # ifconfig -a
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
> 	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
> 	inet6 ::1 prefixlen 128
> 	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
> 	inet 127.0.0.1 netmask 0xff000000
> 	groups: lo
> 	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> e0b_websip: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> 	options=8<VLAN_MTU>
> 	ether 0e:88:d7:20:99:80
> 	hwaddr 02:80:ad:6e:79:0b
> 	inet 192.168.1.205 netmask 0xffffff00 broadcast 192.168.1.255
> 	groups: epair
> 	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
> 	status: active
> 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 
> Any idea how to fix this?

You will have to put in jail ABI-compatible userland utilities that talk with a kernel directly.
This means 64 bit versions of binaries like route, ipfw, maybe netstat etc.

You should not assume and use jail as virtual machine, it is not. It is a container for a set of processes
sharing same kernel with other jails. If you need full-blown virtual machine, use bhyve.



More information about the freebsd-hackers mailing list