Dynamic Host Configuration Protocol (DHCP)
- BOOTP протокол, позволяющий бездисковым клиентам
во время старта конфигурировать установки TCP/IP.
- DHCP – расширение BOOTP.
- Каждый раз при запуске DHCP клиента он
запрашивает информацию у DHCP сервера. Информация
включает в себя обязательным образом IP адрес и
маску подсети, дополнительно может передаваться
адрес default gateway и адреса WINS и DNS серверов.
- Если пул адресов DHCP сервера весь распределен на
момент подачи запроса клиента, то клиент не
сможен инициализировать TCP/IP.
Недостатки ручной конфигурации TCP/IP
- Неправильный набор IP адреса, маски подсети и
default gateway может привести к большим проблемам (сам
знаю - это действительно так).
- При перемещении компьютера из одной подсетки в
другую требуется переконфигурить установки TCP/IP.
Процесс конфигурирования DHCP клиента
| При запуске клиента запускается
урезанная версия TCP/IP и широковещательным
сообщением посылается запрос об адресе DHCP
сервера (DHCPDISCOVER message). Клиент использует 0.0.0.0 как
исходный адрес в сообщении и 255.255.255.255 как адрес
назначения. В запросе также указывается MAC адрес
и имя клиента. Процесс выделения IP адреса
происходит в следующих случаях:
- TCP/IP инициализируется при запуске клиента
- Клиент запросил конкретный IP адрес, но он уже
занят
- Клиент уже получил IP адрес, но освободил его и
требуется выделение нового адреса.
|
Все DHCP сервера, получившие
запрос, отвечают на него, посылая клиенту
следующую информацию:
- MAC адрес клиента
- Предложенный IP адрес
- Маска подсети
- Время жизни предлагаемого IP адреса
- Собственный IP адрес
|
| Клиент принимает первый
поступивший ответ от DHCP сервера и посылает в сеть
широковещательное сообщение (DHCPREQUEST), в
котором сообщает, что принимает поступивший IP
адрес (сообщение также содержит IP адрес сервера,
предложение которого принято). Клиент ждет
предложения IP адреса 1 секунду. Если ни один DHCP
сервер не ответил, то клиент повторяет запрос с
интервалом 9, 13 и 16 секундный интервал плюс
случайное значение в пределах от 0 до 1000
миллисекунд. Если ответ все равно не получен,
клиент возобновляет попутки через 5 минут. |
| DHCP сервер, предложение которого
принято, подтверждает выделение IP адреса
сообщением (DHCPACK). Это сообщение помимо
подтверждения собержит иногда другую
дополнительную информацию, такую как адреса WINS и
DNS серверов и др. Клиент запоминает полученную
информацию в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\adapter\Parameters\Tcpip |
Процесс обновления IP адреса
| DHCP клиент пытается обновить
выделенный IP адрес по истечении половины времени
его жизни. Для этого посылается DHCPDISCOVER сообщение
непосредственно на DHCP сервер. Если сервер
доступен, то он посылает клиенту DHCPACK сообщение с
новым временем жизни IP адреса и другими
конфигурационными параметрами.
Если сервер недоступен, то клиент повторяет
попытки до истечения оставшейся половины срока
жизни IP адреса.
Если клиент был перезагружен, то он посылает
DHCPREQUEST сообщение с просьбой выделить ему свой
старый IP адрес. В случае неудачи или ошибки
клиент продолжает использовать старый IP адрес. |
| Если неудалось обновить IP адрес
на выделившем его DHCP сервере, клиент пытается
связаться с другими DHCP серверами по истечении 87.5%
времени жизни IP адреса. Он посылает
широковещательное сообщение DHCPREQUEST. Любой DHCP
сервер может ответить DHCPACK сообщением
(подтверждение обновления IP адреса) или DHCPNACK
сообщением (инициирует переинициализацию
клиента для получения нового IP адреса) По
истечении срока жизни IP адреса и невозможности
его обновить связь по TCP/IP прерывается до
получения клиентом нового IP адреса. |
Дополнительные полезные рассуждения
Перед установкой DHCP сервера ответьте себе на
следующие вопросы:
- Будут ли все компьютеры в сети DHCP клиентами ?
Если нет, то:
- Эти компьютеры будут иметь статические IP адреса
- Статические адреса должны быть исключены из
конфигурации DHCP сервера
- Если клиент требует определенного адреса, то
этот адрес должен быть зарезервирован
- Будет ли DHCP сервер обслуживать несколько
подсетей? Если так, то:
- Все маршрутизаторы, соединяющие подсети должны
быть BOOTP совместимыми, иначе придется ставить DHCP
сервера в каждой подсетке, в которой есть DHCP
клиенты.
- Сколько DHCP серверов требуется в сети?
- DHCP сервера не обмениваются между собой
информацией. Поэтому необходимо, чтобы области IP
адресов на каждом DHCP сервере не пересекались.
Применение нескольких DHCP серверов
Если ваша сеть требует наличия нескольких DHCP
сереров, то необходимо для каждой подсети
создать уникальный набор IP адресов, которые
будут выдаваться клиентам DHCP в данной подсети.
Желательно иметь несколько непересекающихся
наборов адресов для каждой подсети,
распределенных по всем DHCP серверам.
- Каждый DHCP сервер должен содержать набор,
имеющий порядка 75% адресов данной подсети.
- Каждый DHCP сервер должен содержать наборы
адресов каждой удаленной подсети, содержащие
приблизительно 25% от имеющихся в них адресов.
Это нужно для того, чтобы клиент мог получить
требуемый адрес даже если DHCP сервер в его
собственной подсети недоступен.
Требования к конфигурации DHCP
| Все маршрутизаторы должны быть
совместимы с RFC1542, то есть быть BOOTP совместимыми. |
- DHCP ставится как минимум на один NT сервер (не
ставится на Workstation)
- Сервер DHCP должен иметь статический IP адрес
- Каждый DHCP сервер должен иметь набор IP адресов,
для выдачи их клиентам.
|
- Windows Windows NT Server or Workstation 4.0.
- Windows 95.
- Windows for Workgroups 3.11 running Microsoft TCP/IP-32.
- Microsoft Network Client 3.0 for MS-DOS with real-mode TCP/IP driver.
- LAN Manager 2.2c (LAN Manager 2.2c for OS/2 not supported).
|
|