X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-xen-config.git/blobdiff_plain/814f7ae55d5fdef2b776978508807c1b1159e7f9..00fc1ec722eafe57d1d8fc9816f2916e70ddc596:/vif-invirtroute diff --git a/vif-invirtroute b/vif-invirtroute index 9f833dc..b3d9207 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,19 +89,19 @@ 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} || : + timeout -s KILL 5 arpspoof -i $(invirt-getconf xen.iface) -t ${gateway} ${addr} || : ;; 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) - timeout 5 arpspoof -i $(invirt-getconf xen.iface) -t ${other_gateway} ${other_ip} || : + timeout -s KILL 5 arpspoof -i $(invirt-getconf xen.iface) -t ${other_gateway} ${other_ip} || : ;; esac fi