DHCP всемогущий…

Мы уверены, что ты не раз сталкивался с технологией DHCP. Если спросить у любого хоть немного технически грамотного человека, что это за технология, каждый ответит что-то вроде «динамическая раздача ip адресов». Ты скажешь «Не только адресов! Еще раздается маска подсети, а также шлюз по умолчанию». А что еще?..
В данной статье мы рассмотрим настройку DHCP сервера на оборудовании Cisco (будем использовать маршрутизатор cisco 2851) и узнаем, что еще умеет DHCP.


Итак, DHCP – «клиент-серверный» протокол сетевого уровня. Данный протокол пришел на смену устаревшему протоколу BOOTP. Главной целью протокола является упрощение жизни всем сетевым администраторам. Настроить сервер один раз гораздо легче и интереснее, чем 150 раз сетевые карточки клиентов.
Протокол DHCP описан в RFC 2131. Версия DHCPv6 в RFC 3315. Алгоритм работы протокола такой:
• Узел в сети посылает бродкастовый пакет DHCPDISCOVER, чтобы обнаружить доступный DHCP сервер.
• Сервер отвечает пакетом-предложением DHCPOFFER, в котором отправляет IP адрес, а также дополнительные опции.
• Клиент принимает данную конфигурацию и вновь высылает широковещательный пакет DHCPREQUEST, который является запросом к серверу.
• Наконец сервер отправляет пакет-подтверждение DHCPACK. Клиент принимает параметры сервера и производит настройку.
Более подробную информацию о взаимодействии клиента и сервера можно легко найти в Интернете. К примеру, существуют другие типы пакетов (отказ, отмена и т.д). Существуют схемы, когда клиенты находятся за пределами физической локальной сети. Для этого используются DHCP-ретрансляторы. Есть схемы, в которых одновременно работают несколько DHCP серверов. И еще много других примеров. Поэтому читай дополнительную литературу и не забывай использовать снифферы, чтобы опытным путем увидеть работу DHCP протокола.
Мы же подробнее остановимся на вышесказанных DHCP параметрах и ответим на вопрос в начале статьи «что еще умеет DHCP?».
Параметры, они же опции, описаны в соседнем RFC 2132. Полный список опций ты можешь найти на сайте http://www.networksorcery.com/enp/protocol/bootp/options.htm. Их количество равно 255: адреса NTP, SMTP и POP3 серверов, размер и тип DHCP пакета, имя домена и даже размер MTU на интерфейсе, который принимает параметры. Мы рассмотрим некоторые из них и осуществим их настройку.

Соберем небольшую схему и настроим на маршрутизаторе DHCP сервер.

dhcp-1

R1#sh run…
!
ip dhcp pool Pool_for_Study
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
dns-server 192.168.1.2 192.168.1.3 8.8.8.8 8.8.4.4
domain-name TestDomain.com
!

Команды:
network – объявляем адрес сети и маску
default-router – шлюз по умолчанию
dns-server – адрес DNS серверов. Заметь, их может быть несколько
domain-name – название домена

Это стандартная настройка Пула. Давай добавим в нашу сеть Cisco IP Phone 7940. Это обычный IP телефон, работающий по проприетарному протоколу Skinny или по протоколу SIP, если данный телефон перепрошить. Чтобы телефон заработал, ему также как компьютеру необходим ip адрес, маска, шлюз. А также дополнительные настройки: адреса CallManager, TFTP серверов, с которых телефон качает прошивку, настройки (номер, телефонную книгу, ring type, локацию, время и прочее).
dhcp-2
Проведем дополнительную настройку:

R1#sh run…
!
ip dhcp pool Pool_for_Study
network 192.168.1.0 255.255.255.0
default-router 192.168.1. 1
dns-server 192.168.1.2 192.168.1.3 8.8.8.8 8.8.4.4
domain-name TestDomain.com
option 150 ip 192.168.1.10 192.168.1.11
!

option 150 – опция, отвечающая за адреса TFTP серверов.

Добавим в нашу сеть компьютер, который по каким-то причинам не должен менять свой IP адрес. Зарезервируем IP для МАС адреса данного ПК. Создадим для него отдельный пул:

R1#sh run…
!
ip dhcp pool Pool_for_PC123
host 192.168.1.123 255.255.255.0
client-identifier 0154.04a6.6d1c.28
client-name Workstation_123
default-router 192.168.1.1
dns-server 192.168.1.2 192.168.1.3 8.8.8.8 8.8.4.4
!

Команды:
host 192.168.1.123 255.255.255.0 – определяем ip адрес и маску для ПК
client-identifier 0154.04a6.6d1c.28 – МАС адрес клиента в формате:
01 перед МАС 54:04:a6:6d:1c:28 определяет среду Ethernet. Обрати внимание, как правильно расставляются точки в команде.
*вместо команды client-identifier используется команда hardware-address 0154.04a6.6d1c.28 в том случае, если клиент посылает BOOTP запросы (например, принтеры или некоторые Unix системы)

А теперь я смело заявляю, что с помощью DHCP можно раздавать статические маршруты. Представь себе, что можно вмешаться в таблицу маршрутизации клиента. Ранее для этого использовалась опция №33 Static Route Table, а сейчас № 121 Classless Routing Option для Unix систем и №249 для Windows.

Давай рассмотрим схему сети, чтобы разобраться на примере.

dhcp-3
Условие:
Маршрутизатор R1. Знает о сетях 192.168.1.0/24, 10.70.0.0/24, 172.16.0.0/12
Коммутатор с настроенными Vlan
Proxy-server + NAT. Сервер выполняет функцию NAT, т.к. предоставляет доступ в сеть Интернет. Также является Proxy сервером, осуществляя контроль и ограничение доступа каждого пользователя. Функцией маршрутизацией устройство не обладает.

Задача:
Трафик в сеть Интернет от рабочих мест должен проходить через Server. Клиенты из сети 192.168.1.0/24 должны иметь доступ к сетям 10.70.0.0/24 и 172.16.0.0/12.

Решение:
Создать на маршрутизаторе DHCP пул:

!
ip dhcp pool Pool_for_Study
network 192.168.1.0 255.255.255.0
default-router 192.168.1.2
dns-server 8.8.8.8 8.8.4.4
option 249 hex 180a.4600.c0a8.0101.0cac.10c0.a801.01
option 121 hex 180a.4600.c0a8.0101.0cac.10c0.a801.01
!

default-router 192.168.1.2 – шлюз по умолчанию Server, весь трафик направляем через Proxy
option 249 hex 180a.4600.c0a8.0101.0cac.10c0.a801.01
option 121 hex 180a.4600.c0a8.0101.0cac.10c0.a801.01 – статические маршруты, с помощью которых трафик в сети 10.70.0.0/24 и 172.16.0.0/12 направляем через маршрутизатор.

Как ты, наверное, успел заметить, мы используем команды с опциями 249 и 121. Эта опция содержит один или несколько статических маршрутов, каждый из которых содержит дескриптор получателя (destination descriptor), а также IP адрес маршрутизатора, через который можно достичь получателя.
Destination descriptor описывает префикс сети и сеть получателя в компактной форме. Разберемся, как записывается дексриптор. Сначала необходимо определить, сколько октетов будет содержать адрес сети по простому правилу:

Width of subnet mask         Number of significant octets
1- 8                                                 1
9-16                                                 2
17-24                                               3
25-32                                               4

Ниже наглядная таблица с примерами, которая объясняет формирование destination descriptor.

Subnet number                           Subnet mask                           Destination descriptor
0                                                 0                                            0
10.0.0.0                                       255.0.0.0                                8.10
10.0.0.0                                       255.255.255.0                         24.10.0.0
10.17.0.0                                     255.255.0.0                             16.10.17
10.27.129.0                                  255.255.255.0                         24.10.27.129
10.229.0.128                                255.255.255.128                      25.10.229.0.128
10.198.122.47                              255.255.255.255                      32.10.198.122.47

Разберем, как мы сформировали команду:

option 249 hex 180a.4600.c0a8.0101.0cac.10c0.a801.01

Записываем дескрипторы по вышеуказанным правилам:

10.70.0.0/24 24.10.70.0
172.16.0.0/12 12.172.16

IP адрес шлюза, через который можно достигнуть нужных сетей – 192.168.1.1

Записываем всё в одну строчку по правилу:

куда через что куда через что
24.10.70.0 192.168.1.1 12.172.16 192.168.1.1

Далее, согласно RFC 3442, необходимо перевести числа в шестнадцатеричную систему , т.е. формат HEX:

24 – 18
10 – 0А
70 – 46

И так далее.. В итоге получаем:

180a.4600.c0a8.0101.0cac.10c0.a801.01

Точки ставятся через каждые 4 символа слева направо.
Маршруты (их количество ограничивается только размером пакета) записываются друг за другом.
Когда клиент получит всю информацию по DHCP, его маршрутная таблица изменится. Результатом вышеописанного примера будет такая картинка:

dhcp-4

Как видим, дефолтный маршрут направлен через сервер (192.168.1.2), а трафик в другие сети (10.70.0.0/24 и 172.16.0.0) через маршрутизатор (192.168.1.1).
Можно согласиться с тем, что данная схема сети нетипичная, но о приеме, используемым в ней, знать необходимо. Для безопасности. Данным методом могут воспользоваться злоумышленники. В частности, хорошо известный тебе man-in-the-middle может перенаправить трафик в твоей сети.

Напоследок, хотелось бы обратить твое внимание на несколько полезных на практике команд, связанных с DHCP:

show ip dhcp binging – информация о выданных в лизинг ip адресах
clear ip dhcp binding */ip address – очистить лизинг для одного или для всех ip адресов
ip dhcp excluded-address 192.168.1.0 192.168.1.10 (min – max) – исключаем ip адреса из dhcp пулов, чтобы они не присваивались клиентам.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hide me
Получать регулярно свежие материалы, лабораторные и вебинары
Email Имя
Show me