Skip to: Site menu | Main content

Rotina para calcular IP aplicada ao gerenciador

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.

One Response to “Rotina para calcular IP aplicada ao gerenciador”

  1. Edson J Bueno Says:

    Ola Tiago o host que vc deixou o script esta fora só pa avisar…

Leave a Reply