I’m testing a dual WAN fail-over setup using this method:
http://wiki.mikrotik.com/wiki/Advanced_Routing_Failover_without_Scripting
I have two Internet connections going into an RB750G. One link is normally used for computer traffic, and the other is used for VOIP traffic. When one link fails, the traffic that was on it starts routing over the other link, and when the original link comes back up, traffic starts routing over it again. So, the fail-over part is working just fine.
However, there seems to be an issue related to NAT that is causing problems with SIP registrations when VOIP traffic fails over to the other WAN link. The VOIP phone must re-register with the SIP server when this happens, since the external IP changes. However, after fail-over to the alternate WAN link, if the phone re-registers with the same SIP server, the RB750G will not send traffic from the SIP server to the phone when the alternate WAN link is being used. Once the original WAN link comes back up and the phone again re-registers, packets get passed back to the phone.
I’m pretty sure this is a NAT mapping issue since we have several SIP servers the phone could register to using round-robin DNS. If the phone happens to get a different SIP server after it fails over to the alternate WAN link, it registers just fine. The problem only occurs when the phone happens to get the same SIP server when it tries to re-register on the second link. Furthermore, if I reboot the RB750G, the phone will register just fine even if it got the same SIP server as it did when on the primary link.
I suspect that since the traffic is originating from the same IP/port combo on the phone and terminating the the same IP/port combo on the SIP server, the existing map (which was created while a different external IP was in use) is not getting updated. If I am correct, is there a way to clear the NAT translations other than rebooting the router?