In all examples of PCC (Per Connection Classification) I see the same method used:
- PCC is used to put a connection mark on the connection
- the connection mark is used to put a routing mark on each packet
- the routing mark is used to select the proper WAN link
As in my config I am already using connection marking for prioritization (combined with some L7 so it cannot be done without), I tried to use PCC without connection marking.
(MikroTik should really implement multiple connection and packet marks…)
So I simplify this to:
- PCC us used to put a routing mark on each packet
- the routing mark is used to select the proper WAN link
It may be causing some more overhead, but I don’t bother since it is on a CCR that is sitting at 1% load anyway.
However, it does not appear to work correctly when I use both-addresses as the classifier, but it appears OK when I use only src-address as the classifier.
What is going on here? Is the both-addresses maybe confusing the dst-address and using the real external address for the first packet and then some NAT-modified address for the remainder? My problem is that the connections never establish when they using the secondary WAN that does not have the unmarked default route, so apparently their packets do not get properly marked.
Of course the PCC result should be repeatable over the entire connection or else it will fail, but I would think both addresses never change over the course of a connection.
Using connection marks (and checking for no-mark so they are applied only once) of course fixes this, but I would like to avoid that.