| 1 | #!/bin/sh
|
|---|
| 2 | # Start/stop/restart the TAP network interface.
|
|---|
| 3 |
|
|---|
| 4 | # Config
|
|---|
| 5 | REAL=eth0
|
|---|
| 6 | REALIP=10.99.102.80
|
|---|
| 7 | NETMASK=255.255.240.0
|
|---|
| 8 | GATEWAY=10.99.111.254
|
|---|
| 9 | BRIDGE=br0
|
|---|
| 10 | TAP=tap0
|
|---|
| 11 |
|
|---|
| 12 | # Start TAP.
|
|---|
| 13 | tap_start() {
|
|---|
| 14 | echo "Starting TAP: $TAP"
|
|---|
| 15 | if [ ! -e /dev/net ]; then
|
|---|
| 16 | /usr/bin/mkdir /dev/net
|
|---|
| 17 | fi
|
|---|
| 18 | if [ ! -e /dev/net/tun ]; then
|
|---|
| 19 | /usr/bin/mknod /dev/net/tun c 10 200
|
|---|
| 20 | fi
|
|---|
| 21 | /usr/bin/chgrp vboxusers /dev/net/tun
|
|---|
| 22 | /usr/bin/chmod g+rw /dev/net/tun
|
|---|
| 23 | /sbin/modprobe tun
|
|---|
| 24 | /usr/sbin/brctl addbr $BRIDGE
|
|---|
| 25 | /sbin/ifconfig $REAL 0.0.0.0 promisc up
|
|---|
| 26 | /usr/sbin/brctl addif $BRIDGE $REAL
|
|---|
| 27 | /usr/sbin/tunctl -t $TAP -u root -g vboxusers
|
|---|
| 28 | /usr/sbin/brctl addif $BRIDGE $TAP
|
|---|
| 29 | /sbin/ifconfig $TAP up
|
|---|
| 30 | /sbin/ifconfig $BRIDGE inet $REALIP netmask $NETMASK
|
|---|
| 31 | /sbin/route add default gw $GATEWAY $BRIDGE
|
|---|
| 32 | /usr/bin/chmod 0666 /dev/net/tun
|
|---|
| 33 | /usr/bin/VBoxAddIF tap0 mpeac br0
|
|---|
| 34 | }
|
|---|
| 35 |
|
|---|
| 36 | # Stop TAP.
|
|---|
| 37 | tap_stop() {
|
|---|
| 38 | echo "Stopping TAP: $TAP"
|
|---|
| 39 | /sbin/ifconfig $TAP down
|
|---|
| 40 | /usr/sbin/tunctl -d $TAP
|
|---|
| 41 | /sbin/ifconfig $BRIDGE down
|
|---|
| 42 | /usr/sbin/brctl delbr $BRIDGE
|
|---|
| 43 | /sbin/ifconfig $REAL inet $REALIP netmask $NETMASK up
|
|---|
| 44 | /sbin/route add default gw $GATEWAY $REAL
|
|---|
| 45 | }
|
|---|
| 46 |
|
|---|
| 47 | # Restart TAP:
|
|---|
| 48 | tap_restart() {
|
|---|
| 49 | tap_stop
|
|---|
| 50 | tap_start
|
|---|
| 51 | }
|
|---|
| 52 |
|
|---|
| 53 | case "$1" in
|
|---|
| 54 | 'start')
|
|---|
| 55 | tap_start
|
|---|
| 56 | ;;
|
|---|
| 57 | 'stop')
|
|---|
| 58 | tap_stop
|
|---|
| 59 | ;;
|
|---|
| 60 | 'restart')
|
|---|
| 61 | tap_restart
|
|---|
| 62 | ;;
|
|---|
| 63 | *)
|
|---|
| 64 | echo "usage $0 start|stop|restart"
|
|---|
| 65 | esac
|
|---|
| 66 |
|
|---|