So the phone sends request to 192.168.0.3 but receives response from 192.168.0.1 - that won’t work. The phone is still waiting for a response from 192.168.0.3 - that’s why you see 408 (timeout).
Options you have:
- specify on the phone side to “trust” all 3 IPs - that’s not a very good solution and might be impossible, depending on the vendor
- force asterisk/heartbeat/iptables to use the floating IP for outgoing connections
- remove 192.168.0.1 and 192.168.0.2 from the servers and use another NIC and/or subnet