For a long time (2 years?) I have been running a virtual machine (Ubuntu 12.04 server) with a very basic outbound load balancing capability, sending different outbound connections out different ADSL routers.
Configured simply by using iproute with no NAT masquerade, NAT is managed by the outbound ADSL routers themselves allowing connections to route directly back to sender bypassing the load balancing router VM. There are also no firewall rules (iptables) on the router VM.
echo 1 > /proc/sys/net/ipv4/ip_forward
# flush initially
ip route flush cache
# remove whatever is there for the default to begin with
ip route delete default
# default load balancing rule
ip route add default scope global \
nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
nexthop via ${ROUTER1} dev ${INTERFACE} weight 4
This has worked well for a long time.
I have recently upgraded (do-release-upgrade -d) the load balancer (Ubuntu 12.04 server virtual machine) to Ubuntu 14.04.
Since the upgrade internet connections using the above "ip route add default" command are causing sporadic connection issues and creating an unusable experience. Almost as if individual packets are being sent across both routers and not full connections.
This has been attempted with a second 14.04 virtual machine with the same effect.
I would love to have the same functionality on Ubuntu 14.04 (current kernel: 3.13.0-24). I don't understand what has changed.
Any suggestions?