I have a gentoo 2.6.14 box with 4 nics, LAN/DMZ/PUB1/PUB2
LAN and DMZ have a 1918 /22 each, PUB1 and PUB2 have a /29 each of which 5 ips 
are assigned.
Using the mangle table, I give all packets a mark (according to local 
policies) in the range 1-10. Using ip rule, i pass marks 1-5 through the pub1 
route table, and marks 6-10 through the pub2 routing table. Using the nat 
table, I SNAT to one of the 10 IPs assigned from the two /29''s.
1) Now, if i remove the default route (via PUB1 gw) from the main table, 
everything halts. Why? 
2) If I pass a forwarded tcp syn packet out on the PUB2 interface, with the 
correct SNAT ip, I can see the syn+ack returning from the external server. 
Logging then indicates that this packet gets passed through 
mangle/PREROUTING, after which it appears to simply be lost. It''s
definitely
not going out on any of the 4 NICs. This contrasts with packets being passed 
out on PUB1, where everything works fine, conntrack recognizes the syn+ack 
and the reply gets correctly forwarded to the LAN box i''m using to
test. It
*seems* like conntrack simply is not able to match the incoming syn+ack with 
the outgoing syn. BUT, if i try to connect to the dsl router on PUB2, 
everything''s fine. I suspect i got something very wrong with my routing
rules/tables, but I can''t figure out what.
Addresses shown are sanitized, 1.1.1.136/29 is PUB1, 2.2.2.116/29 is PUB2, 
3.3.3.* is the external server i''ve been testing against.
eth0: LAN
eth1: DMZ
eth2: PUB2
eth3: PUB1
eos ~ # ip rule show
0:      from all lookup local
30000:  from all fwmark 0x1 lookup pub1
30000:  from all fwmark 0x2 lookup pub1
30000:  from all fwmark 0x3 lookup pub1
30000:  from all fwmark 0x4 lookup pub1
30000:  from all fwmark 0x5 lookup pub1
30000:  from all fwmark 0x6 lookup pub2
30000:  from all fwmark 0x7 lookup pub2
30000:  from all fwmark 0x8 lookup pub2
30000:  from all fwmark 0x9 lookup pub2
30000:  from all fwmark 0xa lookup pub2
31000:  from 1.1.1.139 lookup pub1
31000:  from 1.1.1.140 lookup pub1
31000:  from 1.1.1.141 lookup pub1
31000:  from 1.1.1.142 lookup pub1
31000:  from 1.1.1.137 lookup pub1
31000:  from 2.2.2.218 lookup pub2
31000:  from 2.2.2.219 lookup pub2
31000:  from 2.2.2.220 lookup pub2
31000:  from 2.2.2.221 lookup pub2
31000:  from 2.2.2.222 lookup pub2
33000:  from all lookup main
eos ~ # ip route show table pub1
1.1.1.136/29 dev eth3  scope link  src 1.1.1.139
2.2.2.216/29 dev eth2  scope link  src 2.2.2.218
192.168.4.0/22 dev eth1  scope link  src 192.168.4.1
192.168.0.0/22 dev eth0  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 1.1.1.138 dev eth3
eos ~ # ip route show table pub2
1.1.1.136/29 dev eth3  scope link  src 1.1.1.139
2.2.2.216/29 dev eth2  scope link  src 2.2.2.218
192.168.4.0/22 dev eth1  scope link  src 192.168.4.1
192.168.0.0/22 dev eth0  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 2.2.2.217 dev eth2
eos ~ # ip route show table main
1.1.1.136/29 dev eth3  proto kernel  scope link  src 1.1.1.139
2.2.2.216/29 dev eth2  proto kernel  scope link  src 2.2.2.218
192.168.4.0/22 dev eth1  proto kernel  scope link  src 192.168.4.1
192.168.0.0/22 dev eth0  proto kernel  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 1.1.1.138 dev eth3
eos ~ # iptables -t filter -nvL
Chain INPUT (policy ACCEPT 5314 packets, 2615K bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `filter/INPUT:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `filter/INPUT:''
Chain FORWARD (policy ACCEPT 184K packets, 162M bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `filter/FORWARD:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `filter/FORWARD:''
Chain OUTPUT (policy ACCEPT 2261 packets, 277K bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `filter/OUTPUT:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `filter/OUTPUT:''
eos ~ # iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 188K packets, 165M bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/PREROUTING:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/PREROUTING:''
    2   468 MARK14     all  --  *      *       0.0.0.0/0            
192.168.4.0/22      state NEW
 2903 2444K MARK13     all  --  *      *       0.0.0.0/0            
192.168.0.0/22      state NEW
   60  6098 MARK12     all  --  *      *       0.0.0.0/0            
1.1.1.136/29     state NEW
 1692  136K MARK11     all  --  *      *       0.0.0.0/0            
2.2.2.216/29   state NEW
    0     0 MARK6      tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 state NEW
  109  5232 MARK6      tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0
tcp dpt:119 state NEW
   54  2592 MARK6      tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0
tcp dpt:119 state NEW
    0     0 MARK2      all  --  *      *       192.168.1.20         
213.239.111.0/29    state NEW
 3223  243K MARK10     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0
state NEW
 1054 66052 MARK1      all  --  eth0   *       0.0.0.0/0            0.0.0.0/0
state NEW
Chain INPUT (policy ACCEPT 5409 packets, 2648K bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/INPUT:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/INPUT:''
Chain FORWARD (policy ACCEPT 188K packets, 165M bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/FORWARD:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/FORWARD:''
Chain OUTPUT (policy ACCEPT 2302 packets, 283K bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/OUTPUT:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/OUTPUT:''
Chain POSTROUTING (policy ACCEPT 190K packets, 165M bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/POSTROUTING:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/POSTROUTING:''
Chain MARK1 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK1:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK1:''
 1054 66052 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x1
 1054 66052 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK10 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK10:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK10:''
 3223  243K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0xa
 3223  243K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK11 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK11:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK11:''
 1692  136K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0xb
 1692  136K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK12 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK12:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK12:''
   60  6098 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0xc
   60  6098 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK13 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK13:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK13:''
 2903 2444K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0xd
 2903 2444K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK14 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK14:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK14:''
    2   468 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0xe
    2   468 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK2 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK2:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK2:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x2
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK3 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK3:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK3:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x3
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK4 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK4:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK4:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x4
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK5 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK5:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK5:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x5
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK6 (3 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK6:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK6:''
  163  7824 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x6
  163  7824 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK7 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK7:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK7:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x7
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK8 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK8:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK8:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x8
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain MARK9 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `mangle/MARK9:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `mangle/MARK9:''
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK set 0x9
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
eos ~ # iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 5623 packets, 453K bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/PREROUTING:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/PREROUTING:''
Chain POSTROUTING (policy ACCEPT 10 packets, 607 bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/POSTROUTING:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/POSTROUTING:''
 1053 66000 SNAT_1     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x1
    0     0 SNAT_2     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x2
    0     0 SNAT_3     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x3
    0     0 SNAT_4     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x4
    0     0 SNAT_5     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x5
  168  8064 SNAT_6     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x6
    0     0 SNAT_7     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x7
    0     0 SNAT_8     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x8
    0     0 SNAT_9     all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0x9
 2606  211K SNAT_10    all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0xa
    0     0 SNAT_11    all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0xb
    0     0 SNAT_12    all  --  *      *       0.0.0.0/0            0.0.0.0/0
MARK match 0xc
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/OUTPUT:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/OUTPUT:''
Chain SNAT_1 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_1:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_1:''
 1053 66000 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.139
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_10 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_10:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_10:''
 2606  211K SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.222
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_11 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_11:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_11:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.218
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_12 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_12:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_12:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.139
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_13 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_13:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_13:''
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_14 (0 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_14:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_14:''
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_2 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_2:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_2:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.140
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_3 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_3:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_3:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.141
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_4 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_4:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_4:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.142
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_5 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_5:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_5:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:1.1.1.137
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_6 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_6:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_6:''
  168  8064 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.218
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_7 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_7:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_7:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.219
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_8 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_8:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_8:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.220
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain SNAT_9 (1 references)
 pkts bytes target     prot opt in     out     source               
destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp spt:25 LOG flags 0 level 4 prefix `nat/SNAT_9:''
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
tcp dpt:25 LOG flags 0 level 4 prefix `nat/SNAT_9:''
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0
to:2.2.2.221
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Logging/tcpdump from an attempt to connect to port 25 on a remote server:
Apr  9 21:55:47 eos mangle/PREROUTING:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=3.3.3.228 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=41341 DF PROTO=TCP SPT=53218 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos mangle/MARK6:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=3.3.3.228 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=41341 DF PROTO=TCP SPT=53218 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos nat/PREROUTING:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=3.3.3.228 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=41341 DF PROTO=TCP SPT=53218 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos mangle/FORWARD:IN=eth0 OUT=eth2 SRC=192.168.1.20 
DST=3.3.3.228 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=41341 DF PROTO=TCP 
SPT=53218 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos filter/FORWARD:IN=eth0 OUT=eth2 SRC=192.168.1.20 
DST=3.3.3.228 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=41341 DF PROTO=TCP 
SPT=53218 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos mangle/POSTROUTING:IN= OUT=eth2 SRC=192.168.1.20 
DST=3.3.3.228 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=41341 DF PROTO=TCP 
SPT=53218 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos nat/POSTROUTING:IN= OUT=eth2 SRC=192.168.1.20 
DST=3.3.3.228 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=41341 DF PROTO=TCP 
SPT=53218 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:47 eos nat/SNAT_6:IN= OUT=eth2 SRC=192.168.1.20 DST=3.3.3.228 
LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=41341 DF PROTO=TCP SPT=53218 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:55:48 eos mangle/PREROUTING:IN=eth2 OUT= 
MAC=00:08:a1:90:aa:a1:00:14:7f:03:e5:1c:08:00 SRC=3.3.3.228 DST=2.2.2.218 
LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=0 DF PROTO=TCP SPT=25 DPT=53218 
WINDOW=5792 RES=0x00 ACK SYN URGP=0
Apr  9 21:55:52 eos mangle/PREROUTING:IN=eth2 OUT= 
MAC=00:08:a1:90:aa:a1:00:14:7f:03:e5:1c:08:00 SRC=3.3.3.228 DST=2.2.2.218 
LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=0 DF PROTO=TCP SPT=25 DPT=53218 
WINDOW=5792 RES=0x00 ACK SYN URGP=0
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
21:55:47.998524 IP (tos 0x10, ttl  63, id 41341, offset 0, flags [DF], proto: 
TCP (6), length: 60) 2.2.2.218.53218 > 3.3.3.228.25: S, cksum 0x6efb 
(correct), 2404082705:2404082705(0) win 5840 <mss 1460,sackOK,timestamp 
2365113708 0,nop,wscale 2>
21:55:48.179397 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53218: S, cksum 0x0b36 (correct), 
58918797:58918797(0) ack 2404082706 win 5792 <mss 1452,sackOK,timestamp 
1736175970 2365113708,nop,wscale 0>
21:55:52.175813 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53218: S, cksum 0xfb9a (correct), 
58918797:58918797(0) ack 2404082706 win 5792 <mss 1452,sackOK,timestamp 
1736179965 2365113708,nop,wscale 0>
21:55:58.175073 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53218: S, cksum 0xe42a (correct), 
58918797:58918797(0) ack 2404082706 win 5792 <mss 1452,sackOK,timestamp 
1736185965 2365113708,nop,wscale 0>
21:55:58.775150 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53217: S, cksum 0xc92d (correct), 
4258850729:4258850729(0) ack 2314333557 win 5792 <mss 1452,sackOK,timestamp 
1736186565 2365030295,nop,wscale 0>
21:56:10.177052 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53218: S, cksum 0xb54a (correct), 
58918797:58918797(0) ack 2404082706 win 5792 <mss 1452,sackOK,timestamp 
1736197965 2365113708,nop,wscale 0>
Logging/tcpdump from an attempt to connect to port 25 on the PUB2 dsl router, 
this works:
Apr  9 21:56:52 eos mangle/PREROUTING:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=2.2.2.217 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=34524 DF PROTO=TCP SPT=55398 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos mangle/MARK11:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=2.2.2.217 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=34524 DF PROTO=TCP SPT=55398 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos nat/PREROUTING:IN=eth0 OUT= 
MAC=00:40:f4:6b:6c:c1:00:01:02:1c:6f:29:08:00 SRC=192.168.1.20 DST=2.2.2.217 
LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=34524 DF PROTO=TCP SPT=55398 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos mangle/FORWARD:IN=eth0 OUT=eth2 SRC=192.168.1.20 
DST=2.2.2.217 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=34524 DF PROTO=TCP 
SPT=55398 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos filter/FORWARD:IN=eth0 OUT=eth2 SRC=192.168.1.20 
DST=2.2.2.217 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=34524 DF PROTO=TCP 
SPT=55398 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos mangle/POSTROUTING:IN= OUT=eth2 SRC=192.168.1.20 
DST=2.2.2.217 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=34524 DF PROTO=TCP 
SPT=55398 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos nat/POSTROUTING:IN= OUT=eth2 SRC=192.168.1.20 
DST=2.2.2.217 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=34524 DF PROTO=TCP 
SPT=55398 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos nat/SNAT_11:IN= OUT=eth2 SRC=192.168.1.20 DST=2.2.2.217 
LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=34524 DF PROTO=TCP SPT=55398 DPT=25 
WINDOW=5840 RES=0x00 SYN URGP=0
Apr  9 21:56:52 eos mangle/PREROUTING:IN=eth2 OUT= 
MAC=00:08:a1:90:aa:a1:00:14:7f:03:e5:1c:08:00 SRC=2.2.2.217 DST=2.2.2.218 
LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=46172 PROTO=TCP SPT=25 DPT=55398 WINDOW=0 
RES=0x00 ACK RST URGP=0
Apr  9 21:56:52 eos mangle/FORWARD:IN=eth2 OUT=eth0 SRC=2.2.2.217 
DST=192.168.1.20 LEN=40 TOS=0x00 PREC=0x00 TTL=63 ID=46172 PROTO=TCP SPT=25 
DPT=55398 WINDOW=0 RES=0x00 ACK RST URGP=0
Apr  9 21:56:52 eos filter/FORWARD:IN=eth2 OUT=eth0 SRC=2.2.2.217 
DST=192.168.1.20 LEN=40 TOS=0x00 PREC=0x00 TTL=63 ID=46172 PROTO=TCP SPT=25 
DPT=55398 WINDOW=0 RES=0x00 ACK RST URGP=0
Apr  9 21:56:52 eos mangle/POSTROUTING:IN= OUT=eth0 SRC=2.2.2.217 
DST=192.168.1.20 LEN=40 TOS=0x00 PREC=0x00 TTL=63 ID=46172 PROTO=TCP SPT=25 
DPT=55398 WINDOW=0 RES=0x00 ACK RST URGP=0
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
21:56:52.306357 IP (tos 0x10, ttl  63, id 34524, offset 0, flags [DF], proto: 
TCP (6), length: 60) 2.2.2.218.55398 > 2.2.2.217.25: S, cksum 0xaa49 
(correct), 2474919495:2474919495(0) win 5840 <mss 1460,sackOK,timestamp 
2365178011 0,nop,wscale 2>
21:56:52.306836 IP (tos 0x0, ttl  64, id 46172, offset 0, flags [none], proto: 
TCP (6), length: 40) 2.2.2.217.25 > 2.2.2.218.55398: R, cksum 0x7679 
(correct), 0:0(0) ack 2474919496 win 0
21:57:22.589506 IP (tos 0x0, ttl  51, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 60) 3.3.3.228.25 > 2.2.2.218.53218: S, cksum 0x9a78 (correct), 
58918797:58918797(0) ack 2404082706 win 5792 <mss 1452,sackOK,timestamp 
1736270366 2365113708,nop,wscale 0>
--E.S. Johansen
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
Erik S. Johansen
2006-Apr-10  09:17 UTC
Re: Conntrack, nat and multipath - what is wrong here?
As a side note, if I put both dsls on eth2 and use the same ruleset, things start working. I still need that default route in the main table though. --E.S. Johansen _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
Erik S. Johansen
2006-Apr-10  11:16 UTC
Re: Conntrack, nat and multipath - what is wrong here?
And yet another reply-to-self. Please just ignore the question and shoot me, i''ve spent 3 days debugging this with rpf enabled... --E.S. Johansen _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
On Mon, 2006-04-10 at 14:16 +0300, Erik S. Johansen wrote:> And yet another reply-to-self. Please just ignore the question and shoot me, > i''ve spent 3 days debugging this with rpf enabled...I''ve been bitten by the same more than once :-( Maybe that help a little bit ;-) _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc