Re: Multi ISP router/firewall ...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2007-03-27 at 17:32 +0200, Pierre JUHEN wrote:
> Suggested reading : http://www.ssi.bg/~ja/nano.txt
> 
> It explains how the routing is done.
> 
> Using the ROUTE patch, you force the routing outside the 
> routing table.
> 
> When a packet comes back on an established connection,
> the kernel lookup in the cache, with the input interface 
> as part of the matching.
> 
> Since in the cache, you have the other interface (ISP1)
> for this connection, it doesn't route the packet.
> 
> You should use something else than the ROUTE target, for example
> what is explained in nano.txt.
> 
> 

Hi

I tried both methods - iptables using the ROUTE target as well as using
iptables to mark the packets, then using iproute2 to lookup and route
using a table with an ip fwmark rule.

In both cases, the traffic is routed out and return traffic comes back
in the correct interface, but it does not get NATed backed to the
client.

iptables -A FORWARD -i eth0 -p tcp --dport 80 -s 10.0.0.3 -j ACCEPT
iptables -A FORWARD -i eth4 -p tcp --sport 80 -d 10.0.0.3 -j ACCEPT

iptables -A FORWARD -t mangle -p tcp --dport 80 -s 10.0.0.3 -j MARK
--set-mark 0x4

iptables -A POSTROUTING -t nat -o eth4 -p tcp --dport 80 -s 10.0.0.3 -j
SNAT --to 10.1.0.2

ip rule del fwmark 4 table 4 priority 32000
ip route flush table 4
ip route add table 4 default via 10.1.0.1
ip rule add fwmark 4 table 4 priority 32000
ip route flush cache


What am I doing wrong?

Looking in /proc/net/ip_conntrack I can find an entry for http traffic
from machine at ip 10.0.0.3 created by the SNAT rule above. When the
traffic returns back in eth4 it seems to disappear on the firewall ...

Regards

Ray

> 
> > Message du 27/03/07 14:54
> > De : "Ray Leach" <spoons@xxxxxxxxxx>
> > A : "Netfilter" <netfilter@xxxxxxxxxxxxxxxxxxx>
> > Copie à : 
> > Objet : Multi ISP router/firewall ...
> > 
> > Hi All
> > 
> > I've been trying to configure a router/firewall with 5 zones (2 of which
> > are ISP links) unsuccessfully.
> > 
> > So far I've managed to patch the kernel with the ROUTE target, and I've
> > got rules as follows:
> > 
> > FORWARD chain filter table:
> > ACCEPT     0    --  ethxx0 eth4    10.0.0.0/24    0.0.0.0/0           
> > ACCEPT     0    --  eth4   ethxx0  0.0.0.0/0      10.0.0.0/24
> > 
> > FORWARD chain mangle table:
> > ROUTE      tcp  --  *      *       10.0.0.67    !192.168.1.0/24      tcp
> > dpts:80:90 ROUTE oif:eth4 continue
> > 
> > 
> > POSTROUTING chain nat table:
> > SNAT       0    --  *      eth4    0.0.0.0/0    0.0.0.0/0  to:10.1.0.2
> > 
> > 
> > ethxx0 is my internal LAN
> > eth4 is my 2nd ISP connection
> > 10.0.0.67 is my workstation
> > 10.1.0.2 is the ip bound to eth4
> > 
> > The other ISP link is working, we host around 12 websites on servers in
> > our DMZ, we have outgoing web browsing, email, MSN, etc. using various
> > nat rules for that interface, they all work.
> > 
> > I can see using tcpdump that the packets are leaving my workstation,
> > being mangles to change the route, going out the 2nd ISP link, coming
> > back into the 2nd ISP link, but then they disappear.
> > 
> > My forwarding rules as shown above do not show any traffic.
> > 
> > This has me stumped.
> > 
> > As I've stated, I have nat (both SNAT and DNAT) working on the other ISP
> > interface on the same machine.
> > 
> > Where should I start looking?
> > 
> > Regards
> > 
> > Ray
> > -- 
> > Raymond Leach
> > RCHQ Hobbies (http://www.rchq.co.za/)
> > (T)+27-82-575-6975 (F)+27-86-652-2773
> > 
> > 
> > 
> >
> 
> 
> 
-- 
Raymond Leach
RCHQ Hobbies (http://www.rchq.co.za/)
(T)+27-82-575-6975 (F)+27-86-652-2773




[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux