Need help with VNET, Jail and IPv6
Jacques Foucry
jacques+freebsd at foucry.net
Wed Jan 6 11:07:50 UTC 2021
Le mardi 05 janv. 2021 à 21:39:27 (+0000), Mina Galić à écrit:
>
> > Hello all,
>
> Hi Jacques,
>
>
> > On my hosted machine I already have many "classical" jails.
> >
> > But I would like to switch to modern schema with Bridge and vnet.
> >
> > With IPv4 I have no problem. In fact is almost like without Bridge/VNET:
>
> For:
>
> https://alpha.pkgbase.live/
>
> instead of libioc I just used jail.conf. With:
>
> https://antranigv.am/weblog_en/posts/vnet-jail-howto/
I already read this and succesfully made a IPv4 jail with this tuto.
>
> as basis for the IPv4 setup.
>
> > My goal is first to have on jail (myjail) working with IPv4 and IPv6 then,
> >
> > slowly migrate the old jail to the new way.
> >
> > So, I need help to configure myjail to have IPv6 working:
> >
> > - configure a IPv6 on e0b_myjail is easy, but which defaultrouter6 did I use?
> > - did the bridge have an IPv6 to be the defaultrouter6? I try with no luck.
> > - did I need some configuration on PF?
> >
> > Thanks for reading me (I sure I not really clear) and for your advice.
> >
> > Btw, after I successfully configure myjail (and the other one) I will wrote a how-to.
> >
>
> Okay, let's see if I can hit all beats:
>
> Here's the paste of webserver.jail.conf, rc.conf (highlights) and pf.conf
>
> https://gist.github.com/87ba10c1c5611ed32367d5d48ef5f402
Thanks, that really clear.
>
> I'll explain some of the important bits:
>
> my ISP binds the IPv4 to the MAC, but not the IPv6, go figure.
> That's why I leave the IPv4 address on the main interface, instead of fiddling with MAC addresses and moving it to the bridge.
>
> On the bridge, we have the IPv6 and the IPv4 NAT; That's handy, as it also means we only need one interface for both IPv4 and IPv6.
>
> cloned_interfaces="bridge0"
> # jail NAT and Network access
> ifconfig_bridge0="inet 192.168.17.1/24"
> gateway_enable="YES"
>
> note that we explicitly enable link-local addresses, because, as per spec, they are needed to make IPv6 work:
>
> # working IPv6 setup needs link-local addresses (according to the spec)
> ipv6_activate_all_interfaces="YES"
> ifconfig_bridge0_ipv6="inet6 2a01:4f9:c010:c64c::1/64 auto_linklocal"
> ipv6_defaultrouter="fe80::1%vtnet0"
Why vtnet instead of vnet ? Is there a difference that I did saw?
> # enable IPv6 gateway
> ipv6_gateway_enable="YES"
>
> and in the jail.conf it's really just about adding the IPv6 addresses to the interfaces, too!
>
> vnet.interface = "$jepair";
>
> exec.prestart = "ifconfig epair${id} create up";
> exec.prestart += "ifconfig epair${id}a up descr vnet-${name}";
> exec.prestart += "ifconfig $bridge addm epair${id}a up";
>
> exec.start = "/sbin/ifconfig lo0 127.0.0.1 up";
> exec.start += "/sbin/ifconfig epair${id}b ${ipaddr}";
> exec.start += "/sbin/ifconfig epair${id}b inet6 ${ip6addr}";
> exec.start += "/sbin/route add default ${gw}";
> exec.start += "/sbin/route add -inet6 default ${gw6}";
> exec.start += "/bin/sh /etc/rc";
>
> I also highly recommend adding IPv6 nameservers to your resolv.conf; that way, if you broke your IPv4 setup, you still have working IPv6!
That a good advice too :-)
> Being NAT, IPv4 routing is obviously happening via the host.
> Aaaaand, given that my ISP uses fe80::1 as the default gateway, the only way to make jails' IPv6 routing work was by routing it thru the host.
> as for pf, it's only used for NAT.
> No firewalling, and I'm not doing anything to IPv6.
>
> That's all from me, i hope it helps.
Sure it'a help, thanks for your advices, your time and expertise.
--
Jacques Foucry
More information about the freebsd-jail
mailing list