Date: Sat, 17 Aug 2002 11:09:28 +0100 From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: Paulius Bulotas <paulius@kaktusas.org> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: jails and multiple networks Message-ID: <20020817100928.GB16764@happy-idiot-talk.infracaninophi> In-Reply-To: <20020816193247.GA36535@kaktusas.org> References: <20020816193247.GA36535@kaktusas.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 16, 2002 at 09:32:47PM +0200, Paulius Bulotas wrote: > I've setuped 'master' pc with 2 jails in it, with 3 nic's to 3 different > networks and only one default router (in master). Now I can connect to > jails/master from outside, between jails and master. But I can't connect > to outside from jails. So the question would be, is it possible at all > and if yes, then how? > > All examples use ip aliases which share the same gateway (I assume ;), > and I would like to use a different gateway for each jail. Unfortunately, jail hosts aren't quite that independent of the main system --- there's only one routing table in the main kernel, which applies to both the master system and all the jails. The same is true of most kernel based stuff. However, all is not lost. The key phrase you need is "policy based routing" which you should be able to Google for with reasonable expectation of success. On FreeBSD policy based routing is implemented using ipfw(8) to forward packets to the appropriate gateways. You'll need to build yourself a custom kernel containing at least these extra options compared to GENERIC: options IPFIREWALL options IPFIREWALL_FORWARD See http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for kernel building instructions[*]. Lets suppose that your system is configured with three network cards as follows: I/F inet netmask gateway notes: de0 192.168.0.1 /24 192.168.0.254 master de1 192.168.1.1 /24 192.168.1.254 jail 1 de2 192.168.2.1 /24 192.168.2.254 jail 2 and the default route is: % netstat -rn | grep default default 192.168.0.254 UGSc 9 99999 de0 Then you need to have firewall rules equivalent to the following: add fwd 192.168.1.254 ip from 192.168.1.1 to not 192.168.1.0/24 out via de1 add fwd 192.168.2.254 ip from 192.168.2.1 to not 192.168.2.0/24 out via de2 Some experimentation will undoubtedly be required to get everything right for your setup, but that should give you the general idea. If necessary, you can select by port number as well as source and destination address. Cheers, Matthew [*] Note that for recent 4-STABLE the make buildkernel KERNCONF=MYKERNEL "new" mechanism will work as part of a {build,install}world cycle, but the "traditional" 'config MYKERNEL' mechanism possibly won't. -- Dr Matthew J Seaman MA, D.Phil. 26 The Paddocks Savill Way Tel: +44 1628 476614 Marlow Fax: +44 0870 0522645 Bucks., SL7 1TH UK To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020817100928.GB16764>