Source IP changes when asterisk gets a messages

I have 2 servers seeing each other without need of nat. (There are several gateways between them)
When I try to Dial an iax2 or sip number on server 2 (10.31.65.110) from server 1 (192.168.254.6), using iax2 debug on server 2, I see these lines at the beginning of the log: (similar outputs from sip debug)

Rx-Frame Retry[ No] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW
Timestamp: 00006ms SCall: 12553 DCall: 00000 [10.31.65.1:4569]

Tx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: CTOKEN
Timestamp: 00006ms SCall: 00001 DCall: 12553 [10.31.65.1:4569]

Obviously the 2nd server thinks that it should answer to 10.31.65.1 domain.

The problem is, in tcpdump I see:
12:01:28.959636 IP 192.168.254.6.iax > 10.31.65.110.iax: UDP, length 172
Obviously the packets are not going through nat.

Anyone has an idea?

IAX2 always sends packets to the source IP address and port… so I’m not sure why you would be seeing what you’re seeing… you’ll need to explain more clearly what the network layout actually is and show a wireshark on both sides.