I’ve been fighting with PCC all day, and it just doesn’t seem to work nicely for me ![]()
Setup: I have two internet connections, one PPPoE with a dynamically assigned IP and one Cable Modem assigned via DHCP. Both work fine seperately, here’s my ip address output
# ADDRESS NETWORK INTERFACE
0 ;;; default configuration
192.168.4.1/24 192.168.4.0 ether2-lan
1 D 109.154.93.215/32 172.16.11.12 pppoe-isp1
2 D 82.16.152.148/23 82.16.152.0 ether8-isp2-gateway
Here’s my mangle rules:
0 chain=prerouting action=accept dst-address=xx.xx.xx.xx/xx in-interface=ether2-lan
1 chain=prerouting action=accept dst-address=xx.xx.xx.xx/xx in-interface=ether2-lan
2 chain=prerouting action=mark-connection new-connection-mark=ISP1_conn passthrough=yes in-interface=pppoe-isp1 connection-mark=no-mark
3 chain=prerouting action=mark-connection new-connection-mark=isp2_conn passthrough=yes in-interface=ether8-isp2-gateway connection-mark=no-mark
4 chain=prerouting action=mark-connection new-connection-mark=ISP1_conn passthrough=yes dst-address-type=!local in-interface=ether2-lan connection-mark=no-mark per-connection-classifier=both-addresses:2/0
5 chain=prerouting action=mark-connection new-connection-mark=ISP2_conn passthrough=yes dst-address-type=!local in-interface=ether2-lan connection-mark=no-mark per-connection-classifier=both-addresses:2/1
6 chain=prerouting action=mark-routing new-routing-mark=to_isp1 passthrough=yes in-interface=ether2-lan connection-mark=ISP1_conn
7 chain=prerouting action=mark-routing new-routing-mark=to_isp2 passthrough=yes in-interface=ether2-lan connection-mark=isp2_conn
8 chain=output action=mark-routing new-routing-mark=to_isp1 passthrough=yes connection-mark=isp1_conn
9 chain=output action=mark-routing new-routing-mark=to_isp2 passthrough=yes connection-mark=isp2_conn
Note that where it says xx.xx.xx.xx.xx I’ve specified the currently addresses, is that correct? I’m figuring not, as it’ll change regularly..
Anyway, moving on..
Here’s my routes:
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S 0.0.0.0/0 pppoe-isp1 1
1 S 0.0.0.0/0 ether8-isp2-g... 1
2 ADS 0.0.0.0/0 172.16.11.12 1
3 S 0.0.0.0/0 pppoe-isp1 1
4 S 0.0.0.0/0 ether8-isp2-g... 1
5 ADC 172.16.11.12/32 109.154.93.215 pppoe-isp1 0
6 ADC 192.168.4.0/24 192.168.4.1 bridge-local 0
SOme of these get assigned dynamically when the connections start, which i guess is also wrong.
What happens is that all traffic tends to go out through a single interface until one is removed. There’s no real load balancing on a per connection basis, what I’ve got here seems to be a failover config.
What have I done wrong? Happy to tear it all down and start from scratch if required.