Script is used to setup/remove of private bridge
it provides dhcp service to guests by dnsmasq.

Signed-off-by: Amos Kong <[email protected]>
---
 client/tests/kvm/scripts/set_private_br.sh |   53 ++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)
 create mode 100755 client/tests/kvm/scripts/set_private_br.sh

diff --git a/client/tests/kvm/scripts/set_private_br.sh 
b/client/tests/kvm/scripts/set_private_br.sh
new file mode 100755
index 0000000..4c4cff0
--- /dev/null
+++ b/client/tests/kvm/scripts/set_private_br.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# Author: Amos Kong <[email protected]>
+# Date: Apr 14, 2011
+# Description: this script is used to create/delete a private bridge,
+# launch a dhcp server on the bridge by dnsmasq.
+#
+# @ ./set_private_br.sh $bridge_name $subnet_prefix
+# @ ./set_private_br.sh vbr0 192.168.33
+
+brname='vbr0'
+subnet='192.168.33'
+
+add_br()
+{
+    echo "add new private bridge: $brname"
+    /usr/sbin/brctl show |egrep "\b$brname\b" && exit
+    /usr/sbin/brctl addbr $brname
+    echo 1 > /proc/sys/net/ipv4/ip_forward
+    /usr/sbin/brctl stp $brname on
+    /usr/sbin/brctl setfd $brname 0
+    ifconfig $brname $subnet.1 up
+    # Add forward rule, then guest can access public network
+    iptables -t nat -A POSTROUTING -s $subnet.254/24 ! -d $subnet.254/24 -j 
MASQUERADE
+    /etc/init.d/dnsmasq stop
+    dnsmasq --strict-order --bind-interfaces --listen-address $subnet.1 
--dhcp-range $subnet.1,$subnet.254 --pid-file=/tmp/dnsmasq.pid
+}
+
+del_br()
+{
+    echo "cleanup bridge setup"
+    kill -9 `cat /tmp/dnsmasq.pid`
+    ifconfig $brname down
+    /usr/sbin/brctl delbr $brname
+    iptables -t nat -D POSTROUTING -s $subnet.254/24 ! -d $subnet.254/24 -j 
MASQUERADE
+}
+
+
+if [ $# = 0 ]; then
+    echo "./set_private_br.sh add|del [brname] [subnet]"
+    exit
+fi
+if [ $# > 1 ]; then
+    brname="$2"
+fi
+if [ $# > 2 ]; then
+    subnet="$3"
+fi
+if [ $1 = 'add' ]; then
+    add_br
+elif [ $1 = 'del' ]; then
+    del_br 2>/dev/null
+fi

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to