Jail on 2 interfaces?
Bjoern A. Zeeb
bzeeb-lists at lists.zabbadoz.net
Wed Dec 23 10:25:07 UTC 2009
On Wed, 23 Dec 2009, Matthew Seaman wrote:
> Mel Flynn wrote:
>> Hi,
>>
>> I don't see this documented in jail(8) nor rc(8) nor defaults/rc.conf, so
>> is it possible to have 2 IP's on 2 ethernet interfaces? And if so, is it
>> settable for rc(8)?
>>
>> The usage case is to have the same jailed proxy server on two seperate
>> internal networks. Ideally, the proxy will use one address for outgoing, so
>> I guess I'll need a default route or dive into the squid config.
>>
>> At present I have:
>> ifconfig_bge0="inet 192.168.177.60 netmask 255.255.255.0"
>> ifconfig_em0="inet 192.168.176.60 netmask 255.255.255.0"
>> ifconfig_em0_alias0="inet 192.168.176.62 netmask 255.255.255.255"
>> jail_squid_rootdir="/usr/squid"
>> jail_squid_ip="192.168.177.62"
>> jail_squid_ip_multi0="192.168.176.62"
>> jail_squid_interface="bge0"
>>
>> But this created the IP on bge0 even though one exists on em0. Is it as
>> simple as not specifying the interface and add the 177.62 alias on bge0?
>> Ideally I'd have a jail_$jail_ip_multi$aliasno_interface="foo0", but my
>> main worry is that the jail infrastructure understands the routing
>> involved.
>
> To do this directly is now possible in 8.0-RELEASE or better. You will
> need a custom kernel with 'options VIMAGE' and I believe the standard jail
> startup scripts need a bit of work in order for them to start the jail with
> the correct command line arguments to enable the vnet functionality.
No, that's wrong. FreeBSD 7.2-R and later can do multi-IP jails and
have the IPs on multiple interfaces; there is no need for a dedicated
network stack.
The routing is no much different than if you would do it in the base
system with two IPs. if it works there, just putting it in a multi-IP
jail with the adresses on the right interface will just work as well.
If you want different routing for a jail use setfib with a multi-FIB
based kernel (you may need to recompile the kernel for that) but you
still won't need mutliple network stacks.
> Alternatively, you can achieve much the same effect that you want by using
> a simple one-ip jail and writing firewall rules to redirect traffic into it,
> and NAT traffic coming out of it.
Using firewall NAT with jails is something I often see and usually
never understand unless people only have a single IP and want to share
that between lots of jails (though if not duplicate services exist,
that will just work as well by default these days as well).
--
Bjoern A. Zeeb It will not break if you know what you are doing.
More information about the freebsd-jail
mailing list