If you run PF on the same routers as well, take care with stateful rules,
stateless is the easy way, or arrange so that the CARP master is a better
route (maybe prepend on the backup). you are unlikely to get states sync'd
quickly enough to avoid problems if you have things too asymmetric.
I would normally use OSPF for this, using iBGP to carry internal routes
is possible but I think mostly something done on larger networks.
ospfd has a nice feature; when you use "interface carpXX { passive }",
the network is only announced via OSPF when CARP is master. This works
really well.