Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- BOOT=${1-yes}
- echo $BOOT
- while true;
- do
- wan=`ip -4 a | grep inet | grep -v '172.1[6-9]\..*\..*\|172.2[0-9]\..*\..*\|172.3[0-1]\..*\..*\|192.168\..*\..*\|10.[0-255].\..*\..*\|127.0.0.1\|172.17.0.1' | wc -l`
- lan=`ip -4 a | grep -e '10\..*\..*\..*' | wc -l`
- if [ $wan -gt 0 ] && [ $lan -gt 0 ]; then
- echo "Use LAN with WAN"
- WAN_ADDR=`ip -4 a | grep inet | grep -v '172.1[6-9]\..*\..*\|172.2[0-9]\..*\..*\|172.3[0-1]\..*\..*\|192.168\..*\..*\|10.[0-255].\..*\..*\|127.0.0.1\|172.17.0.1' | awk '{print $2}' | cut -d '/' -f 1`
- echo $WAN_ADDR
- WAN_NET=`echo $WAN_ADDR | cut -d "." -f 1,2,3`
- echo $WAN_NET
- LAN_ADDR=`ip -4 a | grep -e '10.[0-255].\..*\..*' | awk '{print $2}' | cut -d '/' -f 1`
- echo $LAN_ADDR
- LAN_PREFIX=`ip -4 a | grep -e '10.[0-255].\..*\..*' | awk '{print $2}' | cut -d '/' -f 2`
- echo $LAN_PREFIX
- IFS=. read -r i1 i2 i3 i4 <<< $LAN_ADDR
- D2B=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
- binIP=${D2B[$i1]}${D2B[$i2]}${D2B[$i3]}${D2B[$i4]}
- binIP0=${binIP::$LAN_PREFIX}$(printf '0%.0s' $(seq 1 $((32-$LAN_PREFIX))))
- LAN_GATE=$((2#${binIP0::8})).$((2#${binIP0:8:8})).$((2#${binIP0:16:8})).$(echo 1)
- LAN_NET=`echo $LAN_ADDR | cut -d "." -f 1,2,3`
- WAN_DEV=`ip -4 a | grep $WAN_NET | awk '{print $7}'`
- LAN_DEV=`ip -4 a | grep $LAN_NET | awk '{print $7}'`
- # check if route to wan was set
- WAN_GATE=`ip r | grep "default via $WAN_NET" | wc -l`
- echo $WAN_NET
- echo $LAN_GATE
- echo "ADD route"
- ip route add 10.10.0.0/16 via $LAN_GATE dev $LAN_DEV
- ip route add 172.24.8.0/24 via $LAN_GATE dev $LAN_DEV
- if [ $WAN_GATE -lt 1 ]; then
- echo "Adding default route"
- ip route del default
- dhclient $WAN_DEV
- #ip route add default via $WAN_NET.1
- fi
- echo "ADD route done"
- else
- if [ $wan -gt 0 ]; then
- echo "Use only WAN"
- dhclient $WAN_DEV
- elif [ $lan -gt 0 ]; then
- echo "Use only LAN"
- dhclient $LAN_DEV
- fi
- fi
- if [ $BOOT == 'yes' ]; then
- exit 0
- fi
- sleep 1
- done
Add Comment
Please, Sign In to add comment