Josh Paetzel wrote:
Jeffrey Williams wrote:
I have a server with two interfaces, I want to run the host and a couple of jails using one interface on one subnet (internal interface, private IP, behind NAT/firewall) and some other jails using the other interface on another subnet (external interface, public IP, DMZ).

Now my understanding of the challenge in doing this, is that the network stack is not "virtualized" in the jails, so all the jails use the same routing table, and for obvious reasons only one default router. (also just for sake of clarity I don't want to enable routing between interfaces on the jail host)

Now if I understand all this correctly, then what will happen is, if I set the default router to the internal networks exit router (the NAT/firewall), then the jails listening on the external interface will only be able to talk to their local subnet, and because the internal subnet won't exist for them they won't be able to connect to the network at large.

If I set the default router to the external networks exit router (the DMZ perimeter firewall) then the host and jails listening on the internal network won't be able to be able to talk to the internet beyond the local nets, the jails because the external network doesn't exist for them, and the host because even though it can talk to both nets, the services are configured to only listen to the internal net, and the it will be trying to send all outgoing traffic to the public net, thus not creating and NAT table entries on the NAT/Firewall for the return connections.

Is there anyway to achieve what I have trying to do?

Thanks
Jeffrey williams

PF makes a very effective workaround to this with it's route-to
option...effectively letting you bypass the routing table altogether
and set up per IP behavior.

For instance, I use it in the following scenario, where a box has two
interfaces with public IPs and I don't want answers to connections on
the 'secondary' interface to go out the default route.

ipfw can also do this using the fwd rule.
in 7.x (and 6-stable) you can also do:

ipfw table 1 add 1.2.3.4/28 2.2.2.2   <-- a specific route
ipfw table 1 add 0.0.0.0/0 3.3.3.3    <-- a default route

ipfw add 300 fwd tablearg ip from ${ADDRESS2} to table(1) out



connection 1's router 192.168.1.1
em0 ip 192.168.1.2/24

connection 2's router 10.0.0.1
em1 ip 10.0.0.2/24

if connection 1 is the 'primary' link then set the default route to
192.168.1.1 and put the following rule in pf.conf

pass out route-to (em1 10.0.0.1) from 10.0.0.2 to ! 10.0.0.0/24

If you were to give more concrete examples of your config I could
probably help you out with a workable pf solution.


_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to