I have two pfsense servers: pf1 and pf2. They each have their own WAN and LAN IPs.
pf1: x.x.x.111 (wan) 192.168.7.111 (lan)
pf1: x.x.x.112 (wan) 192.168.7.112 (lan)
I also set up CARP on a third NIC on both, with virtual IPs (VIP) x.x.x.122 (wan) and 192.168.7.122 (lan). I want to set up incoming load balancing using the CARP wan VIP (x.x.x.122) on port 5060 using UDP. Firewall rule has been created allowing all source IPs to send traffic on port 5060 when destination IP is x.x.x.122, and state setting is set to 'keep state'.
I have set up a python script which is an echo server, and it is running on port 5060 on two servers (192.168.7.85 and 192.168.7.100) behind the firewalls. On the outside (v.v.v.99), I use a client to send a message to x.x.x.122 on port 5060. When I use the same application to send traffic from one server to another, say from 192.168.7.85 to 192.168.7.100, I get an echo back from the server. But when I use the same application from outside the network (from v.v.v.99), the application just hangs and I do not get back a reply. On the server side, it also does not see the message sent by client.
If I enable the firewall rule allowing traffic, firewall log shows nothing. If I disable it, firewall log shows an error that policy was violated. What am I doing wrong? What changes do I need to make to get simple load balancing with stickiness to work?