diff options
Diffstat (limited to 'linux/conf/rc.d/blan')
-rwxr-xr-x | linux/conf/rc.d/blan | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/linux/conf/rc.d/blan b/linux/conf/rc.d/blan new file mode 100755 index 0000000..61ac2d6 --- /dev/null +++ b/linux/conf/rc.d/blan @@ -0,0 +1,71 @@ +#!/bin/sh +# +# /etc/rc.d/blan: start/stop virtual network interfaces +# + +DEV="br0" +PHY="enp8s0" + +ADDR=10.0.0.254 +#ADDR=10.0.1.254 +MASK=8 +#GW=10.0.0.1 +GW=192.168.1.254 + +# one tap for each cpu core +NTAPS=$((`/usr/bin/nproc`)) + +case $1 in + start) + /sbin/ip link add name ${DEV} type bridge + /sbin/ip addr add ${ADDR}/${MASK} dev ${DEV} broadcast + + /sbin/ip link set dev ${DEV} up + /bin/sleep 0.2s + + # Add network to virtual bridge + /sbin/ip link set dev ${PHY} down + /bin/sleep 0.1s + /sbin/ip route flush dev ${PHY} + /sbin/ip addr flush dev ${PHY} + /sbin/ip link set dev ${PHY} up + /bin/sleep 0.2s + + /sbin/ip link set dev ${PHY} master ${DEV} + /sbin/ip route add default via ${GW} + + for i in `/usr/bin/seq $NTAPS` + do + TAP="tap$i" + echo "Setting up ${TAP} tap interface." + /sbin/ip tuntap add ${TAP} mode tap group kvm + /sbin/ip link set ${TAP} up + /bin/sleep 0.2s + /sbin/ip link set ${TAP} master ${DEV} + done + + exit 0 + ;; + stop) + + for i in `/usr/bin/seq $NTAPS` + do + TAP="tap$i" + echo "Deleting ${TAP} tap interface." + /sbin/ip link del ${TAP} + done + + /sbin/ip link set dev ${DEV} down + /sbin/ip route flush dev ${DEV} + /sbin/ip link del ${DEV} + exit 0 + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 [start|stop|restart]" + ;; +esac + +# End of file |