Iptables and uplink bonding

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

 



Hello,

Kernel 2.4.26
Iptables 1.2.11
Nth patch
Route patch

I am trying to configure a machine that will allow per packet load
balancing to effectively double the throughput of an FTP connection.

I have managed to get FTP connectivity to the destination server from
the load balancing machine but gtrellm only shows 15Kbs maximum
throughput.

I cannot connect from the client machine even though I can ping the
destination server.

Test environment

2 RHL FC1 Servers with CBQ on outgoing interface to limit to 256Kbs to
simulate ADSL modem/routers (G1 and G2)

1 XP Client machine (C1)

1 Loadbalance server (LB)

1 Destination FTP RHL FC1 - FTP

Addressing

C1 10.15.1.5/24 gw 10.15.1.1
G1 Internal: 192.168.253.2/30 External: 192.168.2.220/24 - No NAT
G2 Internal: 192.168.252.2/30 External: 192.168.2.221/24 - No NAT

LB Internal 10.15.1.1/24
   Ext1: 192.168.253.1/30
   Ext2: 192.168.252.2/30

FTP: 192.168.2.2/24

I have attempted to SNAT all the packets leaving eth1 and eth2 to
192.168.2.220

Current IPtables configuration

Table: mangle
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
ROUTE      all  --  anywhere            !10.15.1.0/24        every 2th
packet #0 ROUTE gw:192.168.253.2 
ROUTE      all  --  anywhere            !10.15.1.0/24        every 2th
packet #1 ROUTE gw:192.168.252.2 

Table: nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.0.0.0/8           anywhere
to:192.168.2.220 
SNAT       all  --  10.0.0.0/8           anywhere
to:192.168.2.220 
SNAT       all  --  192.168.253.0/30     anywhere
to:192.168.2.220 
SNAT       all  --  192.168.253.0/30     anywhere
to:192.168.2.220 
SNAT       all  --  192.168.252.0/30     anywhere
to:192.168.2.220 
SNAT       all  --  192.168.252.0/30     anywhere
to:192.168.2.220 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Table: filter
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state
RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             10.15.1.0           tcp dpt:ssh
state NEW 
ACCEPT     tcp  --  anywhere             192.168.253.1       tcp dpt:ssh
state NEW 
ACCEPT     tcp  --  anywhere             192.168.252.1       tcp dpt:ssh
state NEW 
ACCEPT     all  --  10.0.0.0/8           anywhere            state NEW 
ACCEPT     all  --  192.168.253.0/30     anywhere            state NEW 
ACCEPT     all  --  192.168.252.0/30     anywhere            state NEW 
RULE_2     icmp --  anywhere             anywhere            state NEW 
RULE_3     all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state
RELATED,ESTABLISHED 
ACCEPT     all  --  10.0.0.0/8           anywhere            state NEW 
ACCEPT     all  --  192.168.253.0/30     anywhere            state NEW 
ACCEPT     all  --  192.168.252.0/30     anywhere            state NEW 
RULE_2     icmp --  anywhere             anywhere            state NEW 
RULE_3     all  --  anywhere             anywhere            

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state
RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             10.15.1.0           tcp dpt:ssh
state NEW 
ACCEPT     tcp  --  anywhere             192.168.253.1       tcp dpt:ssh
state NEW 
ACCEPT     tcp  --  anywhere             192.168.252.1       tcp dpt:ssh
state NEW 
ACCEPT     all  --  10.0.0.0/8           anywhere            state NEW 
ACCEPT     all  --  192.168.253.0/30     anywhere            state NEW 
ACCEPT     all  --  192.168.252.0/30     anywhere            state NEW 
RULE_2     icmp --  anywhere             anywhere            state NEW 
RULE_3     all  --  anywhere             anywhere            

Chain RULE_2 (3 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            LOG level
info prefix `RULE 2 -- ACCEPT ' 
ACCEPT     all  --  anywhere             anywhere            

Chain RULE_3 (3 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            LOG level
info prefix `RULE 3 -- DENY ' 
ACCEPT     all  --  anywhere             anywhere

Current output of ip route

192.168.252.0/30 dev eth2  scope link 
192.168.253.0/30 dev eth1  scope link 
10.15.1.0/24 dev eth0  scope link 
169.254.0.0/16 dev eth2  scope link 
127.0.0.0/8 dev lo  scope link 
default 
	nexthop via 192.168.253.2  dev eth1 weight 1
	nexthop via 192.168.252.2  dev eth2 weight 1

I have tried using MARK to mark the packets with
The nth subsystem and have created the necessary ip routing tables but
unable to get any joy.

Therefore

1. Has anyone done this?
2. Is this the right approach?
3. Has anyone managed to get MARK scenario working with nth?  If so
could you point me to an example?

I have Googled for hours, even though many people have discussed I am
yet to see a working example.

When the configuration is finalized I wish to extend to potentially 4
ADSL connections so that we can stream live multimedia to our server on
the internet.

TIA

Regards

/Steve




[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