I am still working on the same problem, I was able to get 2 ISPs load balanced and even got the bandwidth aggregated. Now i am trying to balance 3 ISPs and even with the multipath routing enabled and cofigureed i am not able to even browse anything. Here is my pf.conf
lan_net = "10.15.0.0/16" int_if = "fxp0" ext_if1 = "em0" ext_if2 = "em1" ext_if1 = "em1" ext_gw1 = "192.168.5.1" ext_gw2 = "192.168.6.1" ext_gw3 = "10.7.0.253" nat on $ext_if1 from $lan_net to any -> ($ext_if1) nat on $ext_if2 from $lan_net to any -> ($ext_if2) nat on $ext_if3 from $lan_net to any -> ($ext_if3) block in from any to any block out from any to any pass out on $int_if from any to $lan_net pass in quick on $int_if from $lan_net to $int_if pass in on $int_if route-to { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) , ($ext_if3 $ext_gw3) } round-robin proto tcp from $lan_net to any flags S/SA modulate state pass in on $int_if route-to { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3) } round-robin proto { udp, icmp } from $lan_net to any keep state 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 pass out on $ext_if3 proto tcp from any to any flags S/SA modulate state pass out on $ext_if3 proto { udp, icmp } from any to any keep state pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any pass out on $ext_if1 route-to ($ext_if3 $ext_gw3) from $ext_if3 to any pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any pass out on $ext_if2 route-to ($ext_if3 $ext_gw3) from $ext_if3 to any pass out on $ext_if3 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any pass out on $ext_if3 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any This setup is not working and the odd thing is i am not even able to ping the local interfaces with this configurting. Thanks for the help Manpreet