ONE=$1 TWO=$2 FW1=10.0.0.2 LOOP_WAIT=2 SSID=T-Dose APS="11 12 13 14 15 16" APS="11 12 13 14 15" APS="11 12 13 14" APS="11 12 13 14 15 16" APS="11" APS="11 12 13" SERVER=10.11.0.2 NEXT_SERVER="$SERVER" NET=10 HTML_FILE=/usr/local/www/data/index.tmp HTML_FILE_LIVE=/usr/local/www/data/index.html HTML_RELOAD_PAGE=1 GATEWAY_IF=em3 GATEWAY_IP=194.171.92.22 GATEWAY_NET=255.255.255.0 GATEWAY_ROUTER=194.171.92.1 WLAN_IF=em3 WLAN_IP=10.11.0.2 WLAN_MASK=255.255.255.0 WLAN_NET=${NET}.11 WLAN_NET_AP=${WLAN_NET}.0 LAN_IF="em5" LAN_NET="${NET}.12.0.0" LAN_IP="${NET}.12.0.2" LAN_ROUTER="${NET}.12.0.1" LAN_MASK="255.255.254.0" LAN_GW="${NET}.12.0.1" LAN_RANGE="${NET}.12.0.10 ${NET}.12.1.250" MONITOR_IPS="$GATEWAY_ROUTER $GATEWAY_IP $WLAN_IP $LAN_IP" DHCP_CONF=dhcpd.conf DHCP_IF="$LAN_IF $WLAN_IF" DHCP_DNS=$SERVER GET_NODE_CONF() { case $AP in 11) MAC=00:0d:b9:17:a6:70 IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11b A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=36 A1_me=hostap A1_v=${AP}1 ;; 12) MAC=00:0d:b9:17:a6:74 IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 13) MAC=00:0d:b9:17:a6:48 IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_mo=hostap A1_v=${AP}1 ;; 14) MAC=00:0d:b9:17:a6:7c IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 15) MAC=00:0d:b9:17:a2:1c IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 16) MAC=00:0d:b9:17:a4:24 IF=vr0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 17) MAC=00:00:24:c3:e6:20 IF=sis0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 18) MAC=00:00:24:C3:E6:24 IF=sis0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 19) MAC=00:00:24:C3:E6:2c IF=sis0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; 20) MAC=00:00:24:C3:E6:30 IF=sis0 IP=${WLAN_NET_AP}.$AP A0_mo=11g A0_c=11 A0_me=hostap A0_v=${AP}0 A1_mo=11a A1_c=48 A1_me=hostap A1_v=${AP}1 ;; esac } HTML_OPEN() { echo '

NEK monitor

'> $HTML_FILE date >> $HTML_FILE echo '

' >> $HTML_FILE } HTML_ROW() { echo '' >> $HTML_FILE } HTML_DATA() { echo '' >> $HTML_FILE } HTML_CLOSE() { echo '
'$P '
' >> $HTML_FILE } COLOR_CHECK() { if [ "x${P}" = "x" ]; then COLOR=red P="0000" HTML_DATA break else COLOR=green fi } MENU(){ cat $0 | grep '(){' | sed s/'()'// | sed s/'{'// | grep -v 'cat' } MONITOR_ONCE() { for IP in $MONITOR_IPS do P=$IP COLOR=lightblue HTML_DATA P=`ping -t 4 -c 1 -q $IP | \ grep min | awk '{print $4}' | \ cut -c 1-5` echo $IP - $P COLOR_CHECK HTML_DATA HTML_ROW done COLOR=lightblue P="em5 has " HTML_DATA P=`arp -i em5 -a | wc -l` HTML_DATA HTML_ROW } MONITOR(){ P="Acces Point $AP" COLOR=lightblue HTML_DATA P="`ping -t 4 -c 1 -q $IP | \ grep min | awk '{print $4}' | \ cut -c 1-5`" COLOR_CHECK HTML_DATA HTML_ROW MS="${A0_v}" P="vlan $MS" COLOR=lightblue HTML_DATA P=$A0_c HTML_DATA COLOR=cyan P=`ssh $IP ifconfig wlan0 list sta | grep -c ^00` HTML_DATA for i in 1 2 3 4 do IP=${WLAN_NET}.${A0_v}.$i P=`ping -t 4 -c 1 -q $IP | \ grep min | awk '{print $4}' | \ cut -c 1-5` COLOR_CHECK HTML_DATA MS="$MS - $P" done echo $MS HTML_DATA HTML_ROW MS="${A1_v}" P="vlan $MS" COLOR=lightblue HTML_DATA P=$A1_c HTML_DATA COLOR=cyan P=`ssh $IP ifconfig wlan1 list sta | grep -c ^00` HTML_DATA for i in 1 2 3 4 do IP=${WLAN_NET}.${A1_v}.$i P=`ping -t 4 -c 1 -q $IP | \ grep min | awk '{print $4}' | \ cut -c 1-5 ` COLOR_CHECK HTML_DATA MS="$MS - $P" done echo $MS HTML_DATA HTML_ROW } FW_SETUP_ONCE(){ sysctl net.inet.ip.forwarding=1 ifconfig $WLAN_IF $WLAN_IP $WLAN_MASK ifconfig $LAN_IF alias $LAN_ROUTER $LAN_MASK ifconfig $LAN_IF $LAN_IP $LAN_MASK } FW_SETUP_ONCE(){ ifconfig vlan${A0_v} create ifconfig vlan${A1_v} create ifconfig vlan${A0_v} vlan $A0_v vlandev $WLAN_IF up ifconfig vlan${A1_v} vlan $A1_v vlandev $WLAN_IF up ifconfig vlan${A0_v} ${WLAN_NET}.${A0_v}.1/24 ifconfig vlan${A1_v} ${WLAN_NET}.${A1_v}.1/24 } NET_SETUP(){ # router # ssh root@$FW1 ifconfig $WLAN_IF $WLAN_IP $WLAN_MASK # ssh root@$FW1 ifconfig $LAN_IF $LAN_IP $LAN_MASK # ssh root@$FW1 ifconfig vlan${A0_v} create # ssh root@$FW1 ifconfig vlan${A1_v} create # ssh root@$FW1 ifconfig vlan${A0_v} vlan $A0_v vlandev $WLAN_IF up # ssh root@$FW1 ifconfig vlan${A1_v} vlan $A1_v vlandev $WLAN_IF up # ssh root@$FW1 ifconfig vlan${A0_v} ${WLAN_NET}.${A0_v}.1/24 # ssh root@$FW1 ifconfig vlan${A1_v} ${WLAN_NET}.${A1_v}.1/24 if [ "`ping -t 1 -c 1 ${WLAN_NET_AP}.${AP}| grep -c round-trip`" = "1" ] then # wlan ssh root@${IP} ifconfig wlan0 create wlandev ath0 wlanmode $A0_me ssh root@${IP} ifconfig wlan0 mode $A0_mo ssid $SSID channel $A0_c up ssh root@${IP} ifconfig wlan0 ${WLAN_NET}.${A0_v}.4/24 ssh root@${IP} ifconfig wlan1 create wlandev ath1 wlanmode $A1_me ssh root@${IP} ifconfig wlan1 mode $A1_mo ssid ${SSID}-5G channel $A1_c up ssh root@${IP} ifconfig wlan1 ${WLAN_NET}.${A1_v}.4/24 # vlan ssh root@${IP} ifconfig vlan$A0_v create ssh root@${IP} ifconfig vlan$A1_v create ssh root@${IP} ifconfig vlan${A0_v} ${WLAN_NET}.${A0_v}.2/24 vlan $A0_v vlandev $IF up ssh root@${IP} ifconfig vlan${A1_v} ${WLAN_NET}.${A1_v}.2/24 vlan $A1_v vlandev $IF up # bridge ssh root@${IP} ifconfig bridge0 create ssh root@${IP} ifconfig bridge1 create ssh root@${IP} ifconfig bridge0 ${WLAN_NET}.${A0_v}.3/24 addm vlan$A0_v addm wlan0 up ssh root@${IP} ifconfig bridge1 ${WLAN_NET}.${A1_v}.3/24 addm vlan$A1_v addm wlan1 up fi } DHCP_CFG(){ echo " " >> $DHCP_CONF echo "host ap${AP} {" >> $DHCP_CONF echo " hardware ethernet $MAC;" >> $DHCP_CONF echo " fixed-address ${WLAN_NET_AP}.${AP};" >> $DHCP_CONF # echo " server-name \"$SERVER\";" >> $DHCP_CONF # echo " server-identifier $SERVER;" >> $DHCP_CONF echo " filename \"pxeboot\";" >> $DHCP_CONF echo " option root-path \"$SERVER:/usr/tftpboot\";" >> $DHCP_CONF echo " next-server $NEXT_SERVER;" >> $DHCP_CONF echo " }" >> $DHCP_CONF echo " " >> $DHCP_CONF echo "subnet ${WLAN_NET}.${A0_v}.0 netmask 255.255.255.0 {" >> $DHCP_CONF echo " range ${WLAN_NET}.${A0_v}.10 ${WLAN_NET}.${A0_v}.250;" >> $DHCP_CONF echo " option routers ${WLAN_NET}.${A0_v}.1;" >> $DHCP_CONF echo ' }' >> $DHCP_CONF echo " " >> $DHCP_CONF echo "subnet ${WLAN_NET}.${A1_v}.0 netmask 255.255.255.0 {" >> $DHCP_CONF echo " range ${WLAN_NET}.${A1_v}.10 ${WLAN_NET}.${A1_v}.250;" >> $DHCP_CONF echo " option routers ${WLAN_NET}.${A1_v}.1;" >> $DHCP_CONF echo ' }' >> $DHCP_CONF echo " " >> $DHCP_CONF } TIME(){ ssh root@${BOX} date ssh root@${BOX} /etc/rc.d/ntpd stop ssh root@${BOX} ntpdate timelord1 ssh root@${BOX} /etc/rc.d/ntpd start ssh root@${BOX} date } REBOOT(){ ssh root@${IP} 'reboot' } DHCP_RESTART(){ for AP in $APS do GET_NODE_CONF DHCP_IF="$DHCP_IF vlan${A0_v} vlan${A1_v}" done killall dhcpd dhcpd -cf $DHCP_CONF $DHCP_IF } case $ONE in "DHCP_CFG") echo \# `date` > $DHCP_CONF echo "default-lease-time 600; " >> $DHCP_CONF echo "max-lease-time 7200;" >> $DHCP_CONF echo "authoritative;" >> $DHCP_CONF echo "ddns-update-style none;" >> $DHCP_CONF echo "log-facility local7;" >> $DHCP_CONF echo "option domain-name-servers $DHCP_DNS;" >> $DHCP_CONF echo " " >> $DHCP_CONF echo "subnet ${WLAN_NET_AP}.0 netmask $WLAN_MASK {}">> $DHCP_CONF echo " " >> $DHCP_CONF echo "subnet ${LAN_NET} netmask ${LAN_MASK} {" >> $DHCP_CONF echo " range $LAN_RANGE;" >> $DHCP_CONF echo " option routers $LAN_GW;" >> $DHCP_CONF echo " }" >> $DHCP_CONF TWO=all ;; FW_SETUP) FW_SETUP_ONCE TWO=all ;; DHCP_RESTART) TWO=once ;; MONITOR) TWO=loop ;; NET_SETUP) TWO=all ;; esac case $TWO in once|o) $ONE ;; loop|l) while [ 1 ] do case $ONE in MONITOR) HTML_OPEN MONITOR_ONCE ;; esac for AP in $APS do GET_NODE_CONF $ONE done case $ONE in MONITOR) HTML_CLOSE ;; esac cp $HTML_FILE $HTML_FILE_LIVE sleep $LOOP_WAIT clear done ;; all|a) for AP in $APS do GET_NODE_CONF $ONE echo $MSG done ;; *) MENU ;; esac