Load Balancing (2 adsl connections)

Submitted by Anonymous
on May 25, 2009 - 12:34pm

I used the example firewall from the openbsd faq:

lan_net = "192.168.1.0/24"
int_if = "em0"
ext_if1 = "fxp0"
ext_if2 = "fxp1"
ext_gw1 = "192.168.10.1"
ext_gw2 = "192.168.20.2"

# nat outgoing connections on each internet interface
nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)

# default deny
block in from any to any
block out from any to any

# pass all outgoing packets on internal interface
pass out on $int_if from any to $lan_net
# pass in quick any packets destined for the gateway itself
pass in quick on $int_if from $lan_net to $int_if
# load balance outgoing tcp traffic from internal network.
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto tcp from $lan_net to any flags S/SA modulate state
# load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto { udp, icmp } from $lan_net to any keep state

# general "pass out" rules for external interfaces
pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state

# route packets from any IPs on $ext_if1 to $ext_gw1 and the same for
# $ext_if2 and $ext_gw2
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any

Everything works fine for the clients, the trafic is ballanced.
The server itself doesn't ballance the outgoing trafic.

The server runs a squid proxy, and clients use the proxy to connect to the internet. How can i modify the firewall rules so that the server also loadballance the outgoing trafic to the internet?

Regards,

Pedro

Load balance outbound connections

zen101 (not verified)
on
July 8, 2009 - 7:26am

Very simple to do that:

One way of doing it is mpath routing.

http://www.openbsd.org/faq/faq6.html#Multipath

But thats just one way

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.