GrabDuck

DHCP сервер на маршрутизаторе cisco | CiscoTips

:

Протокол DHCP – позволяет производить автоматическую настройку сети на компьютерах и других устройствах. DHCP может быть настроен на маршрутизаторах Cisco или на базе любого сервера. Данная статья описывает настройку DHCP сервера на маршрутизаторе Cisco. Однако, маршрутизатор может работать и как DHCP клиент – получая адрес на один из своих интерфейсов. Об этом можно прочесть подробнее здесь. Настройка DHCP сервера на маршрутизаторе это удобно в том плане, что если уже есть работающий маршрутизатор, то проще повесить на него максимальное количество функционала (интернет, NAT, DHCP и т.п.) чтобы каждое устройство занималось своим делом. DCHP позволяет автоматически настраивать на клиенте следующие основные параметры:

  1. IP адрес
  2. Основной шлюз
  3. Маска подсети
  4. DNS сервера
  5. Имя домена

Это наиболее частое использование DHCP, но можно передавать и огромное количество других параметров. Например, можно передавать дополнительные маршруты, чтобы в разные сети компьютер ходил через разные шлюзы. Или, с помощью DHCP можно организовывать загрузку устройств по сети. В этом случае клиент получает помимо основных параметров, адрес TFTP сервера и имя файла на нём (я имею в виду имя файла – загрузчика ОС, которую необходимо загрузить по сети).

Когда клиент, например, обычный компьютер, запускается, ОС видит, что для некой сетевой карты стоит «Получить параметры по DHCP». Такой компьютер не имеет пока IP адреса и происходит следующая процедура получения:

  1. Компьютер отправляет широковещательный запрос. При этом на втором уровне в фрейме стоит мак адрес отправителя – адрес компьютера, мак адрес получателя – ffff.ffff.ffff, а на третьем уровне – в пакете адрес отправителя отсутствует, адрес получателя стоит 255.255.255.255. Такое DHCP сообщение называется «DHCP discover».
  2. Далее все устройства в сети получают это широковещательное сообщение. DHCP сервера (а их теоретически может быть несколько) отвечают клиенту. Сервер резервирует в своём пуле адресов какой-то адрес (если не было резервации до этого для данного mac-адреса клиента) и выделяет этот ip клиенту на какое-то время (lease time). Берутся другие настройки и всё вместе высылается. При этом в качестве адресов получателя используется уже новый выделенный клиентский ip и клиентский mac. Это называется «DHCP offer».
  3. Клиент выбирает понравившийся ему сервер (обычно он всего один) либо выбирается тот кто ответил первым. И отправляет со своего mac и нового ip на mac и ip уже конкретного сервера «DHCP request» – согласие с полученными параметрами.
  4. Сервер резервирует за клиентом выделенный адрес на какое-то время (lease time). До этого момента адрес был выделен, но не зарезервирован. Теперь же он окончательно закреплён за клиентом. Сервер вносит так же строчку в свою ARP таблицу и высылает клиенту, сообщение, что он успешно зарегистрирован – «DCHP Acknowledge».
  5. Клиент начинает работать.

Давайте перейдём к настройке DHCP на маршрутизаторе. Есть одна странная, на первый взгляд вещь, на цисках DHCP как бы не привязан к конкретному интерфейсу, то есть просто создаётся пул и маршрутизатор раздаёт адреса где хочет. На самом деле, адреса раздаются не всем, а только на том интерфейсе, на котором Ip адрес из той же сети, что упоминается в пуле: действительно, какой смысл выдавать компьютеру адрес шлюза, который находится не в его сети.

DHCP сервер на cisco - топология

Настроим маршрутизатор, который будет выдавать по DHCP сеть 192.168.1.0/24 начиная с 192.168.1.11.

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10

Мы просим маршрутизатор не выдавать адреса с 192.168.1.1 по 192.168.1.10. Так как первый адрес будет использоваться самим маршрутизатором (шлюз), а остальные девять имеет смысл зарезервировать под различные сервера в этой сети. Серверам не стоит выдавать адреса по DHCP – к ним часто обращаются, поэтому адрес должен быть вбит статически и никогда не меняться. В нашем примере, например, присутствует DNS сервер с адресом 192.168.1.5, который вбит статикой. Теперь создаём пул:

R1(config)#ip dhcp pool MY-POOL
R1(dhcp-config)#network 192.168.1.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.1.1
R1(dhcp-config)#domain-name my-domain.com
R1(dhcp-config)#dns-server 192.168.1.5
R1(dhcp-config)#exit

Выдаваться адреса будут из сети 192.168.1.0/24 (кроме тех что мы исключили ранее), в качестве шлюза будем выдавать 192.168.1.1 – наш маршрутизатор. Сам этот адрес надо ещё настроить:

R1(config)#interface fa0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown 
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1(config-if)#exit
R1(config)#exit
R1#
%SYS-5-CONFIG_I: Configured from console by console

После того, как компьютер получил адрес, можно проверить список выданных адресов:

R1#show ip dhcp binding 
IP address       Client-ID/              Lease expiration        Type
                 Hardware address
192.168.1.11     000A.F337.2447           --                     Automatic

К статье прилагаю пример данной конфигурации в Packet Tracer: DHCP сервер на cisco.