Advertisement
Guest User

Untitled

a guest
May 24th, 2013
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.37 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. BRIDGE=br0
  4. IFNAME=tap0
  5.  
  6. # Network information
  7. NETWORK=10.0.2.0
  8. NETMASK=255.255.255.0
  9. GATEWAY=10.0.2.1
  10. DHCPRANGE=10.0.2.2,10.0.2.254
  11.  
  12. # Optionally parameters to enable PXE support
  13. TFTPROOT=
  14. BOOTP=
  15.  
  16. do_brctl() {
  17.     /usr/bin/sudo /sbin/brctl "$@"
  18. }
  19.  
  20. do_ifconfig() {
  21.     /usr/bin/sudo /bin/ifconfig "$@"
  22. }
  23.  
  24. do_dnsmasq() {
  25.     /usr/bin/sudo /usr/sbin/dnsmasq "$@"
  26. }
  27.  
  28. check_bridge() {
  29.     if do_brctl show | grep "^$1" > /dev/null 2> /dev/null; then
  30.     return 1
  31.     else
  32.     return 0
  33.     fi
  34. }
  35.  
  36. create_bridge() {
  37.     do_brctl addbr "$1"
  38.     do_brctl stp "$1" off
  39.     do_ifconfig "$1" "$GATEWAY" netmask "$NETMASK" up
  40. }
  41.  
  42. start_dnsmasq() {
  43.     do_dnsmasq \
  44.     --strict-order \
  45.     --except-interface=lo \
  46.     --interface=$BRIDGE \
  47.     --listen-address=$GATEWAY \
  48.     --bind-interfaces \
  49.     --dhcp-range=$DHCPRANGE \
  50.     --dhcp-option=15,example.com \
  51.     --conf-file="" \
  52.     --pid-file=/var/run/qemu-dnsmasq-$BRIDGE.pid \
  53.     --dhcp-leasefile=/var/run/qemu-dnsmasq-$BRIDGE.leases \
  54.     --dhcp-no-override \
  55.     ${TFTPROOT:+"--enable-tftp"} \
  56.     ${TFTPROOT:+"--tftp-root=$TFTPROOT"} \
  57.     ${BOOTP:+"--dhcp-boot=$BOOTP"}
  58. }
  59.  
  60. setup_bridge() {
  61.     if check_bridge "$1" ; then
  62.     create_bridge "$1"
  63.     start_dnsmasq "$1"
  64.         if test "$2" ; then
  65.             do_ifconfig "$2" 0.0.0.0 up
  66.             do_brctl addif "$BRIDGE" "$2"
  67.         fi
  68.     fi
  69. }
  70.  
  71. setup_bridge "$BRIDGE" "$1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement