Date: Wed, 29 Apr 1998 13:20:04 -0500 From: Jonathan Lemon <jlemon@americantv.com> To: Allen Smith <easmith@beatrice.rutgers.edu> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Proxy ARP for transparent firewalling: arp -s pub vs choparp Message-ID: <19980429132003.21663@right.PCS> In-Reply-To: <9804291312.ZM27991@beatrice.rutgers.edu>; from Allen Smith on Apr 04, 1998 at 01:12:15PM -0400 References: <9804291312.ZM27991@beatrice.rutgers.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 04, 1998 at 01:12:15PM -0400, Allen Smith wrote: > In this, in order to get the Network Services controlled router to > direct packets that are for our machines to the firewall's exterior > interface, it'll need to be sending our ARP packets that will tell the > router (and the other machines on the local network) that its Ethernet > interface is the one for all our machines' IP addresses. The firewall > (a FreeBSD-stable machine that we're in the process of getting in from > Atipa) will have ip_filter set up on it, which will use its fastroute > capability to route packets to its interior interface if they're for > our machines. Our machines will be set up with the firewall's interior > interface (probably a private IP address, if I can get the routing set > up properly for those - SGI's route implementation seems to be buggy > in this regard, although that may be conflicts with routed) as their > default gateway. I have a similar situation, so I should describe what I have setup. [network]---[ firewall ]--------------------[machineN] de0 de1 ip: y.y.y.y ip: x.x.x.x ip: x.x.x.x ether: a:a:a:a:a:a ether: b:b:b:b:b:b Change the /etc/rc.conf on the firewall to: 1. configure the firewall interfaces identically: ifconfig_de0="inet x.x.x.x netmask 0xffff0000" ifconfig_de1="inet x.x.x.x netmask 0xffff0000" 2. install direct interface routes for each machine behind the firewall: static_routes="machine1" route_machine1="y.y.y.y -link de1:b:b:b:b:b:b -iface" 3. turn on proxyall (this will pass all arp requests back and forth between the two interfaces) arpproxy_all="YES" 4. add permanent ARP entries for each machine behind the firewall: (place this in something like /etc/rc.conf.local) arp -s machine1 auto pub Now, when: - the firewall gets an ARP request for any of machineN, it will answer with it's own MAC entry. - the firewall gets an IP packet for machineN, it will use the interface route to send the packet to the internal network. - machineN sends an ARP reply, the firewall will use this for sending to machineN, instead of the `published' MAC entry. - machineN sends an ARP request, the firewall will forward the request/reply between the two interfaces. This may not be the best way to do this, but it works for me. :-) -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980429132003.21663>