четверг, июня 20, 2013

Конфигурация DHCP сервера на маршрутизаторах фирмы Cisco

Привет, привет! Вспомнил я тут вдруг, что мы с вами разбирали настройку DHCP сервера в различных ОС, но как то совсем упустили процесс настройки DHCP на маршрутизаторах и коммутаторах фирмы Cisco. Вот сегодня об этом и поговорим.

Как обычно процесс настройки мы рассмотрим на примере. Сразу хочется отметить, что пример данной статьи выполнялся и проверялся на работоспособность в Cisco Packet Tracer 5.3.3.0019, работоспособность данного примера на реальном оборудование будет зависеть от поддержки функций DHCP сервера используемой вами версии Cisco IOS (Например однажды ко мне в руки попал старенький маршрутизатор,  серии Cisco 1600,  с древней версией Cisco IOS порядка 11 который не имел поддержки функций DHCP сервера, хотя уже мог выступать в качестве клиента DHCP).
Сеть с DHCP сервером
Тестовая сеть, в качестве DHCP сервера Cisco 2811
И так начнем. Произведем предварительную настройку тестовой сети, выполнив следующие команды на маршрутизаторе:

  Router(config)#interface fastEthernet 0/0
  Router(config-if)#ip address 192.168.1.1 255.255.255.0
  Router(config-if)#no shutdown

Коммутатор в данной сети можно не конфигурировать, так как в данной сети он «только для галочки». А вот хост, подключенный к коммутатору, придется настроить в соответствии с рисунками:
Получать DNS по DHCP
Указываем что адрес DNS сервера и шлюза нужно получать от DHCP сервера
получать ip по dhcp
Указываем что IP адрес так же нужно получать от DHCP сервера
С помощью настроек представленных на рисунке мы указываем хосту, что он должен получать IP адрес версии 4, адрес основного шлюза и адрес DNS сервера от DHCP сервера. 

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

  Router(config)#ip dhcp pool TEST
  Router(dhcp-config)#network 192.168.1.0 255.255.255.0
  Router(dhcp-config)#default-router 192.168.1.1
  Router(dhcp-config)#dns-server 8.8.8.8
  Router(dhcp-config)#exit
  Router(config)#ip dhcp excluded-address 192.168.1.100
  Router(config)#ip dhcp excluded-address 192.168.1.1

Здесь с помощью первой команды мы создаем пул IP адресов для DHCP сервера. В качестве названия данного пула в данном случае выбрано имя TEST, для своего пула вы можете выбрать любое другое удобное вам имя.С помощью второй команды мы указываем из какой сети мы будем раздавать IP адреса, первый параметр этой команды задает адрес данной сети, а второй параметр ее маску. Третьей командой мы указываем адрес основного шлюза, который будет рассылать в сообщениях DHCP. В четвертой команде мы указываем адрес DNS сервера, который так же будет рассылаться хостам в сообщениях DHCP. Так же в данном примере показывается, что с помощью команды ip dhcp excluded-address можно исключить некоторые ip адреса из описанных выше DHCP пулов, то есть ни один из хостов нашей сети никогда не получит от DHCP сервера адрес, указанный в параметре команды ip dhcp excluded-address.




Далее проверим работоспособность нашего DHCP сервера. Для этого перейдем на хост и выполним на нем команду ipconfig /all.
Хост получил IP адрес от DHCP сервера
Хост получил IP адрес от DHCP сервера
Как легко заметить из рисунка, хост успешно получил IP адрес и все дополнительные параметры (адрес шлюза и адрес DNS сервера) от DHCP сервера.

Как вы наверное помните когда мы рассматривали процесс конфигурирования DHCP сервера под различными ОС, мы говорили о возможности резервирования ряда IP адресов за хостами с определенными MAC адресами, спешу вас обрадовать устройства фирмы Cisco не лишены такой возможности. Опять же рассмотрим ее на примере. Пусть мы хотим чтобы наш хост с MAC адресом 0001.6305.94E2 (Рисунок выше) всегда получал от DHCP сервера именно адрес 192.168.1.77. Что для этого необходимо сделать? Все очень просто для реализации данного функционала необходимо добавить к конфигурации DHCP сервера следующие строки:

  Router(config) #ip dhcp pool my_best_host
  Router(dhcp-config)#host 192.168.1.77 255.255.255.0 
  Router(dhcp-config)# сlient-identifier 0100.0163.0594.E2


Тут с помощью первой команды мы создаем отдельный DHCP пул только для одного адреса. С помощью второй команды указываем какой адрес необходимо выдавать в данном пуле. А с помощью третьей команды указываем MAC адрес компьютера который должен получить IP адрес из данного пола. Но тут есть один нюансик, в команде сlient-identifier указывается не MAC адрес устройства, а именно идентификатор клиента. Обычно идентификатор клиента можно получить из MAC адреса путем добавления впереди него 00 или же 01 и приведя его к виду указанному в команде. Но иногда такой способ не срабатывает (например, при работе в GNS3 идентификатор интерфейса маршрутизатора, работающего в качестве клиента DHCP, имея MAC адрес c001.122c.0000 имел идентификатор клиента 0063.6973.636f.2d63.3030.302e.3132.3263.2e30.3030.302d.4661.302f.30), но не стоит волноваться отловить идентификатор подключаемого клиента на DHCP сервере можно с помощью команды debug ip dhcp server packet – данный отладчик отобразит реальный идентификатор клиента, в тот момент когда он отправит запрос к вашему DHCP серверу.

К сожалению, работу данного примера не получится проверить в Packet Tracer, так как он не поддерживает команды host и сlient-identifier в режиме конфигурирования DHCP пула, но вы можете легко проверить их в GNS3 или же на реальном устройстве.

Ну и в заключение этой статьи еще разберем как сконфигурировать интерфейс маршрутизатора фирмы Cisco в качестве DHCP клиента. Делается это очень просто:

  Router(config) #interface FastEthernet0/0
  Router (config-if)# ip dhcp client hostname 777
  Router (config-if)# ip address dhcp

Если вы сконфигуририруете интерфейс вашего маршрутизатора как показано в примере выше, то при включении этого интерфейса он будет обращаться к DHCP серверу с запросом о получение IP адреса и дополнительных параметров.


На сегодня это все. До новых встреч.

14 коммент.:

Рад что вам пригодилось!

А как же настраивается момент - на каком интерфейсе запущен DHCP сервер? А если несколько пулов? А как приостановить раздачу, без удаления конфига?

Спасибо за наводящие вопросы:

Второй и последующие пулы создаются таким же образом как и первый, но имеют другие диапазоны раздаваемых адресов и другие имена. Соответствие между пулом IP адресов и интерфейсом задается с помощью команды network, используемой в при конфигурации пула. Тот интерфейс маршрутизатора, IP адрес которого попадает в диапазон адресов указанных в команде network и будит является рабочим для данного пула.

Например у нас есть следующая конфигурация:
ip dhcp pool 1
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
ip dhcp pool 2
network 172.20.20.0 255.255.255.0
default-router 172.20.20.1
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
interface FastEthernet0/1
ip address 172.20.20.1 255.255.255.0

Адрес заданный на интерфейсе Fast0/0 попадает в диапазон пула 1, а значит адреса из сети 192.168.1.0/24 будут раздаваться именно через данный интерфейс.Аналогичная ситуация с интерфейсом fast0/1 и пулом 2.

Временно приостановить действие DHCP сервера можно с помощью команды no service dhcp. Данная команда полностью приостанавливает действие DHCP сервера на маршрутизаторе до введения команды service dhcp. При этом останавливается работа всех пулов.

Если я где то не прав, то жду ваших замечаний.

Егор, почти через год укажу на неточность в вашей конфигурации:) У сети 172.20.20.0 должна быть маска 255.255.0.0 т.к. это сеть класса B. С маской 255.255.255.0 работать не будет.

Как это не будет, все прекрасно будет. Просто это уже без классовая адресация.

А как быть если порт маршрутизатора настроен на разные vlan и разные подсети? Как настроить DHCP чтоб и маршрутизация между VLAN была, и раздача разных пулов на разные вланы?
Например:
interface Fa0/0
no ip address
duplex auto
speed auto
!
interface Fa0/0.10
encapsulation dot1Q 10
ip address 192.168.0.100 255.255.255.0
!
interface Fa0/0.20
encapsulation dot1Q 20
ip address 10.111.0.100 255.255.255.0

а как сделать на сервере
в cisco

Router(config)#int fa0/1 интерфейс с которого будут запрашивать адреса
Router(config-if)#ip helper-address 192.168.13.10 сервак. естественно должен быть доступен

Егор, спасибо, за Ваш прекрасный сайт! Вроде и не дурак, а иногда заступоришься на чем-нибудь и не понимаешь как решить задачу. Не хватает хорошего наставника просто, кто мог бы объяснить и показать на примере.

Re:

Приветствую, Егор! Возможно не в тему, но не знаю как связаться с тобой.
Прошу дать консультацию по моему проекту, а если он тебя заинтересует
то в частной переписке можно обсудить твое участие в нем.
Данный проект существует на уровне идеи, для меня не все понятно с точки зрения железа и ПО.
Идея проекта:
1. Имеется 48(36,24) датчика, каждый датчик имеет свой канал и IP(Ethernet), вся информации с каждого датчика подается на оборудование (роутер, маршрутизатор, и т.д. ?) управляется каждый датчик с сервера в 3-х плоскостях(X-Y-Z).
2. Вся информация от датчиков (и с сервера на датчики) передается по оптоволокну.
3. Оборудование (роутер, маршрутизатор, и т.д.) имеет 48(36,24) независимых каналов
(возможность программное конфигурировать каналы и IP адреса датчиков ).
Предусматриваются пропускная способность канала (исходя из 48 каналов-входящих):
24 канала-1Гбит/с RS-45,
16 каналов- 10 Гбит/с (оптика),
6 каналов-20 Гбит/с (оптика),
2 каналов(резервируется)- 20 Гбит/с (оптика), (оптика).
Пропускная способность каждого канала(программируется) до 10Гбит/с(RJ-45) и
20 Гбит/с (оптика).
Выходных каналов-4(оптика), 2(1)-канала для подключения к серверу,
1-канал к другому оборудованию, 1-канал резервный, пропускная способность каждого канал такова, что без перегрузки передает весь поток входящей информации (48 каналов).
4. Вся информация с оборудования поступает на Сервер где происходит:
1.Хранение на жесткие диски.
2.Передача информации на рабочие станции (от 5 до 10 машин).
3.Каждая рабочая станция работает с выделенными(программно) каналами ( от 2-10 каналов) и в реальном времени анализирует(разработанное ПО), сохраняет информацию на индивидуальных жестких дисках.
5. Рабочая станция соединена с мониторами( 1-3 шт), через джойстик происходит управление датчиками(по осям X-Y-Z), перенастройкой датчиков в том числе их калибровкой и т.д.
6.С чего надо начинать и как это реализовать в железе и как разработать нужное ПО ?


ПО рабочей станции (возможно нужно разрабатывать) и рабочий стол чем-то похож на
«многоканальную запись звука»-дизайн-картинка имеется.
Назначение данной локальной сети, назначение датчиков и в каком спектре электромагнитных волн они работаю и т.д. это все в переписке.
Вот такая «выкрученная идея».

С уважением, Александр.


А как быть если порт маршрутизатора настроен на разные vlan и разные подсети? Как настроить DHCP чтоб и маршрутизация между VLAN была, и раздача разных пулов на разные вланы?
Например:
interface Fa0/0
no ip address
duplex auto
speed auto
!
interface Fa0/0.10
encapsulation dot1Q 10
ip address 192.168.0.100 255.255.255.0
!
interface Fa0/0.20
encapsulation dot1Q 20
ip address 10.111.0.100 255.255.255.0

"А как быть если порт маршрутизатора настроен на разные vlan и разные подсети? Как настроить DHCP чтоб и маршрутизация между VLAN была, и раздача разных пулов на разные вланы?"

Добрый день. Готовлю статью вам в ответ. Скоро опубликую.

Добрый день. Ответ на Ваш вопрос в статье по ссылке:
http://www.netza.ru/2016/03/dhcp-vlan.html

Отправить комментарий