Page tree
Skip to end of metadata
Go to start of metadata


1.1. Общие сведения о DHCP

DHCP (RFC2131) - сокращение от Dynamic Host Configuration Protocol (Протокол Динамической Конфигурации Узла). DHCP позволяет динамически назначить IP-адрес, а также передать хосту другие параметры сетевой конфигурации, такие как маршрут по-умолчанию, DNS-сервер, местоположение файла образа прошивки и другие.
DHCP - имеет архитектуру “клиент-сервер”. DHCP-клиент запрашивает сетевой адрес и другие параметры у DHCP-сервера, сервер предоставляет сетевой адрес и параметры конфигурации клиентам. Если DHCP-сервер и DHCP-клиент находятся в разных подсетях, для перенаправления пакетов может быть настроен DHCP-relay.

В общем случае процесс предоставления адреса и других данных по DHCP выглядит следующим образом:

  1. DHCP клиент отправляет широковещательный запрос DHCPDISCOVER;

  2. При получении DHCPDISCOVER пакета DHCP сервер отправляет DHCP клиенту DHCPOFFER пакет, содержащий назначаемый IP-адрес и другие параметры;

  3. DHCP клиент отправляет широковещательный DHCPREQUEST;

  4. DHCP сервер отправляет пакет DHCPACK клиенту и клиент получает IP-адрес и другие параметры;

Вышеуказанные четыре этапа завершают процесс динамического назначения параметров. Однако, если DHCP сервер и DHCP клиент не находятся в одной сети, сервер не сможет получить широковещательные пакеты, отправленные DHCP клиентом. Для пересылки таких пакетов используется DHCP-relay, который перенаправит широковещательные пакеты от DHCP-клиента серверу как unicast.

Коммутаторы SNR могут быть настроены в качестве DHCP сервера, DHCP relay, а также получать параметры динамически в качестве DHCP-клиента.

1.2. Конфигурация DHCP-сервера

  1. Включить\выключить DHCP service;

  2. Настроить пул DHCP-адресов:

    1. Создать\удалить:

    2. Настроить передаваемые параметры;

    3. Настроить привязку IP адреса к MAC;

  3. Включить логирование конфликта IP-адресов;


  1. Включить\выключить 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


Удалить область адресов из текущего DHCP pool

default-router [<address1>[<address2>[…<address8>]]]


no default-router

!  В режиме конфигурирования DHCP pool

Задать один или несколько (до 8 одновременно) шлюзов по-умолчанию. Чем раньше задан адрес, тем выше приоритет он будет иметь.

Удалить адрес шлюза по-умолчанию.

dns-server [<address1>[<address2>[…<address8>]]]


no dns-server

!  В режиме конфигурирования 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-серверов.


Удалить адрес WINS-сервера


netbios-node-type {b-node|h-node|m-node|p-node|<type-number>}

no netbios-node-type

!  В режиме конфигурирования DHCP pool

Задать WINS node-type.


Удалить параметр 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

  1. Включить\выключить DHCP service;

  2. Настройка DHCP-relay для перенаправления пакетов;

  3. Настройка VLAN источника и назначения перенаправления.


  1. Включить\выключить 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 для каждой привязки.

  • No labels