So after pulling my hair out for a few more hours, going back to a stock configuration, removing options in /boot/config.conf.local, and trying a few more things I finally figured out what's going on.
My setup is perfect. This is validated by changing my public IP address from 'CARP' to 'IP Alias'. Everything works great in 'IP Alias' mode, but of course this lacks failover for the WAN.
Everytime I switched to 'CARP' for my public virtual IP I would lose connectivity to my public gateway and I would see this in the system.log:
pfsense01 kernel: arpresolve: can't allocate llinfo for <public ip="" address=""> on igb0</public>This led me to some more googling around and stumbling upon this: http://marc.info/?l=pfsense-support&m=129985175716097
Here's an update on this issue that may prove helpful for other
customers that reside on a passive optical network and want to use
CARP. The service provider, service provider hardware vendor, and I
have performed extensive troubleshooting on why CARP was not working
over the passive optical network, and we have gotten it working.
Basically, there were 2 issues on the Service Provider side that was
preventing the CARP IP's from being accessible from beyond the ONT.First the typology. The redundant set of pfsense boxes were plugged
into a managed layer 2 switch. The ONT was plugged into this switch
also. The ONT terminated at the service provider's local point of
presence into a managed layer 2 switch. Up-links from the service
provider's switch led to a router in their core network.2. The Service provider, in order to make its standard residential-type
configuration work efficiently, had proxy-arp enabled on its router.
This being enabled was causing the original problem of the secondary
firewall not being able to ping the CARP IP's. Disabling proxy-arp for
the Pfsense and CARP IP's on the service provider's router fixed this
initial issue, but we could still not communicate with the CARP IP's
from a remote network or from inside the Service Provider's network.3. The Service provider, as a security item, had its local point of
presence switch configured to not allow communication between switch
ports (even on the same VLAN). Any local traffic bound for other local
traffic on the switch had to first travel to the provider's core
network. Unfortunately, this broke CARP by preventing the core router
from asking for which MAC's belonged to the CARP IP's. The service
provider removed this restriction for the IP's in use by the PFsense box
and CARP, and things started working correctly.I hope this helps others who may have Internet Service over a Passive
Optical Network and are having trouble getting CARP working.
This makes perfect sense as to why CARP fails for me. My ISP is a local telcom that just performed a fiber rollout previously to mostly residential customers. I'm now going to reach out to my ISP to see if we can get CARP working properly as I'm 99% sure the problem is due to my ISP.
carp_vs_alias.png
carp_vs_alias.png_thumb