You could start with some packet captures on the opnsense.Go into the ssh shell and there select the console. Its best to open 2 ssh shells because then you can see where the packets enter and leave the interface.With "ifconfig" you can see all your interfaces.In both consoles type (replace lan with your device name):tcpdump -i lan proto icmp -ntcpdump -i dmz proto icmp -nAfterwards start a ping and look what happens to the packets.
I think the problem is that the setup is:Opnsense 1: 192.168.2.1Opnsense 2: 192.168.2.2Client: 192.168.2.12The default gateway of the dmz client and opnsense 2 is probably 192.168.2.1. So it always sends the packets there.The easiest way to fix this problem is not putting clients into the transfer net between opnsense 1 and opnsense 2. The DMZ client should be in its own seperate subnet.
Try explicitly disabling reply-to in the advanced options of the firewall rule which allows inbound connections on the WAN interface.CheersMaurice
Sorry for being wrong. I learned something too from this.Disabling "reply-to" stops the firewall from forcing return traffic through the default gateway of the interface, allowing the firewall to use its routing table to determine the correct path for return traffic, thereby resolving asymmetric routing issues.