OpenBSD alatt ha pppoe interface bármilyen okból változik, akkor PF-et mindig erősen javasolt újra tölteni.
Elég egy pfctl -f ...., state-k maradhatnak.
PF az interface IP címeket nem kezeli dinamikusan, amikor betöltőd a rule-okat, akkor nézi csak meg adott interface-t, később már nem.
Ha pl. boot-kor pppoe-n lassabban kap IP-t, közben pedig PF-et már betöltötte, akkor hasonlóakat produkál mint amit írtál.
CARP-hoz van ifstated, ezzel tudsz scripteket futtatni ha CARP állapot valahol változik, próbáld meg azt hogy ha adott gép master állapotba kerül, akkor pár másodperccel később húzza újra PF-et. (azért kell pár másodperc hogy biztosan legyen már IP címe pppoe-nak!)