From f25ee3844eea9035a3d7f74564cbcb3dce274c56 Mon Sep 17 00:00:00 2001 From: anthony Date: Fri, 29 Jun 2012 15:51:45 -0700 Subject: [PATCH] VPC : create/destroy network usage chain --- patches/systemvm/debian/config/opt/cloud/bin/cloud-nic.sh | 7 ++++++- .../systemvm/debian/config/opt/cloud/bin/vpc_guestnw.sh | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/patches/systemvm/debian/config/opt/cloud/bin/cloud-nic.sh b/patches/systemvm/debian/config/opt/cloud/bin/cloud-nic.sh index d540cca4c4a..a6437fdbbc3 100755 --- a/patches/systemvm/debian/config/opt/cloud/bin/cloud-nic.sh +++ b/patches/systemvm/debian/config/opt/cloud/bin/cloud-nic.sh @@ -19,7 +19,12 @@ unplug_nic() { # remove usage sudo iptables -t mangle -F NETWORK_STATS_$dev 2>/dev/null sudo iptables -t mangle -D POSTROUTING -o $dev -j NETWORK_STATS_$dev 2>/dev/null - sudo iptables -t mangle -D POSTROUTING -i $dev -j NETWORK_STATS_$dev 2>/dev/null + rule=$(iptables-save | grep NETWORK_STATS_$dev | grep "\-A") + if [ $? -eq 0 ] + then + rule=$(echo $rule | sed 's/\-A/\-D/') + sudo iptables $rule + fi sudo iptables -t mangle -X NETWORK_STATS_$dev 2>/dev/null } diff --git a/patches/systemvm/debian/config/opt/cloud/bin/vpc_guestnw.sh b/patches/systemvm/debian/config/opt/cloud/bin/vpc_guestnw.sh index 449729612a8..55d52d4f851 100755 --- a/patches/systemvm/debian/config/opt/cloud/bin/vpc_guestnw.sh +++ b/patches/systemvm/debian/config/opt/cloud/bin/vpc_guestnw.sh @@ -71,9 +71,9 @@ desetup_dnsmasq() { setup_usage() { sudo iptables -t mangle -N NETWORK_STATS_$dev sudo iptables -t mangle -A POSTROUTING -o $dev -j NETWORK_STATS_$dev - sudo iptables -t mangle -A POSTROUTING -i $dev -j NETWORK_STATS_$dev + sudo iptables -t mangle -A POSTROUTING -s $subnet/$mask -j NETWORK_STATS_$dev sudo iptables -t mangle -A NETWORK_STATS_$dev -o $dev ! -s $vpccidr - sudo iptables -t mangle -A NETWORK_STATS_$dev -i $dev ! -d $vpccidr + sudo iptables -t mangle -A NETWORK_STATS_$dev -s $subnet/$mask ! -d $vpccidr } create_guest_network() { @@ -90,6 +90,7 @@ create_guest_network() { local tableName="Table_$dev" sudo ip route add $subnet/$mask dev $dev table $tableName proto static sudo iptables -t mangle -A PREROUTING -i $dev -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark + setup_usage setup_dnsmasq } @@ -151,7 +152,7 @@ do esac done -vpccidr=getVPCcidr +vpccidr=$(getVPCcidr) if [ "$Cflag$Dflag$dflag" != "11" ] then