Comportamiento. DHCP Manual Binding

Como sabemos DHCP ayuda a entregar las direcciones de manera automática, pero en algunos casos es necesario colocar que ciertas máquinas tomen una dirección específica. Existen dos maneras para poder detectar que una máquina. Una es con el mac-address y el otro a través de un ID de cliente enviado en la petición DHCP opción 61.
Veamos el siguiente diagrama de prueba:

DHCP-diagram1.PNG

Puedes descargarlo aqui: DHCP-manual-binding.zip.

En el diagrama muestra las tres ejemplos que puede o no interactuar con el proceso de DHCP para que se vea la diferencia entre ellos.

Caso 1:
La PC1 tiene configurado el IP de manera manual, por lo que no utiliza el proceso DHCP. IP configurado: 192.168.0.2

Caso 2:
La PC2 tiene configurado para que tome el IP por dhcp con el comando ip address dhcp bajo la interfaz deseada. En este caso realiza las peticiones por broadcast y contesta R1. A continuación se muestra las respuestas bajo dos diferentes debug.

R1#debug ip dhcp server events
R1#
R1#
*Mar 1 00:01:48.563: DHCPD: Sending notification of DISCOVER:
*Mar 1 00:01:48.567: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:48.571: DHCPD: remote id 020a0000c0a8000100000000
*Mar 1 00:01:48.571: DHCPD: circuit id 00000000
*Mar 1 00:01:48.571: DHCPD: Seeing if there is an internally specified pool class:
*Mar 1 00:01:48.575: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:48.575: DHCPD: remote id 020a0000c0a8000100000000
*Mar 1 00:01:48.579: DHCPD: circuit id 00000000
*Mar 1 00:01:50.579: DHCPD: Adding binding to radix tree (192.168.0.2)
*Mar 1 00:01:50.583: DHCPD: Adding binding to hash tree
*Mar 1 00:01:50.583: DHCPD: assigned IP address 192.168.0.2 to client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30.
*Mar 1 00:01:50.671: DHCPD: Sending notification of ASSIGNMENT:
*Mar 1 00:01:50.675: DHCPD: address 192.168.0.2 mask 255.255.255.0
*Mar 1 00:01:50.675: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:50.679: DHCPD: lease time remaining (secs) = 86400
*Mar 1 00:01:53.991: DHCPD: Sending notification of TERMINATION:
*Mar 1 00:01:53.991: DHCPD: address 192.168.0.2 mask 255.255.255.0
*Mar 1 00:01:53.995: DHCPD: reason flags: DECLINE
*Mar 1 00:01:53.995: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:53.999: DHCPD: lease time remaining (secs) = 86397
*Mar 1 00:01:53.999: DHCPD: returned 192.168.0.2 to address pool DATOS.
*Mar 1 00:01:54.003: %DHCPD-4-DECLINE_CONFLICT: DHCP address conflict: client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30 declined 192.168.0.2.
*Mar 1 00:01:54.011: DHCPD: Sending notification of DISCOVER:
*Mar 1 00:01:54.011: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:54.015: DHCPD: remote id 020a0000c0a8000100000000
*Mar 1 00:01:54.015: DHCPD: circuit id 00000000
*Mar 1 00:01:54.019: DHCPD: Seeing if there is an internally specified pool class:
*Mar 1 00:01:54.019: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:54.023: DHCPD: remote id 020a0000c0a8000100000000
*Mar 1 00:01:54.023: DHCPD: circuit id 00000000
*Mar 1 00:01:56.027: DHCPD: Adding binding to radix tree (192.168.0.3)
*Mar 1 00:01:56.031: DHCPD: Adding binding to hash tree
*Mar 1 00:01:56.031: DHCPD: assigned IP address 192.168.0.3 to client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30.
*Mar 1 00:01:56.155: DHCPD: Sending notification of ASSIGNMENT:
*Mar 1 00:01:56.159: DHCPD: address 192.168.0.3 mask 255.255.255.0
*Mar 1 00:01:56.159: DHCPD: htype 1 chaddr c202.1af0.0000
*Mar 1 00:01:56.163: DHCPD: lease time remaining (secs) = 86400
R1#

El mismo escenario bajo el otro debug:

R1#debug ip dhcp server packet
R1#
*Mar 1 00:01:30.419: DHCPD: DHCPDISCOVER received from client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30 on interface FastEthernet0/0.
*Mar 1 00:01:30.423: DHCPD: Allocate an address without class information (192.168.0.0)
*Mar 1 00:01:31.987: %DHCPD-4-PING_CONFLICT: DHCP address conflict: server pinged 192.168.0.2.
*Mar 1 00:01:33.995: DHCPD: Sending DHCPOFFER to client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30 (192.168.0.3).
*Mar 1 00:01:33.999: DHCPD: broadcasting BOOTREPLY to client c202.1af0.0000.
*Mar 1 00:01:34.115: DHCPD: DHCPREQUEST received from client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30.
*Mar 1 00:01:34.123: DHCPD: No default domain to append - abort update
*Mar 1 00:01:34.123: DHCPD: Sending DHCPACK to client 0063.6973.636f.2d63.3230.322e.3161.6630.2e30.3030.302d.4661.302f.30 (192.168.0.3).
*Mar 1 00:01:34.127: DHCPD: broadcasting BOOTREPLY to client c202.1af0.0000.
R1#

Como se puede observar el IP que se debió entregar era el 192.168.0.2, pero en el Caso 1, esa dirección ya se encuentra asignada en la PC1. Se observa como sigue en la tabla de conflictos:

R1#show ip dhcp conflict
IP address Detection method Detection time VRF
192.168.0.2 Gratuitous ARP Mar 01 2002 12:01 AM

Gracias a la tabla ARP se detecta que el IP se encuentra ocupado, pero tambien R1 se puede dar cuenta con un ping de 500 ms. En este último caso se muestra en el status ping.

Caso 3:

Es el mismo caso que la PC2, a excepción que se configura un pool aparte para una IP fija basada en mac-address o el client-id.

ip dhcp pool HOST-PC3
host 192.168.0.99 255.255.255.0
hardware-address 0200.4C4F.4F50
client-identifier 0063.6973.636f.2d63.3230.612e.3066.3334.2e30.3030.302d.4661.302f.30
default-router 192.168.0.1
lease 0 3

Nota: Se deben crear tantos pool como equipos de IP fijos se deseen por DHCP.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License