Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Mar 2005 20:26:55 +0100
From:      =?UTF-8?Q?S=C5=82awek_=C5=BBak?= <slawek.zak@gmail.com>
To:        Sten Spans <sten@blinkenlights.nl>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Setup of jail bound to lo0
Message-ID:  <787bbe1c0503211126680ef@mail.gmail.com>
In-Reply-To: <Pine.SOC.4.61.0503161045311.23519@tea.blinkenlights.nl>
References:  <787bbe1c050315152733f79e7c@mail.gmail.com> <Pine.SOC.4.61.0503161045311.23519@tea.blinkenlights.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 16 Mar 2005 10:47:25 +0100 (CET), Sten Spans
<sten@blinkenlights.nl> wrote:
> On Wed, 16 Mar 2005, [UTF-8] S=C5~Bawek =C5=BBak wrote:
>=20
> > Hi,
> >
> > I need to have some jails configured, sharing single IP address (IPv6
> > is a no-no for the time being:). Therefore I came up with an idea of
> > binding them all to lo0 and assigning subsequent IP aliases as the
> > addresses. The requirement for the jails is to let them to receive
> > (the easy part) and *send* packets to the outside.
> >
> > The jails cannot directly access the Internet as they cannot bind to
> > the external IP address of course. Some translation needs to be made,
> > I think. After wrestling with ipfw/ipf/pf for a couple of hours I
> > don't have a working solution.
> >
>=20
> pf:
>=20
> # Tables: similar to macros, but more flexible for many addresses.
> table <webservers> { 1.2.3.4, 5.6.7.8, 9.9.9.9 }
>=20
> # Translation: specify how addresses are to be mapped or redirected.
> nat on $ext_if from $loopback_addr to any -> ($ext_if)
>=20
> # rdr: packets coming in on $ext_if with destination <webservers>:80
> rdr on $ext_if proto tcp from any to <webservers> port 80 -> $loopback_ad=
dr port 80

Hi,

It sure works :)

My rules are:

ext_if=3D"lnc0"
table <webservers> { 127.0.0.2, 127.0.0.3 }
nat on $ext_if from <webservers> to any -> ($ext_if)
rdr on $ext_if proto tcp from any to any port 80 -> 127.0.0.2 port 80

I wasn't sure what you meant by $loopback_addr. I will add rules like
this for every server:

rdr on $ext_if proto tcp from any to any port 81 -> 127.0.0.3 port 80

Nice thing this PF. I can't do this in IPFilter.

Thank you very mach Sten!

/S



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?787bbe1c0503211126680ef>