I am trying to divert a TCP connection. Given a client (C) which is connected to a router R and two servers (S1 and S2) are connected to the router, C initially connects to S1. I am trying to write an iptables rule in the router to divert all traffic to S2. But the problem is, S2 keeps on sending RST messages and the connection is never established. I ran wireshark on all the boxes and noticed this: C sets up a TCP connection with S1 and when my iptable rule starts is active, it sends an ACK to S2 which sends back a RST and then they loop on this for time. Is there a way to divert TCP connections like this?