So how can we help to nail down the source of this problem? I've gotten a little more knowledgeable since my last post, but I'm still not completely there. If my understanding is correct a packet entering the LAN interface would be sent to racoon at some point to see if it matches any of the SPDs. If it does, racoon sends the packet into the appropriate tunnel. If not, it should pass the traffic on through the normal process.
If this is a correct understanding then the packets in question are disappearing inside pfSense because racoon is for some reason silently dropping the packets rather than doing what it is supposed to do.
It seems that there would be two possible causes of this problem:
1. These packets are being translated by NAT before they are sent to racoon, which would cause them not to match any SPDs.
2. There is some subtle error in racoon that causes it to not see the match - perhaps because of a logic error regarding the 0.0.0.0/0 specifier in the SPD.
If someone will point me in the right direction, I will read and/or instrument the code and see if I can find the problem.
One other question: Does anybody know if there is any way to turn on logging for NAT rules. This would be helpful also in understanding packet flow inside pf.
Thanks.
-Dave