Comportamiento del DHCP al migrar el
servidor
Fecha: 4 de diciembre del 2020
Escenario
Este laboratorio analiza los mecanismos de solicitud y renovación de una IP mediante DHCP y DHCP relay, pero puntualmente
que sucede cuando durante el tiempo de alquiler de una IP (lease), por motivos X (queda a imaginación del lector) se migra el
servidor DHCP (en este lab por razones de simplicidad lo hacemos en el mismo equipo) y que impacto tiene en la operatoria y
la conectividad de un equipo cliente durante la renovación.
Inicialmente analizamos el proceso de renovación normal (arriba) y luego que sucede al cambiar el servidor (abajo).
Agradezco a mi compañero Pablo Pace (experto en casi todo) que me alentó a ejecutar una migración similar pero con equipos y redes
en producción y trabajando en home office (espero que el no estuviese ajeno a todos estos mecanismos DHCP involucrados, pero me
dijo “que iba a andar”).
Esa experiencia me inspiró a
crear este lab, gracias Pache!
Y por cierto, este lab lo hice el día del trabajador municipal (tenía el día libre y opté por ustedes).
1.- Configuración inicial
1.1.- En el DHCP relay:
interface FastEthernet0/0
ip address 192.168.2.1 255.255.255.0 (será el gateway del
cliente DHCP)
ip helper-address 192.168.1.10
1.2.-
Servidor DHCP:
ip dhcp pool DHCP
network 192.168.2.0 255.255.255.0
default-router 192.168.2.1
lease 0 0 10 (dejamos 10 minutos para simplificar las capturas)
!
interface FastEthernet0/0
ip address 192.168.1.10 255.255.255.0 (la IP a la que apunta en relay)
!
ip route 192.168.2.0 255.255.255.0 192.168.1.1 (las peticiones DHCP que reciba siempre las realizará el relay 192.168.2.1
! por lo tanto en este escenario no se necesita la ruta por defecto)
2.- Se genera una petición inicial (DHCP discover):
Esta operación se genera conectando el patch de red de una máquina cliente sin IP (ejecuté previamente un ipconfig/release).
2.1.- Operaciones involucradas:
*Dec 4 09:54:34.591: DHCPD: DHCPDISCOVER received from client
01e8.6a64.dce2.f5 through relay 192.168.2.1.
*Dec 4 09:54:35.595:
%DHCPD-4-PING_CONFLICT: DHCP address conflict:
server pinged 192.168.2.1. (verifica con ping la IP a ofrecer y
*Dec 4 09:54:37.595: DHCPD: Sending DHCPOFFER to client 01e8.6a64.dce2.f5 (192.168.2.2). si responde pasa a la siguiente)
*Dec 4 09:54:37.595: DHCPD: unicasting
BOOTREPLY for client e86a.64dc.e2f5 to relay 192.168.2.1.
*Dec 4 09:54:37.599: DHCPD: DHCPREQUEST received from client
01e8.6a64.dce2.f5.
*Dec 4 09:54:37.599: DHCPD: Sending DHCPACK to client 01e8.6a64.dce2.f5
(192.168.2.2).
*Dec 4 09:54:37.599: DHCPD: unicasting
BOOTREPLY for client e86a.64dc.e2f5 to relay 192.168.2.1.
2.2.- Verificación en el DHCP server:
DHCP-server#sh ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.2.2 01e8.6a64.dce2.f5 Dec 04 2020 10:04 AM Automatic
DHCP-server#
2.3.- Verificación en el cliente DHCP:
C:\>ipconfig /all
Adaptador de Ethernet Ethernet:
Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . : Intel(R) Ethernet Connection (4) I219-V
Dirección física. . . . . . . . . . . . . . . . . . . . . . . : E8-6A-64-DC-E2-F5
DHCP habilitado . . . . . . . . . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . . : sí
Dirección IPv4. . . . . . . . . . . . . . . . . . . . . . . : 192.168.2.2(Preferido)
Máscara de subred . . . . . . . . . . . . . . . . . . : 255.255.255.0
Concesión obtenida. . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 09:54:45
La concesión expira . . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 10:04:45 (10 minutos)
Puerta de enlace predeterminada. . . . . . : 192.168.2.1
Servidor DHCP
. . . . . . . . . . . . . . . . . . . . . . : 192.168.1.10
NetBIOS sobre TCP/IP. . . . . . . . . . . . . . . . : habilitado
3.- Renovación al 50% de tiempo de leasing:
3.1.- Operaciones involucradas:
Dec
4
09:59:20.887: DHCPD: DHCPREQUEST
received from client 01e8.6a64.dce2.f5.
Dec
4
09:59:20.891: DHCPD: Sending DHCPACK
to client 01e8.6a64.dce2.f5 (192.168.2.2).
Dec
4 09:59:20.891:
DHCPD: unicasting BOOTREPLY to client e86a.64dc.e2f5 (192.168.2.2).
3.2.- Verificación en el DHCP server:
DHCP-server#sh ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.2.2 01e8.6a64.dce2.f5 Dec 04 2020 10:09
AM Automatic
DHCP-server#
3.3.- Verificación en el cliente DHCP:
C:\>ipconfig /all
Adaptador de Ethernet Ethernet:
Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . : Intel(R)
Ethernet Connection (4) I219-V
Dirección física. . . . . . . . . . . . . . . . . . . . . . . : E8-6A-64-DC-E2-F5
DHCP habilitado . . . . . . . . . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . . : sí
Dirección IPv4. . . . . . . . . . . . . . . . . . . . . . . : 192.168.2.2(Preferido)
Máscara de subred . . . . . . . . . . . . . . . . . . : 255.255.255.0
Concesión obtenida. . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 09:54:45
La concesión expira . . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 10:09:46 (se extendió 5 minutos mas)
Puerta de enlace predeterminada . . . . . : 192.168.2.1
Servidor DHCP
. . . . . . . . . . . . . . . . . . . . . . : 192.168.1.10
NetBIOS sobre TCP/IP. . . . . . . . . . . . . . . . : habilitado
4.- Renovación al 100% de tiempo de leasing:
4.1.- Operaciones involucradas:
Dec
4
10:04:20.967: DHCPD: DHCPREQUEST
received from client 01e8.6a64.dce2.f5.
Dec
4
10:04:20.967: DHCPD: Sending DHCPACK
to client 01e8.6a64.dce2.f5 (192.168.2.2).
Dec
4
10:04:20.967: DHCPD: unicasting BOOTREPLY to client e86a.64dc.e2f5
(192.168.2.2).
4.2.- Verificación en el DHCP server:
DHCP-server#sh ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.2.2 01e8.6a64.dce2.f5 Dec 04 2020 10:14
AM Automatic
DHCP-server#
4.3.- Verificación en el cliente DHCP:
C:\>ipconfig /all
Adaptador de Ethernet Ethernet:
Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . : Intel(R)
Ethernet Connection (4) I219-V
Dirección física. . . . . . . . . . . . . . . . . . . . . . . : E8-6A-64-DC-E2-F5
DHCP habilitado . . . . . . . . . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . . : sí
Dirección IPv4. . . . . . . . . . . . . . . . . . . . . . . : 192.168.2.2(Preferido)
Máscara de subred . . . . . . . . . . . . . . . . . . : 255.255.255.0
Concesión obtenida. . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 09:54:45
La concesión expira . . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 10:14:46 (se extendió 5 minutos mas)
Puerta de enlace predeterminada . . . . . : 192.168.2.1
Servidor DHCP
. . . . . . . . . . . . . . . . . . . . . . : 192.168.1.10
NetBIOS sobre TCP/IP. . . . . . . . . . . . . . . . : habilitado
5.- Reemplazo del servidor DHCP:
Simulamos la migración del DHCP con IP incluída, como dijimos antes, el motivo queda a imaginación del lector.
Por simplicidad utilizamos el mismo equipo, pero para simular un servidor nuevo purgamos completamente la
configuración del DHCP borrando el pool y volviendo a generarlo.
Ejecutando un clear ip dhcp bind * los resultados no son 100% como un reemplazo de equipo.
5.1.- Cambio de IP en el DHCP server:
DHCP-server#conf t
Enter configuration commands, one per
line. End with CNTL/Z.
DHCP-server(config)#interface FastEthernet0/0
DHCP-server(config-if)#
ip address 192.168.1.20 255.255.255.0
DHCP-server(config-if)#
exit
DHCP-server(config)#
5.2.- Limpiamos el DHCP emulando un server completamente nuevo:
DHCP-server(config)#no ip dhcp pool DHCP
DHCP-server(config)#ip dhcp pool DHCP
DHCP-server(dhcp-config)#
network 192.168.2.0 255.255.255.0
DHCP-server(dhcp-config)#
default-router 192.168.2.1
DHCP-server(dhcp-config)#
lease 0 0 10
DHCP-server(dhcp-config)#end
DHCP-server#
5.3.-
Verificamos:
DHCP-server#sh ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
DHCP-server#
5.4.- Cambio del relay DHCP:
Gateway#conf t
Enter configuration commands, one per
line. End with CNTL/Z.
Gateway(config)#interface FastEthernet0/0
Gateway(config-if)# ip helper-address 192.168.1.20
Gateway(config-if)# no ip helper-address 192.168.1.10
Gateway(config-if)# end
Gateway#
6.- Comprobamos la solicitud de renovación:
6.1.- Intentos de renovación:
Vemos que al no contactar con el servidor DHCP intenta renovar cada 1 minuto hasta vencer el tiempo de lease.
6.2.- Vence el tiempo de lease y genera un DHCP discover:
6.3.- Efecto en el equipo cliente:
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
PING: error en la transmisión. Error general. (tiempo durante el cual la IP expira y se renegocia una nueva)
PING: error en la transmisión. Error general.
PING: error en la transmisión. Error general.
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo<1m TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
Respuesta desde 192.168.2.1: bytes=32 tiempo=1ms TTL=255
6.4.- Logs en el DHCP server:
Dec
4
10:14:27.027: DHCPD: DHCPDISCOVER
received from client 01e8.6a64.dce2.f5 through relay 192.168.2.1.
Dec 4 10:14:29.027: DHCPD: Sending DHCPOFFER to client 01e8.6a64.dce2.f5 (192.168.2.2). (ver que no hay PING ni conflicto con la IP 192.168.2.1)
Dec
4
10:14:29.027: DHCPD: unicasting BOOTREPLY for client e86a.64dc.e2f5 to relay
192.168.2.1.
Dec
4
10:14:29.031: DHCPD: DHCPREQUEST
received from client 01e8.6a64.dce2.f5.
Dec
4
10:14:29.031: DHCPD: Sending DHCPACK
to client 01e8.6a64.dce2.f5 (192.168.2.2).
Dec
4
10:14:29.031: DHCPD: unicasting BOOTREPLY for client e86a.64dc.e2f5 to relay
192.168.2.1.
6.5.- Verificación en el DHCP server:
DHCP-server#sh ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.2.2 01e8.6a64.dce2.f5 Dec 04 2020 10:24 AM Automatic
DHCP-server#
6.6.- Verificación en el cliente DHCP:
C:\>ipconfig /all
Adaptador de Ethernet Ethernet:
Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . : Intel(R)
Ethernet Connection (4) I219-V
Dirección física. . . . . . . . . . . . . . . . . . . . . . . : E8-6A-64-DC-E2-F5
DHCP habilitado . . . . . . . . . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . . : sí
Dirección IPv4. . . . . . . . . . . . . . . . . . . . . . . : 192.168.2.2(Preferido)
Máscara de subred . . . . . . . . . . . . . . . . . . : 255.255.255.0
Concesión obtenida. . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 10:14:54
La concesión expira . . . . . . . . . . . . . . . . . . : viernes, 4 de diciembre de 2020 10:24:54 (10 minutos)
Puerta de enlace predeterminada . . . . . : 192.168.2.1
Servidor DHCP
. . . . . . . . . . . . . . . . . . . . . . : 192.168.1.20 (DHCP server migrado)
NetBIOS sobre TCP/IP. . . . . . . . . . . . . . . . : habilitado
6.7.- Detalle de que la PC solicita la misma IP que tenía:
Esto es un feature de Windows de que incluso persiste al reboot ya que lo guarda en la registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\
Frame 15: 342 bytes on
wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: e8:6a:64:dc:e2:f5,
Dst: ff:ff:ff:ff:ff:ff (capa 2 modelo OSI)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255 (capa 3 modelo OSI)
User Datagram Protocol, Src Port: 68, Dst Port: 67 (capa 4 modelo OSI)
Bootstrap Protocol
(Discover)
(capa 7 modelo OSI)
Message type: Boot Request (1)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x0123df5e
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 0.0.0.0 (no tiene IP)
Next server IP address:
0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: e8:6a:64:dc:e2:f5
Client hardware address
padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type
(Discover)
Length: 1
DHCP: Discover (1)
Option: (61) Client identifier
Length: 7
Hardware type: Ethernet
(0x01)
Client MAC address:
e8:6a:64:dc:e2:f5
Option: (50) Requested IP Address
Length: 4
Requested IP Address: 192.168.2.2 (IP solicitada)
Option: (12) Host Name
Length: 11
Host Name: PC-Ernesto
Option: (60) Vendor class
identifier
Length: 8
Vendor class identifier:
MSFT 5.0
Option: (55) Parameter Request
List
Length: 14
Parameter Request List
Item: (1) Subnet Mask
Parameter Request List
Item: (3) Router
Parameter Request List
Item: (6) Domain Name Server
Parameter Request List
Item: (15) Domain Name
Parameter Request List
Item: (31) Perform Router Discover
Parameter Request List
Item: (33) Static Route
Parameter Request List
Item: (43) Vendor-Specific Information
Parameter Request List
Item: (44) NetBIOS over TCP/IP Name Server
Parameter Request List
Item: (46) NetBIOS over TCP/IP Node Type
Parameter Request List
Item: (47) NetBIOS over TCP/IP Scope
Parameter Request List
Item: (119) Domain Search
Parameter Request List
Item: (121) Classless Static Route
Parameter Request List
Item: (249) Private/Classless Static Route (Microsoft)
Parameter Request List
Item: (252) Private/Proxy autodiscovery
Option: (255) End
Option End: 255
Padding: 0000
7.- Resumen:
Al migrar un servidor DHCP con cambio de IP incluído, el tiempo de alquiler expira, el equipo cliente pierde conectividad
momentáneamente y luego la recupera al obtener una IP (generalmente la misma en equipos Windows) en forma automática.
8.- Configuración de los equipos:
DHCP-server#sh runn (solo lo mas relevante)
Building configuration...
Current configuration :
1100 bytes
!
! Last configuration change at 10:05:57 UTC Fri
Dec 4 2020
!
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname DHCP-server
!
ip dhcp pool DHCP
network 192.168.2.0 255.255.255.0
default-router 192.168.2.1
lease 0 0 10
!
!
interface FastEthernet0/0
ip address 192.168.1.20 255.255.255.0
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!
!
end
DHCP-server#
Gateway# sh runn (solo lo mas relevante)
Building configuration...
Current configuration :
912 bytes
!
service timestamps debug datetime msec
service timestamps log datetime localtime
!
hostname Gateway
!
interface FastEthernet0/0
ip address 192.168.2.1 255.255.255.0
ip helper-address 192.168.1.20
!
interface FastEthernet0/1
ip address 192.168.1.1 255.255.255.0
!
!
end
Gateway#
(2020) I
want my IP for christmas
Rosario, Argentina