Мы находимся в процессе миграции наших служб DHCP и DNS с сервера на базе Debian на реализацию Windows Server 2008 R2. На сервере Debian работает isc-dhcpd-V3.1.1. Все рабочие станции настроены так, чтобы иметь фиксированные адреса от 0,3 до 0,40 (мотивация этого выбора в основном управленческая / политическая, как и Вот). Аренда DHCP предоставляется в диапазоне от 0,100 до 0,175. Статически настроенные серверы находятся в блоке .200 и выше (который в основном пуст).
Когда мы переходим на платформу Windows, из соображений управления / политических соображений мне приходится снова менять диапазоны IP-адресов. Мы хотели бы, чтобы .1–0.10 были зарезервированы для сетевых устройств, коммутаторов и другой инфраструктуры. .200 останется предназначенным для серверов. Адресное пространство между ними должно быть доступно клиентам, а IP-адреса должны быть динамично выделено (Редактировать: вместо автоматического, как было упомянуто изначально) сервером.
Мой пул адресов на Windows Server выглядит так:
192.168.0.1 192.168.0.254 (Address range for distribution)
192.168.0.1 192.168.0.10 (IP addresses excluded from distribution)
192.168.0.200 192.168.0.254 (IP addresses excluded from distribution)
В настоящее время у нас все наши клиенты по-прежнему находятся в диапазоне .3–0,40, а несколько машин все еще активны в диапазоне .100– .175 (хотя есть много отключенных устройств, у которых все еще истек срок аренды с IP-адресами из этого диапазона. ассортимент). Поскольку «база данных» аренды не используется совместно старым и новым DHCP-сервером, как я могу предотвратить получение клиентами аренды с IP-адресом, который в настоящее время удерживается клиентом с бессрочным сроком аренды со старого DHCP-сервера? Если я просто расширю диапазон на DHCP-сервере Debian до 192.168.0.10 - 192.168.0.199, есть ли способ заставить клиентов не использовать повторно свой старый IP-адрес при отправке DHCPDISCOVER? Могу ли я сделать DHCP-сервер Windows авторитетным, как реализация ISC?
Dhcpd.conf с сервера Debian:
ddns-update-style none;
authoritative;
default-lease-time 43200; #12 hours
max-lease-time 86400; #24 hours
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
range 192.168.0.100 192.168.0.175;
}
host workstation-1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.0.3;
} ... and so on until 192.168.0.40
Возможно, это не лучший способ решить эту проблему, но он сработал. Вот что я сделал.
1) Я добавил следующее ограничение к своему DHCP-серверу на базе Debian и удалил все записи с фиксированным адресом. Это заставляет всех клиентов в этих диапазонах IP перемещаться куда-нибудь в диапазон .41–199, в противном случае, когда я включаю, клиенты Windows Server получат аренду с IP-адресами в диапазоне .11–0,40, которые уже присутствуют в сети. Затем я оставляю все на некоторое время, чтобы истек срок аренды в этом диапазоне IP и был выдан новый.
subnet 192.168.61.0 netmask 255.255.255.0 {
option routers 192.168.61.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.61.255;
pool {
range 192.168.61.0 192.168.61.40;
deny all clients;
}
pool {
range 192.168.61.41 192.168.61.199;
}
}
Я не мог придумать, как заставить реализацию DHCP в Windows Server действовать как «авторитетную»; я хотел, чтобы клиенты с арендой от старого DHCP-сервера на основе Debian отправляли свои пакеты DHCPINFORM на новый Windows Server, я хотел, чтобы эти клиенты получили DHCPNAK и снова прошли весь процесс, чтобы получить аренду, таким образом " повторное заполнение "адресного пространства от .11 и выше .... независимо от того, продолжаем.
2) Я обманул, расширив диапазон исключений на новом DHCP-сервере Windows, включив в него 192.168.61.100 - 192.168.61.199. Это заставит всех клиентов, которым был назначен IP-адрес в этом диапазоне службой DHCP на основе Debian, отказать в использовании DHCPINFORM, а затем выдать новую аренду в «нижней части» адресного пространства (.11 и выше).
3) На этом этапе я просто выключил DHCP-сервер Debian и включил Windows Server и позволил времени истечения срока разобраться во всем. Из-за строки "запретить всем клиентам" в моем dhcpd.conf, в адресном пространстве .11 - .40 не было клиентов со "старой арендой", которые могли бы вызвать конфликт IP, и из-за исключения диапазонов .100 - .199 все запросы DHCPINFORM были отклонены (по крайней мере, я предполагаю, что произошло ... Я не стал смотреть на транзакцию с помощью анализатора пакетов ... Я, вероятно, должен был), и адресное пространство было повторно заполнено, начиная с нижней границы .11.
Остановите DHCP-сервер и удалите файл аренды. Он должен находиться в /var/lib/dhcpd/dhcpd.leases. Перезапустите DHCP-сервер, и клиенты начнут принимать разные адреса.
Я не знаю, как заставить DHCP-сервер Windows стать авторитетным (в традициях Windows это может просто быть авторитетный), но удаление директивы из конфигурации dhcpd будет одним из шагов в этом направлении.