In order to be able to maintain the node network standard routing
untouched while routing instance traffic through a different dedicated
interface (eg: a gre tunnel) we need to specify the instance routing
path inside a separate table, which will also contain different default
gateway values. This patch fixes the kvm default network script to use
the nic link, if present, as a routing table to use instead of the
default one.

Signed-off-by: Guido Trotter <[email protected]>
---
 lib/hypervisor/hv_kvm.py |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py
index fd51ae5..a2bca1e 100644
--- a/lib/hypervisor/hv_kvm.py
+++ b/lib/hypervisor/hv_kvm.py
@@ -169,7 +169,10 @@ class KVMHypervisor(hv_base.BaseHypervisor):
       script.write("  /usr/sbin/brctl addif $BRIDGE $INTERFACE\n")
     elif nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_ROUTED:
       script.write("  # Route traffic targeted at the IP to the interface\n")
-      script.write("  /sbin/ip route add $IP/32 dev $INTERFACE\n")
+      if nic.nicparams[constants.NIC_LINK]:
+        script.write("  /sbin/ip route replace $IP/32 table $LINK dev 
$INTERFACE\n")
+      else:
+        script.write("  /sbin/ip route replace $IP/32 dev $INTERFACE\n")
       interface_proxy_arp = "/proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp"
       script.write("  /bin/echo 1 > %s\n" % interface_proxy_arp)
     script.write("fi\n\n")
-- 
1.6.3.3

Reply via email to