Yet another PCC question

I’ve been fighting with PCC all day, and it just doesn’t seem to work nicely for me :frowning:

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.

wrong distance for marked gw… anyway, you can make static IP for pppoe (and interface type too from dynamic to static one…)

What should the distance be?

The interface for PPPoE doesn’t seem to work when I set a static IP.

I actually missed a static route from that printout:

 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 A S  0.0.0.0/0                          pppoe-isp1                 1
 1 A S  0.0.0.0/0                          ether8-isp2-g...        1
 2 ADS  0.0.0.0/0                          xxxxxxxxxx              1
 3  DS  0.0.0.0/0                          xxxxxxxxxx              1
 4 ADC  xxxxxxxxx  xxxxxxxxxx   ether8-isp2-g...        0
 5 ADC  xxxxxxxxx    xxxxxxxxxx   pppoe-isp1                 0