Date: Tue, 16 May 2006 17:56:46 -0400 From: "PFS IT" <pfsbsd@gmail.com> To: freebsd-questions@freebsd.org, freebsd-ipfw@freebsd.org Subject: IPFW - Two External Interfaces Message-ID: <996142470605161456n46e43682x392b1f4f2ccfec73@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
I am attempting to use IPFW (and either IPNAT or natd) to do the following: I have two connections to the outside world coming in to my firewall. em0 has a static ip and is going to a bridged DSL connection, then bge1 has a static ip and is going to a a few bonded DS1s. bge0 goes to my internal network. I am attempting to have NAT on both external interfaces, and have most outbound traffic move across bge1, while traffic from/to a particular internal system (We'll call it internal_system for purposes of this message) to/from a particular remote system (This we'll call remote_system) port 80 moves across the DSL line on em0. Here is an attempt at a pretty ascii picture ISP 1 [192.168.2.254] | | [bge1:192.168.2.1] FIREWALL[bge0:10.0.0.1]-------[10.0.0.2]internal_system [em0:192.168.1.1] | | [192.168.1.254] ISP 2 Here are the rules I've tried using in congunction with natd: #Send incoming traffic to natd 00400 divert 8869 ip from any to any in via bge1 00450 divert 8868 ip from any to any in via em0 00500 check-state #Check for internal_system port 80 traffic 0600 skipto 900 from $internal_system to $remote_system 80 #Send Most Traffic out via bge1 00700 divert 8869 ip from $local_net to any in 00750 divert 8869 ip from $local_net to any out #Send "special" traffic out via em0 00900 divert 8868 ip from $internal_system to $remote_system 80 in 00950 divert 8868 ip from $remote_system to $remote_system 80 out #policy route to get traffic to the correct ISP 02000 fwd $isp2_gw ip from $isp2_ip to any 02500 fwd $isp1_gw ip from $isp1_ip to any Two instances of natd are running, one on port 8868 with an alias address of $isp1_ip, the other is on port 8869 with an alias address of $isp2_ip With the above ipfw rules in place, a $ping -S $isp2_ip google.com Should result in a ping across em0 to google, however it acts as though it cannot even reach the $isp2_gw. I have been able to get everything to work exactly as I want it to using pf on FreeBSD, but I've been told that ipfw is preferred within the organization. Any suggestions would be greatly appreciated. Jared Baldridge Systems Administrator PFS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?996142470605161456n46e43682x392b1f4f2ccfec73>