Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Dec 2016 15:39:43 -0500
From:      "Isaac (.ike) Levy" <ike@blackskyresearch.net>
To:        Michael Grimm <trashcan@ellael.org>
Cc:        freebsd-jail@FreeBSD.org
Subject:   Re: multiple interfaces for jail.conf(1) and jail_set(2)
Message-ID:  <907B489D-899A-4204-96D8-ACF86EE829A7@blackskyresearch.net>
In-Reply-To: <45822529-2096-4B32-8515-F5875BEF7101@ellael.org>
References:  <0ED7F403-F14E-4A72-8E54-AF74AAE15061@blackskyresearch.net> <45822529-2096-4B32-8515-F5875BEF7101@ellael.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Wow, that=E2=80=99s rad Michael,

> On Dec 14, 2016, at 3:30 PM, Michael Grimm <trashcan@ellael.org> =
wrote:
>=20
> Isaac (.ike) Levy <ike@blackskyresearch.net> wrote:
>=20
>> Can I specify multiple IP interfaces and assign IP=E2=80=99s to them =
using jail.conf?
>=20
> Not sure if I understand your question correctly, but I do define the =
following in my jail.conf for VNET jails:
>=20
> #
> # host dependent global settings
> #
> $ip6prefixLOCAL		 =3D "fd00:dead:beef:1234";
>=20
> #
> # global jail settings
> #
> host.hostname		 =3D "${name}";
> path			 =3D "/usr/home/jails/${name}";
> mount.fstab		 =3D "/etc/fstab.${name}";
> exec.consolelog 	 =3D "/var/log/jail_${name}_console.log";
> vnet			 =3D "new";
> vnet.interface		 =3D "epair${jailID}b";
> exec.clean;
> mount.devfs;
> persist;
>=20
> #
> # network settings to apply/destroy during start/stop of every jail
> #
> exec.prestart		 =3D "sleep 2";
> exec.prestart		+=3D "/sbin/ifconfig epair${jailID} create up";
> exec.prestart		+=3D "/sbin/ifconfig bridge0 addm =
epair${jailID}a";
> exec.start		 =3D "/sbin/sysctl net.inet6.ip6.dad_count=3D0";
> exec.start		+=3D "/sbin/ifconfig lo0 127.0.0.1 up";
> exec.start		+=3D "/sbin/ifconfig epair${jailID}b inet =
${ip4_addr}";
> exec.start		+=3D "/sbin/ifconfig epair${jailID}b inet6 =
${ip6_addr}";
> exec.start		+=3D "/sbin/route add default -gateway =
10.1.1.254";
> exec.start		+=3D "/sbin/route add -inet6 default -gateway =
${ip6prefixLOCAL}::254";
> exec.stop		 =3D "/sbin/route del default";
> exec.stop		+=3D "/sbin/route del -inet6 default";
> exec.stop		+=3D "/bin/sh /etc/rc.shutdown";
> exec.poststop 		 =3D "/sbin/ifconfig epair${jailID}a =
destroy";
>=20
> #
> # individual jail settings
> #
> dns {
> 	$jailID		 =3D 1;
> 	$ip4_addr	 =3D 10.1.1.1;
> 	$ip4_addr_2	 =3D 10.1.1.2;
> 	$ip6_addr	 =3D ${ip6prefixLOCAL}::1/64;
> 	$ip6_addr_2	 =3D ${ip6prefixLOCAL}::2/64;
> 	exec.start	+=3D "/sbin/ifconfig epair${jailID}b inet  =
${ip4_addr_2} alias";
> 	exec.start	+=3D "/sbin/ifconfig epair${jailID}b inet6 =
${ip6_addr_2} alias";
> 	exec.start	+=3D "/bin/sh /etc/rc";
> }
>=20
> etc.

I=E2=80=99ll need to study/look up some of that syntax, to fully grok =
this, but that comprehensive example appears to hit the nail on the head =
several times over with the exec.start/exec.stop action.

Two questions though:

- I=E2=80=99m confused how you define the shell style $ variables in =
your individual jail settings above, e.g. =E2=80=98$ip4_addr_2 =3D =
10.1.1.2;=E2=80=99, why/how does that work?  Is that a variable to be =
expanded, or some other behavior?

> Again, not sure if I do understand your issue correctly, but the shown =
examples of exec.start, exec.stop, etc. are quite versatile to use.
>=20
> I do start/stop my jails by "service jail start/stop=E2=80=9D.

- Obviously you state you=E2=80=99re using service to start/stop jails, =
but shouldn=E2=80=99t this work with =E2=80=98jail -c <jailname>=E2=80=99,=
 or are these subsystems not interoperable?

Thanks!

Best,
.ike



>=20
> Hope that helps,
> Michael
>=20
>=20
>=20
> _______________________________________________
> freebsd-jail@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-jail
> To unsubscribe, send any mail to =
"freebsd-jail-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?907B489D-899A-4204-96D8-ACF86EE829A7>