el BCP (Business Continuity Plan) esta pensado para una situaciĆ³n donde desaparece momentĆ”neamente la topologĆa lĆ³gica de Vlan. En el plan de continuidad permanece la subdivisiĆ³n de redes pero esta ves por la asignaciĆ³n de los datos de configuraciĆ³n directamente por el isc-dhcp-server. Para ello el plan contempla dos tipos de incidentes:
1) fallas en el servidor distribuidor de vlans.
2) fallas en el switch principal con TRUNKs vlan.
Para esto, configurĆ© un servidor clon del distribuidor de vlans y me vĆ en la necesidad de crear un script que me permita obtener los datos de los hosts existentes conectados o apagados para asignarle estĆ”ticamente su pertenencia a la sub red.
De ello surge el script que explico a continuaciĆ³n.
En Ubuntu la base de datos del servidor dhcp esta en: /var/lib/dhcp/dhcpd.leases
y su configuraciĆ³n en: /etc/dhcp/dhcpd.conf
el contenido de dhcpd.conf puede ser parecido a este:
y el contenido de dhcpd.leases:
Primero vamos a generar un archivo csv con el script explicado aqui:
http://jaskolowski.com.ar/2017/11/script-para-parsear-dhcpdlease.html
que es este:
nos genera un archivo con un contenido parecido a este:
ese archivo lo vamos a procesar con el siguiente script:
dejo el texto a continuaciĆ³n por si les resulta mĆ”s fĆ”cil copy&paste:
#!/bin/bashY eso nos da como resultado un archivo de configuraciĆ³n de dhcp server que va a asignar a cada host que tiene registrado por su mac la ip correspondiente a la sub red a la que pertenecĆa en un entorno vlan.
# script para crear dhcpd.conf a partir de la DB dhcpd.leases
#
# Creamos variables para obtener IP, MAC y Gateway de hosts
IP=(`cat lease.csv |cut -f1 -d";"`)
MAC=(`cat lease.csv |cut -f2 -d";"`)
GW=(`cat lease.csv |cut -f1 -d";"|sed 's:[^.]*$:1:'`)
# iniciamos el encabezado de dhcpd.conf
echo "ddns-update-style none;">dhcpd.conf
echo "Authoritative;">>dhcpd.conf
echo "ignore client-updates;">>dhcpd.conf
#creacion de un arreglo
for i in "${!IP[@]}"
do
# creamos cada lease por host
echo "# PC-${IP[$i]}">>dhcpd.conf
echo "Host PC-${IP[$i]} {">>dhcpd.conf
echo " hardware ethernet ${MAC[$i]};">>dhcpd.conf
echo " fixed-address ${IP[$i]};">>dhcpd.conf
echo " option subnet-mask 255.255.255.224;">>dhcpd.conf
echo " option domain-name-servers 8.8.8.8,208.67.222.222;">>dhcp.conf
echo " option routers ${GW[$i]};">>dhcpd.conf
echo " default-lease-time -1;">>dhcpd.conf
echo " max-lease-time -1;">>dhcpd.conf
echo "}">>dhcpd.conf
done
Adicionalmente se puede configurar una sub red para 30 Ć³ 62 hosts que no hayan sido registrados en dhcpd.leases y aunque no esten en la sub red de su vlan, al menos tengan conexiĆ³n hasta que se concluya el DRP.
No hay comentarios:
Publicar un comentario