Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Apr 2021 17:27:27 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Peter Blok <pblok@bsd4all.org>, freebsd-hackers@freebsd.org
Subject:   Re: 32-bit jail on 64-bit host
Message-ID:  <98b59e11-dc6b-9ae9-c233-204b82521ee2@grosbein.net>
In-Reply-To: <F9E8A7E3-C041-49C6-93E3-F44CB83A0858@bsd4all.org>
References:  <F9E8A7E3-C041-49C6-93E3-F44CB83A0858@bsd4all.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98b59e11-dc6b-9ae9-c233-204b82521ee2>