diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py
index 8b3af52520b2815e4218d010eab40572b6aef622..a8439bb7e044af8c52fdf0a93efead265b177ff4 100644
--- a/lib/hypervisor/hv_kvm.py
+++ b/lib/hypervisor/hv_kvm.py
@@ -171,6 +171,8 @@ class KVMHypervisor(hv_base.BaseHypervisor):
     elif nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_ROUTED:
       script.write("  # Route traffic targeted at the IP to the interface\n")
       if nic.nicparams[constants.NIC_LINK]:
+        script.write("  while /sbin/ip rule del dev $INTERFACE; do :; done\n")
+        script.write("  /sbin/ip rule add dev $INTERFACE table $LINK\n")
         script.write("  /sbin/ip route replace $IP/32 table $LINK"
                      " dev $INTERFACE\n")
       else: