DHCP-server на Windows 2000 Advanced Server
7 апреля 2003
Рубрика: Интернет и сети.
Автор: Максим Зинченко.
pic

Чем же так примечателен Microsoft’овский DHCP-server для сетевых администраторов?! Это же очевидно! Администратор один раз настраивает DHCP-сервер достаточно прямыми руками и впоследствии спит всегда спокойно, а не бегает за машинами и думает: «Кому это там IP-адреса не хватает…»

В зависимости от размеров вашей Сети процедура назначения IP-адресом клиентским машинам в Сети может превратиться в довольно-таки утомительную процедуру. Но в сетях Microsoft Windows 2000 вы можете довольно успешно применить возможность динамически выдавать IP-адреса с помощью DHCP-сервера.
DHCP-сервер — полностью автоматизированный механизм, причем довольно разумный. Своим клиентам DHCP-сервер выдает IP-адреса во «временное пользование» — процесс, называемый еще «лизингом IP-адреса». Это нормальное явление, и назначение его в том, чтобы поддерживать динамически меняющуюся структуру Сети. Давайте рассмотрим все плюсы и минусы в применении DHCP и просто ручной установки IP-адресов в Сети.
Среди прочих прелестей жизни, приносимых DHCP-сервером, можно отметить следующие: кроме IP-адреса, вы можете выдавать своим клиентам в Сети еще и маску подсети, адрес(а) основного шлюза (Default Gateway), DNS и WINS-серверов, тип клиента WINS и многое другое.

I. Процесс выдачи IP-адреса

Весь процесс выдачи IP-адреса клиенту происходит в несколько стадий и может занимать от нескольких секунд до минуты-другой в очень больших сетях. То есть:
1. При старте машины или при инициализации сетевой службы клиентская машина посылает широковещательным запросом DHCPDiscover сообщение, которым ищет любой сервер, предоставляющий DHCP-сервис. При этом сообщение содержит:
• адрес источника в виде 0.0.0.0 (широковещательный адрес), поскольку клиент еще не имеет никаких TCP/IP-параметров
• адрес назначения (DHCP-сервер) в виде 255.255.255.255
• MAC-адрес своей сетевой карты
• имя компьютера — для того, чтобы DHCP мог определить отправителя.
2. На что DHCP-сервер отвечает своим DHCPOffer — т.е. предложением IP-адреса. В этом сообщении содержатся:
• MAC-адрес клиентской сетевой карты
• предлагаемый IP-адрес
• маска подсети
• срок лизинга IP-адреса
• DHCP id — идентификатор сервера в виде своего IP-адреса.

pic

При этом клиент ждет в течение 1 с, и если не получает ответа от сервера, то повторяет свой запрос 4 раза с интервалом в 2, 4, 8 и 16 с + случайное значение в промежутке от 0 до 1,000 мс.

Впоследствии в случае ненахождения DHCP-сервера клиент сам назначает себе IP-адрес из спецдиапазона APIPA (Autoconfiguring Private IP Adresses) — от 169.254.0.1 — до 169.254.255.254. В принципе, компьютеры в небольшой Сети могут использовать APIPA-конфигурацию, но только в том случае, когда им не надо выходить за пределы своей подсети, поскольку тут возникают проблемы с маршрутизаторами и gateway’ями. В обычной же Сети компьютеры, имеющие нормальные адреса своей Сети, могут при некоторых условиях видеть машины с APIPA-адресацией, в то время когда последние могут «видеть» только машины с такой же APIPA-адресацией, но не могут все остальные и не выходят через default gateway. В таком случае компьютер, не получивший нормального IP-адреса от DHCP, пытается «искать» его каждые 5 мин. После получения IP-адреса он, как вы сами, наверное, уже поняли, становится нормальным клиентом Сети.
3. После этого клиент посылает сообщение DHCPRequest о принятии выданного IP-адреса, в котором заключается DHCP id сервера, выдавшего ему IP-адрес. При этом все остальные DHCP-сервера отмечают, что этот клиент уже получил IP-адрес, и занимаются обслуживанием других клиентов.
4. Последним шагом становится сообщение DHCPAck, посылаемое DHCP-сервером широковещательным сообщением для подтверждения успешной процедуры выдачи IP-адреса. При получении данного сообщения клиент инициализирует полученные настройки и выставляет привязки к сетевым сервисам и адаптеру.

Все взаимоотношения между DHCP-сервером и клиентом происходят по портам 67 и 68 протокола UDP. Некоторые хабы или switch’и по умолчанию не пропускают широковещательные сообщения DHCP-сервера, поэтому вам придется либо специально конфигурировать их, либо прибегать к использованию дополнительных сервисов. О них несколько позже.

II. Обновление лизинга IP-адреса

Обновление лизинга IP-адреса — процедура довольно простая.
1. По истечении 50% общего времени лизинга клиенты пытаются обновить полученную информацию, посылая DHCPRequest напрямую на DHCP-сервер, выдавший им IP-адреса в прошлый раз.
2. Если DHCP-сервер доступен, он отвечает сообщением DHCPAck, содержащим новый срок лизинга и (если в скопе была внесена какая-либо новая информация) обновление данных, касающихся клиентов.

Если клиент не может связаться с DHCP-сервером, в это время он продолжает использовать прежние настройки, причем, когда проходит около 87,5% общего времени лизинга, клиент начинает периодически отсылать в Сеть широковещательные сообщения DHCPDiscover, и на этой стадии он может принять настройки IP-адресации от любого DHCP-сервера. Для этого требуется всего лишь DHCPOffer сообщение от любого другого DHCP-сервера.

В другом случае, если клиент по какой-то причине обладает некорректным или уже занятым IP-адресом, DHCP-сервер может при взаимодействии с клиентом отправить сообщение типа DHCPNak, запрещая использование подобного IP-адреса.
Впрочем, у администратора всегда существует возможность форсировать обновление или сброс / перерегистрацию этих настроек вручную командами:

• IPConfig /all — подробный просмотр всех параметров TCP/IP-конфигурации всех сетевых адаптеров
• IPConfig /release — сброс IP-конфигурации всех сетевых адаптеров
• IPConfig /renew — обновление IP-конфигурации всех сетевых адаптеров
• IPConfig /registerdns — обновление всех DHCP-лизингов и перерегистрация DNS-имени
• IPConfig /showclassid — отображение всех ID-классов DHCP
• IPConfig /showclassid — присвоение адаптеру определенного ID-класса DHCP.

III. Требования к DHCP-серверу
и его клиентам

Требования к DHCP-серверу:
• операционная система Windows 2000 серверного класса (Server/Advanced Server/Datacenter Server)
• статический IP-адрес сетевого адаптера, маска подсети, шлюз по умолчанию (если необходимо)
• установленный и сконфигурированный сервис-DHCP
• сконфигурированный скоп (диапазон) выдаваемых IP -адресов.
Требования к DHCP-клиенту:
• операционная система Windows 2000 Professional/Server/Advanced Server/Datacenter Server
• Windows XP Professional/Home Edition
• NT-Server/Workstation 3.51 и выше
• Windows Me/98/95/3.11 — 32bit TCP/IP
• MS Network Client 3.0 for MSDOS, MS Lan Manager 2.2c
• Не Microsoft’овские ОС — Unix, Linux, OS/2.

IV. Инсталляция и запуск
в работу DHCP-сервера

После установки статических IP-адреса, маски подсети и шлюза по умолчанию вы можете приступать к инсталляции DHCP:

1. В Control Panel дважды кликнете Add/Remove Programs.
2. Add/Remove Windows Components.
3. Находите Networking Components, выделяете и раскрываете кнопкой Details.
4. Помечаете “галочку” Dynamic Host Configuration Protocol (DHCP).
5. Кликнете OK и Next.

По завершении установки DHCP вы должны будете авторизовать DHCP-сервер. Авторизация происходит в Active Directory (т.е. подразумевается наличие AD в сетях среднего и крупного размеров, где присутствие DHCP является необходимым). Авторизация предотвращает возможность выдачи ложных или неправильных IP-адресов неавторизованными DHCP, установленными не администратором, а любыми другими лицами. Возможность авторизовать DHCP-сервер также предоставляется исключительно лицам, входящим в группу Enterprise Admins.

pic

Авторизация также необходима только если DHCP устанавливается на рядовой сервер домена, если же инсталляция происходит на контроллере домена, то ручная авторизация не требуется, т.к. она выполняется автоматически при установке. Защита авторизацией существует только в Windows 2000. Авторизованный DHCP-сервер при старте рассылает широковещательным адресом DHCPInform сообщение, оповещая все остальные DHCP-сервера, присутствующие в Сети. Те же, в свою очередь, отвечают сообщением DHCPAck о любом рутовом домене, опознанным каждым DHCP-сервером. Используя эту информацию, DHCP запускает основную службу и обращается к AD каждого домена, который он распознал, и запрашивает список всех авторизованных DHCP-серверов. После этого главный DHCP-сервис считается успешно запущенным и начинает обслуживать клиентов. Неавторизованный DHCP-сервер в этом случае записывает ошибку в System.log в Event Viewer и игнорирует в дальнейшем все клиентские запросы.

Для того чтобы авторизовать DHCP-сервер, администратор должен выполнить следующее:
1. В Administrative Tools открыть DHCP.
2. В древе консоли щелкнуть правой клавишей мыши DHCP и выбрать Manage Authorized Servers.
3. В окне Manage Authorized Servers отобразится список уже авторизованных ранее DHCP-серверов. Нажать Authorize.
4. В открывшемся диалоговом окне указать DNS-имя или IP-адрес авторизуемого сервера, OK.
5. В следующем диалоговом окне DHCP подтвердить процесс авторизации кнопкой Yes.

pic

Как уже было сказано ранее, среди прочих требований к DHCP-серверу был сконфигурированный скоп выдаваемых IP-адресов. Скоп (DHCP Scope) — это диапазон IP-адресов, предназначенный для выдачи клиентам Сети с этого DHCP-сервера. Скопов на DHCP-сервере может быть несколько, и каждый скоп имеет параметры, дополнительные опции и резервации.

V. Scope Parameters

Среди параметров (Scope Parameters) вы еще при создании должны будете указать следующие:
a. Name — название скопа,
b. Description — описание диапазона,
c. Start IP address / End IP address — начальный и конечный IP-адреса пределов скопа,
d. Length or Subnet Mask* — маску подсети или побитовое значение CIDR для идентификатора Сети,
e. Lease Duration — время лизинга IP-адресов. По умолчанию — 7 дней
f. Exclusion Address Range — исключаемые субдиапазоны, в пределах которых IP-адреса выдаваться не будут (опционально).
* После создания скопа возможность изменения маски подсети исключается, и для изменения этой информации возможно только удаление этого скопа.

pic
pic
pic

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

Увеличение Lease Duration снизит общую нагрузку на Сеть из-за более редких обращений клиентов к DHCP-серверу. Возможно это в тех сетях, где компьютеры редко перемещаются между различными подсетями и не требуется довольно часто обновлять существующие лизинги IP-адресов.

Наконец, существует возможность установить неограниченный Lease Duration, когда клиенты могут генерировать сетевой трафик только при старте и использовать тот же самый IP-адрес продолжительное время. Здесь тоже есть обратная сторона медали, она такова, что если в Сеть периодически добавляются новые клиентские компьютеры, это приводит к исчерпанию лимитов скопа, и такие компьютеры, возможно, в течение продолжительного времени не смогут получить IP-адреса, пока какой-либо из старых клиентов не освободит IP-адрес, выйдя из Сети, или администратор не расширит существующий скоп.
После подобных настроек скоп необходимо включить в работу путем активизации. Для этого необходимо кликнуть готовый скоп правой клавишей мыши и выбрать опцию Activate.

VI. Scope Options

DHCP имеет возможность распространять среди своих клиентов не только просто IP-адрес, но и довольно много другой полезной информации.

Scope Options прописываются так:
1. В древе DHCP найти и развернуть ветвь Scope.
2. Правой клавишей кликнуть Scope Options и выбрать Configure Options.
3. В Scope Options на вкладке General указать любую необходимую опцию.
4. Ниже, в поле Data Entry, указать нужную конфигурационную информацию.

Ниже перечислены некоторые из наиболее часто применяемых опций. На самом деле их значительно больше, вы можете увидеть их самостоятельно.
• 003 Router — шлюз по умолчанию
• 004 Time Server — сервер синхронизации сетевого времени
• 006 DNS Server — имя и адрес DNS-сервера
• 015 DNS Domain Name — DNS FQDN — имя домена
• 023 Default IP Time-To-Live — IP TTL по умолчанию
• 031 Perform router discovery — выполнять поиск маршрутизаторов
• 033 Static Route — список статических маршрутов, помещаемый клиентами в свои routing cash
• 037 TCP default TTL — TCP TTL по умолчанию
• 040 NIS Domain Name — имя домена NIS
• 041 NIS Servers — Network Information Server (NIS) серверы
• 044 WINS/NBNS Servers — WINS сервера
• 046 WINS/NBT node type — присвоение одного из 4 типов клиентов WINS
• 047 NetBIOS Scope ID — идентификатор скопа WINS.

В целом, охватывая возможности Microsoft DHCP-сервера, нельзя не отметить широкий диапазон настроек, которые Администратор может установить для своей Сети. Например, масштаб клиентских настроек можно условно разделить на 4 уровня настроек.

VII. Уровни настроек

I. Уровень сервера. Где настройки делаются в Server Options/Configure Options и имеют влияние на всех клиентов данного DHCP-сервера. Здесь уместны настройки единственного в Сети шлюза-по-умолчанию, например. То есть настройки единичные для всей Сети.
II. Уровень скопа. У вас может быть несколько скопов и каждый из них может содержать немного отличающиеся настройки. Например, в 2 скопах можно было бы чередовать одну из пары DNS-серверов в качестве Preferred DNS Server (Первый DNS), для того чтобы одни клиенты считали своим основным DNS-сервером первый, а другие в то же самое время чаще запрашивали бы второй DNS. Этим самым вы могли бы установить некоторое подобие балансировки нагрузки на те же самые DNS-серверы. Настройки уровня скопа производятся в Scope Options / Configure Options.
III. Классовый уровень. На классовом уровне DHCP-сервер умеет идентифицировать клиентов по типу их операционной системы или по типу оборудования, с которого обращается клиент.
IV. Уровень зарезервированных клиентов. То есть настройки определяются для каждого зарезервированного клиента индивидуально. Например, можно указать, что определенный клиент DHCP будет также снабжен специфическим роутом для доступа к ресурсам, расположенным в другом сегменте.

pic

Процесс резервации клиента происходит следующим образом:
1. В древе DHCP-сервера раскрыть скоп, предполагаемый для хранения определенной резервации.
2. Кликнуть правой клавишей мыши Reservations и указать New Reservation.
3. В окне New Reservation в полях:
• Reservation name — указать название резервации
• IP address — резервируемый IP-адрес
• MAC address — MAC-адрес сетевого адаптера клиента
• Description — описание
• Supported types — параметр, необходимый только RIS-клиентам, определяющий тип поддерживаемой клиентом сетевой прединсталляционной загрузки. Возможные варианты — «DHCP only» / «BOOTP only» / «Both».

VIII. Опции классов

Существуют две категории классов: Vendor-defined Class и User-defined Class.
Vendor-defined Class определяет клиентов по операционной системе. Воспринимаются различные операционные системы, созданные Microsoft, и не Microsoft’овские операционные системы также. Можно сконфигурировать различные настройки, выдаваемые клиентам Windows 98 и Windows 2000. При обращении к DHCP-серверу клиент автоматически предоставляет свой идентификатор. Так, например, Windows 2000 имеет VendorID «MSFT 5.0», Windows 98 — «MSFT 98». Пользуясь этим, можно запретить NetBIOS over TCP/IP для клиентов Windows 2000 и указать IP-адрес WINS сервера для клиентов Windows NT / 95.
User-defined Class идентифицирует клиентов по таким специфическим характеристикам, как dial-up соединение в Сеть, где происходит процесс выдачи IP-адреса или то, что клиент является портативным компьютером. Администратору необходимо создать и присвоить клиентам определенный класс, после чего клиент будет предоставлять его DHCP-серверу.

Для создания Vendor Class ID или User Class ID необходимо:
1. В древе консоли DHCP правой клавишей мыши кликнуть конфигурируемый DHCP-сервер и выбрать Define Vendor Classes или Define User Classes.
2. В открывшемся диалоговом окне нажать Add.
3. В окне New Class указать Имя, описание (опционально) и уникальный идентификатор класса.

pic

После создания подобного класса становится возможным присвоить ему определенные параметры. Опции эти будут рассылаться клиентам, предъявившим определенный ClassID.

IX. Superscope

Superscope — это логический контейнер, предназначенный для объединения двух или более отдельных скопов в единое оперативное целое. Скопы после включения в Superscope можно выносить из него и добавлять обратно без потери информации. После добавления 2-го скопа в Superscope DHCP выдает параметры IP-адресации клиентам из обоих скопов попеременно. Основное применение Superscope может понадобиться в достижении следующих целей:

• если планируется добавить в Сеть больше хостов, чем это предполагалось при создании скопа на DHCP
• при планировании перевода IP-адресации в Сети на другой уровень и диапазон
• если диапазоны IP-адресов не граничат непосредственно.
При объединении скопов в Superscope для DHCP-сервера стираются границы между скопами, и никто не может быть уверен, что клиент получит IP-адрес именно из какого-то одного скопа.

Создание Superscope происходит следующим образом:
1. В древе консоли DHCP правой клавишей кликнуть конфигурируемый DHCP-сервер и выбрать New Superscope.
2. Вписать имя Superscope, а также указать два или более скопа, которые будут входить в новый Superscope.

X. Multicast адреса и скопы

Иногда возникает необходимость использовать специальный тип IP-адресации, называемый многоадресный тип обращений по Сети. Подобная система может понадобиться, например, при проведении видеоконференции в режиме реального времени. Тут Администратор тоже вправе использовать DHCP-сервер для таких специфических задач. Необходима также поддержка клиентскими приложениями протокола MADCAP.

pic
pic

Итак, необходимо создать Multicast Scope:
1. В древе консоли DHCP правой клавишей кликнуть DHCP-сервер и указать New Multicast Scope.
2. Ввести имя скопа и его описание (опционально), Next.
3. В IP Address Range ввести начальный и конечный IP-адреса в диапазоне Multicast адресов, Next Диапазон Multicast адресов располагается в пределах от 224.0.0.0 — до 239.255.255.2.
4. Указать TTL, который представляет собой количество роутеров, по которым будет проходить Multicast трафик, Next.
5. В Add Exclusion Range указать исключаемые IP-адреса, если необходимо, Next.
6. В Lease Duration указать срок использования подобных IP-адресов из этого скопа.
7. Подтвердить Activate Multicast Scope кнопкой Yes и Next.
8. Finish.

XI. Возможности DHCP
в сегментированных сетях

Большие сети обычно сегментируются на подсети с помощью маршрутизаторов. Причем зачастую одной из функций роутеров может быть фильтрация широковещательных сообщений на границах сегментов с целью предотвращения возникновения излишнего сетевого шума и перегрузки трафика на маршрутах. Также следует рассматривать случаи, когда физический маршрутизатор является несовместимым со стандартом RFC-1542 о роутерах, форвардящих широковещательные запросы определенного типа.

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

Итак, как быть в этом случае? Как всегда, на выбор предоставляются несколько вариантов решения подобной проблемы:

• Одним из решений может являться установка собственного DHCP-сервера в каждый сегмент. Однако при ближайшем рассмотрении выявляются некоторые изъяны. Администратору придется тратить время и силы на установку и конфигурацию DHCP-сервера и скопов в каждом сегменте. Это требует выделения определенного компьютера Windows 2000 Server под DHCP. А существуют еще правила безопасности и отказоустойчивости, предписывающие наличие запасного сервера для подстраховки и частичной балансировки нагрузки на основной сервер. Что в итоге требует неимоверного количества ресурсов и никак себя не оправдывает, если только в этом примере Сеть не содержит 1.5 — 2 тысячи клиентов.

• Сконфигурировать RFC-1542 — совместимый роутер на форвардинг широковещательных запросов или заменить не отвечающий этим требованиям маршрутизатор на поддерживающий RFC-1542 стандарт. Вариант хороший, подобный роутер пропускает BOOTP и выборочно форвардит широковещательные запросы к DHCP, но все равно не все широковещательные сообщения. Да и операции с DHCP-сервером проходят довольно медленно.

• Возможно и еще одно решение — постановка DHCP Relay Agent в сегменты, имеющие проблемы с маршрутизацией широковещательных сообщений. Этот метод имеет несколько преимуществ перед всеми вышеуказанными. Конфигурирование удаленного Агента DHCP в целом значительно проще и быстрее, чем установка DHCP-сервера или конфигурирование роутеров, также отпадает необходимость форвардить весь широковещательный трафик в другие сегменты Сети, все ограничивается пределами сегмента. Использование DHCP Relay Agents в сегментах приводит к более эффективному и качественному обслуживанию клиентов DHCP-сервером, чем при использовании RFC-1542-совместимых роутеров. Существование DHCP Relay Agent также подразумевает известную степень отказоустойчивости среди DHCP-серверов.

XII. DHCP Relay Agent

Реализация сервиса удаленного Агента DHCP проходит следующим образом. DHCP Relay Agent резидентно в Сети отслеживает и принимает запросы от лица DHCP-сервера, чтобы затем перенаправить эти запросы на родительский DHCP-сервер, по конкретному адресу, указанному при установке. Он же получает ответные сообщения и передает их клиенту.

Установка и конфигурирование DHCP Relay Agent производятся по следующей схеме:
1. В Administrative Tools открыть консоль Routing and Remote Access.
2. Последовательно развернуть сервер и IP Routing.
3. Правой клавишей кликнуть General и выбрать New Routing Protocol.
4. Выбрать DHCP Relay Agent в списке проколов, OK.
5. В свойствах удаленного агента DHCP указать IP-адрес родительского DHCP-сервера (серверов) в поле Address.
6. Правой клавишей кликнуть DHCP Relay Agent и указать New Interface.
7. Выбрать сетевой интерфейс, OK.
8. В DHCP Relay Agent Properties на вкладке General удостовериться, что Relay DHCP packets помечено “галочкой”.
9. При необходимости сконфигурировать параметры Hop-count threshold* и Boot threshold (seconds)*. Кликнуть OK.
*Hop-count threshold определяет количество подсетей, через которые пакет должен будет пройти от DHCP Relay Agent до родительского DHCP-сервера.
*Boot threshold (seconds) указывает время в секундах, в течение которого DHCP Relay Agent будет ожидать ответ от DHCP-сервера. Если в локальной Сети имеется свой DHCP-сервер, это значение должно быть высоким, чтобы DHCP-сервер успел ответить, прежде чем DHCP Relay Agent обратится на другой, удаленный DHCP-сервер. Если при обычной конфигурации вы замечаете, что DHCP Relay Agent передает свои запросы на удаленный DHCP-сервер, а не на находящийся в локальной Сети, следует увеличить значение Boot threshold (seconds).

Вот такие возможности предоставляет Microsoft Windows 2000 DHCP-Server. Это не полное описание функциональных возможностей механизма DHCP. Хотите разбираться в них глубже — занимайтесь практическим, повседневным применением этой службы. Если возникнут какие-нибудь проблемы, пишите мне на e-mail: AdminX@yandex.ru

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте