В этой статье будет пошаговая инструкция по настройке сервер DHCP. В качестве сервера будет выступать Cisco 1841(Version 12.4(19)) и в качестве клиента — D-Link DIR-100
Если говорить о настройках клиента(D-Link DIR-100), то никакие настройки на нем не проводились. Всего лишь он был сброшен в заводские настройки при помощи кнопки на задней панели, т.е. по умолчанию настройки WAN нацелены на DHCP-клиент.

В мини-сети схема такова:
192.168.10.1/24 — Cisco 1841 — он же шлюз, он же DHCP-сервер
192.168.10.2/24 и 192.168.10.3/24 — пара DNS-серверов
все остальное адресное пространство в подсети 192.168.10.0/24 отведено под локальные машины.

Приступим к описанию настроек DHCP-сервера.
Настройки на интерфейса Fa0/0 — смотрит в сторону локальной сети:
Router#sh run int fa0/0
Building configuration…


Current configuration : 97 bytes
!
interface FastEthernet0/0
ip address 192.168.10.1 255.255.255.0
duplex auto
speed auto
end

1. Включение DHCP-сервера производится командой:
Router# conf t
Router(config)# service dhcp

2. Объявление пула адресов и шлюза:
Router(config)# ip dhcp pool Local
Router(dhcp-config)# network 192.168.10.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.10.1

3. Исключение из пула шлюза и DNS-серверов — берется диапазон адресов:
Router# conf t
Router(config)# ip dhcp excluded-addresses 192.168.10.1 192.168.10.3

4. Задаем домен для клиентов и DNS-сервера:
Router# conf t
Router(config)# ip dhcp pool Local
Router(dhcp-config)# dns-server 192.168.10.2 192.168.10.3
Router(dhcp-config)# domain-name pc.lan

Теперь включаем debug для анализа и решения возможных проблем:
Router#debug ip dhcp server events
Router#debug ip dhcp server packet

Вот что показывает отладка при правильно настроенном сервере:

*Nov 9 10:58:23.339: DHCPD: Sending notification of DISCOVER:
*Nov 9 10:58:23.339: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 10:58:23.339: DHCPD: remote id 020a0000c0a80a0100000000
*Nov 9 10:58:23.339: DHCPD: circuit id 00000000
*Nov 9 10:58:23.339: DHCPD: DHCPDISCOVER received from client 011c.aff7.136a.7b on interface FastEthernet0/0.
*Nov 9 10:58:23.339: DHCPD: Seeing if there is an internally specified pool class:
*Nov 9 10:58:23.339: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 10:58:23.339: DHCPD: remote id 020a0000c0a80a0100000000
*Nov 9 10:58:23.339: DHCPD: circuit id 00000000
*Nov 9 10:58:23.339: DHCPD: Allocate an address without class information (192.168.10.0)
*Nov 9 10:58:25.339: DHCPD: Adding binding to radix tree (192.168.10.4)
*Nov 9 10:58:25.339: DHCPD: Adding binding to hash tree
*Nov 9 10:58:25.339: DHCPD: assigned IP address 192.168.10.4 to client 011c.aff7.136a.7b.
*Nov 9 10:58:25.339: DHCPD: Sending DHCPOFFER to client 011c.aff7.136a.7b (192.168.10.4).
*Nov 9 10:58:25.339: DHCPD: creating ARP entry (192.168.10.4, 1caf.f713.6a7b).
*Nov 9 10:58:25.339: DHCPD: unicasting BOOTREPLY to client 1caf.f713.6a7b (192.168.10.4).
*Nov 9 10:58:25.347: DHCPD: DHCPREQUEST received from client 011c.aff7.136a.7b.
*Nov 9 10:58:25.347: DHCPD: Sending notification of ASSIGNMENT:
*Nov 9 10:58:25.347: DHCPD: address 192.168.10.4 mask 255.255.255.0
*Nov 9 10:58:25.347: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 10:58:25.347: DHCPD: lease time remaining (secs) = 86400
*Nov 9 10:58:25.347: DHCPD: Appending default domain from pool
*Nov 9 10:58:25.347: DHCPD: Using hostname ‘DIR-100.pc.lan.’ for dynamic update (from hostname option)
*Nov 9 10:58:25.347: DHCPD: Sending DHCPACK to client 011c.aff7.136a.7b (192.168.10.4).
*Nov 9 10:58:25.347: DHCPD: creating ARP entry (192.168.10.4, 1caf.f713.6a7b).
*Nov 9 10:58:25.347: DHCPD: unicasting BOOTREPLY to client 1caf.f713.6a7b (192.168.10.4).

И просмотр состояния клиентов при помощи команды show ip dhcp binding:

Router#sh ip dhcp binding
Bindings from all pools not associated with VRF:
IP address          Client-ID/              Lease expiration        Type
Hardware address/
User name
192.168.10.4       011c.aff7.136a.7b       Infinite                Manual

Теперь можно сделать так, чтобы, например, адрес 192.168.10.50 получал только клиент с mac-адресом 011c.aff7.136a.7b В этом случае часть конфигурации ip dhcp pool Local будет иметь вид:
!
ip dhcp pool Local
host 192.168.10.50 255.255.255.0
client-identifier 011c.aff7.136a.7b
default-router 192.168.10.1
dns-server 192.168.10.2 192.168.10.3
domain-name pc.lan
!

Ну и отладка в такой конфигурации:

*Nov 9 11:09:06.763: DHCPD: Sending notification of DISCOVER:
*Nov 9 11:09:06.763: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 11:09:06.763: DHCPD: remote id 020a0000c0a80a0100000000
*Nov 9 11:09:06.763: DHCPD: circuit id 00000000
*Nov 9 11:09:06.763: DHCPD: DHCPDISCOVER received from client 011c.aff7.136a.7b on interface FastEthernet0/0.
*Nov 9 11:09:06.763: DHCPD: Seeing if there is an internally specified pool class:
*Nov 9 11:09:06.763: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 11:09:06.763: DHCPD: remote id 020a0000c0a80a0100000000
*Nov 9 11:09:06.763: DHCPD: circuit id 00000000
*Nov 9 11:09:06.763: DHCPD: Sending DHCPOFFER to client 011c.aff7.136a.7b (192.168.10.50).
*Nov 9 11:09:06.763: DHCPD: creating ARP entry (192.168.10.50, 1caf.f713.6a7b).
*Nov 9 11:09:06.763: DHCPD: unicasting BOOTREPLY to client 1caf.f713.6a7b (192.168.10.50).
*Nov 9 11:09:06.771: DHCPD: DHCPREQUEST received from client 011c.aff7.136a.7b.
*Nov 9 11:09:06.771: DHCPD: Sending notification of ASSIGNMENT:
*Nov 9 11:09:06.771: DHCPD: address 192.168.10.50 mask 255.255.255.0
*Nov 9 11:09:06.771: DHCPD: htype 1 chaddr 1caf.f713.6a7b
*Nov 9 11:09:06.771: DHCPD: lease time remaining (secs) = 4294967295
*Nov 9 11:09:06.771: DHCPD: Appending default domain from pool
*Nov 9 11:09:06.771: DHCPD: Using hostname ‘DIR-100.pc.lan.’ for dynamic update (from hostname option)
*Nov 9 11:09:06.771: DHCPD: Sending DHCPACK to client 011c.aff7.136a.7b (192.168.10.50).
*Nov 9 11:09:06.771: DHCPD: creating ARP entry (192.168.10.50, 1caf.f713.6a7b).
*Nov 9 11:09:06.771: DHCPD: unicasting BOOTREPLY to client 1caf.f713.6a7b (192.168.10.50).

В принципе, pool таким образом можно создать какие угодно под каждого клиента в локальной сети, в зависимости от потребностей и возможностей серверной части.