1.1. Общие сведения о DHCP
DHCP (RFC2131) - сокращение от Dynamic Host Configuration Protocol (Протокол Динамической Конфигурации Узла). DHCP позволяет динамически назначить IP-адрес, а также передать хосту другие параметры сетевой конфигурации, такие как маршрут по-умолчанию, DNS-сервер, местоположение файла образа прошивки и другие.
DHCP - имеет архитектуру “клиент-сервер”. DHCP-клиент запрашивает сетевой адрес и другие параметры у DHCP-сервера, сервер предоставляет сетевой адрес и параметры конфигурации клиентам. Если DHCP-сервер и DHCP-клиент находятся в разных подсетях, для перенаправления пакетов может быть настроен DHCP-relay.
В общем случае процесс предоставления адреса и других данных по DHCP выглядит следующим образом:
DHCP клиент отправляет широковещательный запрос DHCPDISCOVER;
При получении DHCPDISCOVER пакета DHCP сервер отправляет DHCP клиенту DHCPOFFER пакет, содержащий назначаемый IP-адрес и другие параметры;
DHCP клиент отправляет широковещательный DHCPREQUEST;
DHCP сервер отправляет пакет DHCPACK клиенту и клиент получает IP-адрес и другие параметры;
Вышеуказанные четыре этапа завершают процесс динамического назначения параметров. Однако, если DHCP сервер и DHCP клиент не находятся в одной сети, сервер не сможет получить широковещательные пакеты, отправленные DHCP клиентом. Для пересылки таких пакетов используется DHCP-relay, который перенаправит широковещательные пакеты от DHCP-клиента серверу как unicast.
Коммутаторы SNR могут быть настроены в качестве DHCP сервера, DHCP relay, а также получать параметры динамически в качестве DHCP-клиента.
1.2. Конфигурация DHCP-сервера
Включить\выключить DHCP service;
Настроить пул DHCP-адресов:
Создать\удалить:
Настроить передаваемые параметры;
Настроить привязку IP адреса к MAC;
Включить логирование конфликта IP-адресов;
Включить\выключить DHCP service;
Команда | Описание |
---|---|
service dhcp no service dhcp ! В режиме глобальной конфигурации | Включить сервисы DHCP (server, relay) Выключить сервисы DHCP (по умолчанию) |
ip dhcp disable no ip dhcp disable ! В режиме конфигурации интерфейса | Выключить сервисы DHCP на интерфейсе Включить сервисы DHCP на интерфейсе (по умолчанию) |
2. Настроить пул DHCP-адресов:
a. Создать\удалить
Команда | Описание |
---|---|
ip dhcp pool <name> no ip dhcp pool <name> ! В режиме глобальной конфигурации | Создать пул адресов для DHCP-сервера и войти в режим его конфигурирования. Удалить пул адресов для DHCP-сервера |
b. Настроить передаваемые параметры;
Команда | Описание |
---|---|
network-address <network-number> [mask | prefix-length] no network-address ! В режиме конфигурирования DHCP pool | Добавить область адресов в текущий DHCP pool
|
default-router [<address1>[<address2>[…<address8>]]]
! В режиме конфигурирования DHCP pool | Задать один или несколько (до 8 одновременно) шлюзов по-умолчанию. Чем раньше задан адрес, тем выше приоритет он будет иметь. Удалить адрес шлюза по-умолчанию. |
dns-server [<address1>[<address2>[…<address8>]]]
! В режиме конфигурирования DHCP pool | Задать один или несколько (до 8 одновременно) DNS-адресов. Чем раньше задан адрес, тем выше приоритет он будет иметь. Удалить адрес DNS-сервера |
domain-name <domain> no domain-name ! В режиме конфигурирования DHCP pool | Задать доменное имя Удалить доменное имя |
netbios-name-server [<address1>[<address2>[…<address8>]]] no netbios-name-server ! В режиме конфигурирования DHCP pool | Задать один или несколько (до 8 одновременно) адресов WINS-серверов.
|
netbios-node-type {b-node|h-node|m-node|p-node|<type-number>} no netbios-node-type ! В режиме конфигурирования DHCP pool | Задать WINS node-type.
|
bootfile <filename> no bootfile ! В режиме конфигурирования DHCP pool | Задать загрузочный файл Удалить загрузочный файл |
next-server [<address1>[<address2>[…<address8>]]] no next-server [<address1>[<address2>[…<address8>]]] ! В режиме конфигурирования DHCP pool | Задать IP-адрес сервера, на котором хратится bootfile Удалить IP-адрес сервера, на котором хратится bootfile |
option <code> {ascii <string> | hex <hex> | ipaddress <ipaddress>} no option <code> ! В режиме конфигурирования DHCP pool | Настройка параметра {ascii <string> | hex <hex> | ipaddress <ipaddress>}, определенного кодом опции <code>. Удалить параметр, определенный кодом опции <code> |
lease { days [hours][minutes] | infinite } no lease ! В режиме конфигурирования DHCP pool | Задать время аренды адреса, infinite - постоянное использование Вернуть значение по-умолчанию (1 day) |
max-lease-time {[<days>] [<hours>] [<minutes>] | infinite} no max-lease-time ! В режиме конфигурирования DHCP pool | Задать максимальное время аренды адреса, infinite - постоянное использование Вернуть значение по-умолчанию (1 day) |
ip dhcp excluded-address <low-address> [<high-address>] no ip dhcp excluded-address <low-address> [<high-address>] ! В режиме глобальной конфигурации | Задать диапазон IP-адресов из dhcp pool, который будет исключен из динамического назначения. <low-address> - начало диапазона, <high-address> - конец диапазона Удалить диапазон адресов |
c. Настроить привязку IP адреса к MAC;
Команда | Описание |
---|---|
hardware-address <hardware-address> [{Ethernet | IEEE802|<type-number>}] no hardware-address ! В режиме конфигурирования DHCP pool | Задать аппаратный адрес для фиксированного назначения адреса Удалить аппаратный адрес для фиксированного назначения адреса |
host <address> [<mask>|<prefix-length>] no host ! В режиме конфигурирования DHCP pool | Задать IP-адрес, который будет назначен на заданный hardware-address Удалить IP-адрес, который будет назначен на заданный hardware-address |
client-identifier <unique-identifier> no client-identifier ! В режиме конфигурирования DHCP pool | Задать уникальный ID пользователя Удалить уникальный ID пользователя |
3. Включить логирование конфликта IP-адресов;
Команда | Описание |
---|---|
ip dhcp conflict logging no ip dhcp conflict logging ! В режиме глобальной конфигурации | Включить/выключить логирование при обнаружении конфликта адресов, выданных по DHCP |
clear ip dhcp conflict <address | all> ! В привилегированном режиме | Удалить одну <address> или все <all> записи обнаруженных конфликтов адресов |
1.3. DHCP-relay
Когда DHCP-клиент и DHCP-сервер находятся в разных сегментах сети, транслировать пакеты может DHCP relay. В результате внедрения DHCP-relay, один DHCP-сервер может использоваться для разных сегментов сети, что не только экономически эффективно, но и удобно в администрировании.
DHCP-клиент, как обычно, выполняет диалог с DHCP-сервером, но в процесс добавляется DHCP-relay. Он перехватывает пакеты от DHCP-клиента и перенаправляет их на заданный адрес DHCP-сервера как unicast, принимает пакеты от DHCP-сервера и перенаправляет их DHCP-клиенту, которому они предназначались.
Настройка DHCP-relay
Включить\выключить DHCP service;
Настройка DHCP-relay для перенаправления пакетов;
Настройка VLAN источника и назначения перенаправления.
Включить\выключить DHCP service;
Команда | Описание |
---|---|
service dhcp no service dhcp ! В режиме глобальной конфигурации | Включить сервисы DHCP (server, relay) Выключить сервисы DHCP (по умолчанию) |
2. Настройка DHCP-relay для перенаправления пакетов;
Команда | Описание |
---|---|
ip forward-protocol udp bootps no ip forward-protocol udp bootps ! В режиме глобальной конфигурации | Включить пересылку bootps пакетов Выключить пересылку bootps пакетов |
ip helper-address <ipaddress> no ip helper-address <ipaddress> ! В режиме конфигурации Interface Vlan | Задать адрес DHCP сервера. Удалить адрес DHCP сервера. |
3. Настройка VLAN источника и назначения перенаправления.
Для использования DHCP-relay на коммутаторе необходимо создать интерфейс уровня 3 для VLAN, которая будет использоваться в качестве share-vlan. Одновременно с этим необходимо включить
Команда | Описание |
---|---|
ip dhcp relay share-vlan <vlanid> sub-vlan <vlanlist> no dhcp relay share-vlan ! В режиме глобальной конфигурации | Задать соответствие VLAN источника (sub-vlan <vlanlist>) и назначения share-vlan <vlanid> перенаправления Удалить соответствие VLAN источника и назначения перенаправления |
1.4. Пример конфигурации DHCP
Сценарий 1:
Чтобы упростить настройку и администрирование, компания использует коммутатор в качестве DHCP-сервера. IP-адрес VLAN управления - 10.16.1.2/16. Сеть компании разделена между сетями A и B по местоположению офис. Конфигурация сети A и B показана в таблице ниже:
Pool A (сеть 10.16.1.0) | Pool B (сеть 10.16.2.0) | |
Шлюз по-умолчанию | 10.16.1.200 10.16.1.201 | |
DNS сервер | 10.16.1.202 | |
WWW сервер | нет | 10.16.1.209 |
WINS сервер | 10.16.1.209 | нет |
WINS тип ноды | H-node | нет |
Время аренды | 3 дня | 1 день |
В сети A IP адрес 10.16.1.210 фиксированно задан для назначения устройству, имеющему MAC-адрес 00-03-22-23-dc-ab.
Switch(config)#service dhcp Switch(config)#interface vlan 1 Switch(Config-Vlan-1)#ip address 10.16.1.2 255.255.0.0 Switch(Config-Vlan-1)#exit Switch(config)#ip dhcp pool A Switch(dhcp-A-config)#network 10.16.1.0 24 Switch(dhcp-A-config)#lease 3 Switch(dhcp-A-config)#default-route 10.16.1.200 10.16.1.201 Switch(dhcp-A-config)#dns-server 10.16.1.202 Switch(dhcp-A-config)#netbios-name-server 10.16.1.209 Switch(dhcp-A-config)#netbios-node-type H-node Switch(dhcp-A-config)#exit Switch(config)#ip dhcp excluded-address 10.16.1.200 10.16.1.201 Switch(config)#ip dhcp pool B Switch(dhcp-B-config)#network 10.16.2.0 24 Switch(dhcp-B-config)#lease 1 Switch(dhcp-B-config)#default-route 10.16.2.200 10.16.2.201 Switch(dhcp-B-config)#dns-server 10.16.2.202 Switch(dhcp-B-config)#option 72 ip 10.16.2.209 Switch(dhcp-config)#exit Switch(config)#ip dhcp excluded-address 10.16.2.200 10.16.2.201 Switch(config)#ip dhcp pool A1 Switch(dhcp-A1-config)#host 10.16.1.210 Switch(dhcp-A1-config)#hardware-address 00-03-22-23-dc-ab Switch(dhcp-A1-config)#exit
Использование: Когда DHCP/BOOTP клиент подключается к порту коммутатора с VLAN 1, он может получить адрес только из сети 10.16.1.0/24 вместо 10.16.2.0/24. Причина в том, что клиент может широковещательно запрашивать IP-адрес только в сегменте VLAN-интерфейса. Если клиент хочет получить адрес в сети 10.16.2.0/24, шлюз, пересылающий широковещательные пакеты клиента, должен принадлежать сети 10.16.2.0/24, должна быть обеспечена связность между шлюзом и коммутатором.
Сценарий 2:
Коммутатор Switch настроен как DHCP-relay, DHCP-клиент подключен к интерфейсу 1/0/2, DHCP-сервер подключен к интерфейсу 1/0/3. Конфигурация выглядит следующим образом:
Switch(config)#service dhcp Switch(config)#interface vlan 1 Switch(Config-if-Vlan1)#ip address 192.168.1.1 255.255.255.0 Switch(Config-if-Vlan1)#exit Switch(config)#vlan 2 Switch(Config-Vlan-2)#exit Switch(config)#interface Ethernet 1/0/2 Switch(Config-Ethernet1/0/2)#switchport access vlan 2 Switch(Config-Ethernet1/0/2)#exit Switch(config)#interface vlan 2 Switch(Config-if-Vlan2)#ip address 10.1.1.1 255.255.255.0 Switch(Config-if-Vlan2)#exit Switch(config)#ip forward-protocol udp bootps Switch(config)#interface vlan 1 Switch(Config-if-Vlan1)#ip help-address 10.1.1.10 Switch(Config-if-Vlan1)#exit
Рекомендуется использовать комбинацию команд “ip forward-protocol udp bootps” и “ip help-address <ip-address>”. Команда “ip help-address <ip-address>” может быть настроена только на интерфейсах уровня 3.
Сценарий 3:
ПК1 и DHCP-сервер подключены к разным портам одного коммутатора Switch1. На ПК1 работает DHCP-клиент, получающий адрес от DHCP-сервера. Switch1 - коммутатор уровня 2, на нем настроены функции DHCP-relay и option 82, Ethernet 1/0/2 - настроен в режим access с vlan 3, Ethernet 1/0/3 настроен в trunk. DHCP сервер имеет адрес 192.168.10.199. На коммутаторе Switch1 создан interface vlan 1 и настроен IP-адрес 192.168.40.50, настроен адрес для перенаправления DHCP - 192.168.10.199. VLAN3 настроен как sub-vlan для vlan 1.
Конфигурация Switch1 выглядит следующим образом:
Switch1(config)#vlan 1 Switch1(config)#vlan 3 Switch1(config)#interface ethernet 1/0/2 Switch1(Config-If-Ethernet1/0/2)#switchport access vlan 3 Switch1(config)#interface ethernet 1/0/3 Switch1(Config-If-Ethernet1/0/2)#switchport mode trunk Switch1(config)#service dhcp Switch1(config)#ip forward-protocol udp bootps Switch1(config)#ip dhcp relay information option Switch1(config)#ip dhcp relay share-vlan 1 sub-vlan 3 Switch1(config)#interface vlan 1 Switch1(config-if-vlan1)#ip address 192.168.40.50 255.255.255.0 Switch1(config-if-vlan1)#ip helper-address 192.168.40.199
1.5. Решение проблем при настройке DHCP
Если DHCP-клиент не может получить IP адрес и другие сетевые параметры, после проверки кабеля и клиентского оборудования следует выполнить следующее:
Проверьте, запущен ли DHCP-сервер;
Если DHCP клиент и DHCP сервер находятся не в одной сети и не имеют прямой L2-связности, проверьте, настроена ли на коммутаторе, отвечающем за пересылку пакетов, функция DHCP-relay;
Проверьте, имеет ли DHCP-сервер адресный пул в том же сегменте, что и адрес interface vlan коммутатора, перенаправляющего DHCP-пакеты;
На данном коммутаторе адресный пул может быть настроен либо как динамический, командой “network-address” , либо как статический, командой “host”. Привязка только одного адреса может быть настроена в каждом пуле. Если необходимо настроить несколько адресов для ручной привязки, необходимо создать отдельный DHCP-pool для каждой привязки.