I'm facing an issue when my server receive data from another interface than he use to join another server.
I have one server (10.55.0.5). This server have multiple NIC and I cannot be sure that response will come on same interface everytime (due to our BGP implementation.
I need to communicate with another one (172.16.97.2)
I tcpdump on all interfaces :
19:35:09.344629 IP 10.5.0.5.36048 > 172.16.0.2.8140: Flags [S], seq 447986449, win 27160, options [mss 1358,nop,nop,TS val 2672739474 ecr 0,nop,wscale 7], length 0
19:35:09.359357 IP 172.16.0.2.8140 > 10.5.0.5.36048: Flags [S.], seq 288319191, ack 447986450, win 28960, options [mss 1460,nop,nop,TS val 2802329434 ecr 2672739474,nop,wscale 7], length 0
19:35:09.359409 IP 10.5.0.5.36048 > 172.16.0.2.8140: Flags [.], ack 1, win 213, options [nop,nop,TS val 2672739488 ecr 2802329434], length 0
19:35:09.362763 IP 10.5.0.5.36048 > 172.16.0.2.8140: Flags [P.], seq 1:196, ack 1, win 213, options [nop,nop,TS val 2672739492 ecr 2802329434], length 195
19:35:09.376590 IP 172.16.0.2.8140 > 10.5.0.5.36048: Flags [.], ack 196, win 235, options [nop,nop,TS val 2802329438 ecr 2672739492], length 0
19:35:09.390571 IP 172.16.0.2.8140 > 10.5.0.5.36048: Flags [P.], seq 1:2330, ack 196, win 235, options [nop,nop,TS val 2802329442 ecr 2672739492], length 2329
19:35:09.390631 IP 10.5.0.5.36048 > 172.16.0.2.8140: Flags [R], seq 447986645, win 0, length 0
On capture, we can see that handshake TCP is OK.
Then, my server push data to 172.16.97.2 and the remote server send acknowledgement (length = 0).
But when this remote server try to send me data, my server don't accept it and send Reset TCP.
Someone know how to prevent my system to accept response on other interface than the first one use to contact remote server ?
Thanks in advance