network_config_ver
# used to get what are the valid netmasks and gw/default-routers per subnet
# bitmask:subnetmask:subnetid:broadcast:hostrange:default_gateway
#
# 1 line
subnet @ 24 :0 :0 :255 :1-254 :254
# 2 lines
subnet @ 25 :128:0 :127 :1-126 :126
subnet @ 25 :128:128 :255 :129-254 :254
# 4 lines
subnet @ 26 :192:0 :63 :1-62 :62
subnet @ 26 :192:64 :127 :65-126 :126
subnet @ 26 :192:128 :191 :129-190 :190
subnet @ 26 :192:192 :255 :193-254 :254
# 8 lines
subnet @ 27 :224:0 :31 :1-30 :30
subnet @ 27 :224:32 :63 :33-62 :62
subnet @ 27 :224:64 :95 :65-94 :94
subnet @ 27 :224:96 :127 :97-126 :126
subnet @ 27 :224:128 :159 :129-158 :158
subnet @ 27 :224:160 :191 :161-190 :190
subnet @ 27 :224:192 :223 :193-222 :222
subnet @ 27 :224:224 :255 :225-254 :254
# 16 lines
subnet @ 28 :240:0 :15 :1-14 :14
subnet @ 28 :240:16 :31 :17-30 :30
subnet @ 28 :240:32 :47 :33-46 :46
subnet @ 28 :240:48 :63 :49-62 :62
subnet @ 28 :240:64 :79 :65-78 :78
subnet @ 28 :240:80 :95 :81-94 :94
subnet @ 28 :240:96: :111 :97-110 :110
subnet @ 28 :240:112 :127 :113-126 :126
subnet @ 28 :240:128 :143 :129-142 :142
subnet @ 28 :240:144 :159 :145-158 :158
subnet @ 28 :240:160 :175 :161-174 :174
subnet @ 28 :240:176 :191 :177-190 :190
subnet @ 28 :240:192 :207 :193-206 :206
subnet @ 28 :240:208 :223 :209-222 :222
subnet @ 28 :240:224 :239 :225-238 :238
subnet @ 28 :240:240 :255 :241-254 :254
#
# subnet :bitmask:vlan:comment
#
###Examples
network @ 10.1.40.0 :24:201 :Blah
network @ 10.1.42.0 :26:321 :Blah
network @ 10.1.42.64 :26:222 :Blah
network @ 10.1.42.128 :26:423 :Blah
network @ 10.1.42.192 :26:424 :Blah
network @ 10.1.43.0 :26:431 :Blah
network @ 10.1.43.64 :26:432 :Blah
network @ 10.1.43.128 :26:433 :Blah
network @ 10.1.43.192 :26:434 :Blah
#
network @ 10.2.0.0 :24:none:none
network @ 10.2.1.0 :24:none:none
network @ 10.2.2.0 :24:none:none
#
# and so on
#
Script to check it out (part of the overall checkin script)
f_network_compute_values()
{
########################################################################
# network checks
########################################################################
if (( DEBUG ))
then
set -x
fi
ITEM="network_config_ver"
#
if (( $DMZNODE ))
then
MYNAME="${HOST}c"
else
MYNAME="${HOST}"
fi
MYIP="$(nslookup $MYNAME 2> /dev/null \
| grep ^Address: \
| sed -n 2p \
| awk '{print $2}')"
MYSUBNET="$(echo $MYIP \
| awk -F. '{print $1"."$2"."$3}')"
MYLASTOCTET="$(echo $MYIP \
| awk -F. '{print $4}')"
#
# subnet @ bitmask @ vlan
#
MYITEM=network
MYNETWORKSTRING="$(f_stdfileparser \
| grep -w ^$MYITEM \
| f_outparser2 \
| grep $MYSUBNET)"
if [[ -z $MYNETWORKSTRING ]]
then
ERRVAL=23
ERRMSG="Subnet $MYSUBNET not found in $INPUTFILE in the network_config_ver network section."
f_fatal
fi
MYNETWORKCOUNT="$(f_stdfileparser \
| grep -w ^$MYITEM \
| f_outparser2 \
| grep $MYSUBNET \
| wc -l \
| sed -e 's/ //g')"
STDBITMASK="$(echo $MYNETWORKSTRING | sed -n 1p | awk -F: '{print $2}')"
#
CNT=1
while (( $CNT <= $MYNETWORKCOUNT ))
do
#
# bitmask:subnetmask:subnetid:broadcast:hostrange:default_gateway
#
MYITEM=subnet
MYSUBNETSTRING="$(f_stdfileparser \
| grep -w $MYITEM \
| f_outparser2 \
| grep -w $STDBITMASK \
| sed -n ${CNT}p \
| sed -e 's/ //g')"
#
STDSUBNETMASK=$(echo $MYSUBNETSTRING | awk -F: '{print $2}')
STDSUBNETID=$(echo $MYSUBNETSTRING | awk -F: '{print $3}')
STDBROADCAST=$(echo $MYSUBNETSTRING | awk -F: '{print $4}')
STDHOSTRANGE_BEG=$(echo $MYSUBNETSTRING \
| awk -F: '{print $5}' \
| awk -F- '{print $1}')
STDHOSTRANGE_END=$(echo $MYSUBNETSTRING \
| awk -F: '{print $5}' \
| awk -F- '{print $2}')
STDGATEWAY=$(echo $MYSUBNETSTRING | awk -F: '{print $6}')
#
if (( $MYLASTOCTET >= $STDHOSTRANGE_BEG && $MYLASTOCTET <= $STDHOSTRANGE_END))
then
# found right range
# break/exit loop
break
else
# not right range
# continue to next interation
let CNT=$CNT+1
fi
done
}