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 . . . . :

   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 . . . . :

   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 . . . . :

   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