Rotina para calcular IP aplicada ao gerenciador
June 18th, 2008
Iêpa!
Levando em consideração que alguns casos requeiram prover Ip´s para arquivos do dhcpd, criei uma pequena rotina para gerar ip’s para subnets com 30 bits destinados a Rede, máscara 255.255.255.252, podendo ser utilizada ou não com qualquer interface de gerenciamento de redes e provedores. Esta rotina foi desenvolvida associada ao código do gerenciador citado em posts antigos, onde a função é chamado antes da gravação dos ips no arquivo de configuração do dhcpd.
calculaip () {
for ipd in `cat /etc/rc.d/hosts.liberadosMAC`;do
IPSOURCE=`echo $ipd | cut -d ‘;’ -f 2 >> /etc/rc.d/ipord`
done;
for ipd in `cat /etc/rc.d/ipord`;do
IPSOURCE=`echo $ipd | cut -d ‘;’ -f 2 `
done;
ip=`echo $IPSOURCE`
ip1=`echo $ip | cut -d ‘.’ -f 4`
ip2=`echo $ip | cut -d ‘.’ -f 3`
if [ $ip1 -lt "250" ] ; then
nfinaladdr=$(($ip1 + 4));
nfinalrede=$(($nfinaladdr – 2));
nfinalgw=$(($nfinalrede + 1));
nfinalbroad=$(($nfinaladdr + 1));
ipaddr=”192.168.$ip2.$nfinaladdr”
ipnet=”192.168.$ip2.$nfinalrede”
ipgw=”192.168.$ip2.$nfinalgw”
ipbroad=”192.168.$ip2.$nfinalbroad”
<!–more–>
elif [ $ip1="250" ] ; then
$ip2=$(($ip2 + 1));
$ip1=0;
nfinaladdr=$(($ip1 + 4));
nfinalrede=$(($nfinaladdr – 2));
nfinalgw=$(($nfinalrede + 1));
nfinalbroad=$(($nfinaladdr + 1));
ipaddr=”192.168.$ip2.$nfinaladdr”
ipnet=”192.168.$ip2.$nfinalrede”
ipgw=”192.168.$ip2.$nfinalgw”
ipbroad=”192.168.$ip2.$nfinalbroad”
fi
}
Abaixo a rotina de gravação no arquivo /etc/dhcpd.conf
calculaip
echo $ipmac | tr a-z A-Z >> $caminhoIPMAC
#cadastro na lista de acesso do Proxy-cache
ipmac2=`echo $ipmac | cut -d ‘;’ -f 2`
mac=`echo $ipmac | cut -d ‘;’ -f 3`
nome=`echo $ipmac | cut -d ‘;’ -f 4`
#GRAVAÇÃO NO ARQUIVO
echo “subnet $ipnet netmask 255.255.255.252 {” >> /etc/rc.d/hostsDHCPD
echo “option broadcast-address $ipbroad;” >> /etc/rc.d/hostsDHCPD
echo “option routers $ipgw;” >> /etc/rc.d/hostsDHCPD
echo “host $nome {” >> /etc/rc.d/hostsDHCPD
echo “hardware ethernet $mac;” >> /etc/rc.d/hostsDHCPD
echo “fixed-address $ipaddr;” >> /etc/rc.d/hostsDHCPD
echo “}}” >> /etc/rc.d/hostsDHCPD
Note que a gravação é feita em um arquivo temporário linkado ao arquivo de configuração do DHCPd, o arquivo /etc/rc.d/hostsDHCPD . Para linkar ao dhcpd.conf será necessário colocar apenas $ ./etc/rc.d/hostsDHCPD no arquivo de configuração do DHCP para que seja adicionado as linhas para cada Host do dhcpd.
O gerenciador adaptado a esta realidade encontra-se disponível neste Aqui. Uma versão sem bugs também estará disponível preciso apenas “restorar” meu sistemas de Arquivos do SVN , rsrsrs. Abraço e até a próxima.
July 18th, 2008 at 7:21 pm
Ola Tiago o host que vc deixou o script esta fora só pa avisar…