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 '| '$P ' | ' >> $HTML_FILE
}
HTML_CLOSE() {
echo '
' >> $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