X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-xen-config.git/blobdiff_plain/8d64933f6aca827aea4f1c4b2e658cf77424ed5a..4e74e79c1991d680b4efa61f8a9369f42f7325cd:/vif-invirtroute?ds=inline diff --git a/vif-invirtroute b/vif-invirtroute index 9f833dc..69ca710 100755 --- a/vif-invirtroute +++ b/vif-invirtroute @@ -77,7 +77,9 @@ if [ ${vif_type} != "ioemu" -o x${qemu_online} = xyes ] ; then # (with metric 1) should take precedence over the vif # route and carry all the traffic. + src="" if [ $ipcmd == "add" ]; then + src="src ${main_ip}" case $dev in vif*) metric="metric 2" @@ -87,7 +89,7 @@ if [ ${vif_type} != "ioemu" -o x${qemu_online} = xyes ] ; then ;; esac fi - ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} $metric + ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} ${src} $metric case "$command" in online|add) timeout 5 arpspoof -i $(invirt-getconf xen.iface) -t ${gateway} ${addr} || : @@ -95,7 +97,7 @@ if [ ${vif_type} != "ioemu" -o x${qemu_online} = xyes ] ; then esac done if [ -n "$other_ip" ]; then - ${cmdprefix} ip route ${ipcmd} ${other_ip} dev ${dev} src ${main_ip} $metric + ${cmdprefix} ip route ${ipcmd} ${other_ip} dev ${dev} ${src} $metric iptables -t nat ${ipt_action} PREROUTING -d ${other_ip} -j DNAT --to-destination ${addr} case "$command" in online|add)