Создан:11.02.2009
Модиф: 30.10.2015
Иванов Аркадий
DHCP - Dynamic Host Configuration Protocol, протокол динамической конфигурации хостов. Используется для облегчения жизни сисадминов больших организаций. Суть облегчения жизни в настройке клиентских машин состоит в следующем:
Рабочая станция сети не требует никакой изначальной конфигурации (статического IP-адреса, шлюза, DNS). При старте она, работая как DHCP-клиент, запрашивает в сети у DHCP-сервера эти параметры, получает их и настраивает свою конфигурацию.
Этот режим в настройке TCP/IP Windows для конкретного сетевого интерфейса называется:
"Получить IP-адрес автоматически" и "Получить адрес DNS автоматически".
В Linux для варианта настройки сети etcnet в файле "options" для конкретного сетевого интерфейса должна быть запись:
BOOTPROTO=dhcp
В Ubuntu в /etc/network/interfaces:
iface eth0 inet dhcp
На стороне сервера
Вся сетевая конфигурация хостов сети сводится к редактированию одного файла на сервере DHCP. Любые самые глобальные изменения IP-номеров, шлюзов, DNS не приведут к тому, что сисадмину надо будет перенастраивать каждый компьютер сети.
Далее в документе названия пакетов, каталогов и файлов соответствуют принятым в Ubuntu 14.04
Должен быть установлен пакет isc-dhcp-server.
Следует открыть UDP-порты 67 и 68.
Редактируется файл /etc/dhcp/dhcpd.conf. Вот его пример для сети, где IP адреса выдаются только статически в соответствии с MAC-адресами:
ddns-update-style none;
option routers 192.168.101.1;
option subnet-mask 255.255.255.0;
option domain-name "int.xxx.ru";
option domain-name-servers 192.168.101.3;
default-lease-time 216000;
max-lease-time 216000;
subnet 192.168.101.0 netmask 255.255.255.0 {
}
group {
host vasya {
hardware ethernet 00:14:85:88:FC:F1;
fixed-address 192.168.101.12;
}
host masha {
hardware ethernet 00:14:85:88:FC:F2;
fixed-address 192.168.101.13;
}
}
Строка "ddns-update-style none", говорит, что никаких динамических изменений DNS не производится.
Здесь приведена конфигурация для сети 192.168.101,
указан роутер (192.168.101.1),
указано доменное имя для хостов (int.xxx.ru),
указан DNS-сервер (192.168.101.3),
время по умолчанию, на которое выдается адрес, в секундах (default-lease-time=216000 сек = 60суток),
максимальное время, на которое выдаётся адрес (тоже 60 суток), если клиент запросит большее время,
хосты "vasya" и "masha", будут получать свой IP по MAC-адресу.
Если хосты в сети не выключаются в течение большего интервала, следует увепичить параметры,
связанные со временем.
Если в сети вы согласны иметь десяток компьютеров, динамически получающие свои адреса из
нужного диапазона , в конфиг сети добавляется строка:
subnet 192.168.101.0 netmask 255.255.255.0 {
...
range 192.168.101.201 192.168.101.210;
...
}
В любую subnet или group можно указать свои собственные опции domain-name, routers.
В конфигурации обязательно должны быть указаны сети, которые обслуживаются интерфейсами
машины, на которой запущен DHCP-сервер.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Дальше я укажу немного более сложную конфигурацию:
- На сервере у меня много интерфейсов и они обслуживают многие подсети.
- Подсеть 192.168.98 должна маршрутизироваться через 192.168.98.1 и машины, которые не прописаны
статически, могут получить из неё динамические номера от 1 до 10. - Машины из сети 192.168.2 прописаны своими MAC-адресами и маршрутизируются через 192.168.2.1
- Остальные сети я обязан указать в конфигурации, поскольку иначе dhcpd работать не хочет.
shared-network all {
option routers 192.168.2.1;
subnet 192.168.98.0 netmask 255.255.255.0 {
option routers 192.168.98.1;
range 192.168.98.1 192.168.98.10;
}
subnet 192.168.0.0 netmask 255.255.0.0 {
}
subnet 172.16.0.0 netmask 255.255.0.0 {
}
subnet 10.0.0.0 netmask 255.0.0.0 {
}
}
group {
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option domain-name "xxx.ru";
option domain-name-servers 192.168.2.2,192.168.2.3;
host vasily.xxx.ru {
hardware ethernet 00:14:85:88:FC:F5;
fixed-address vasily.xxx.ru;
}
host arc-vm.xxx.ru {
hardware ethernet 00:00:11:27:11:50;
fixed-address 192.168.2.10;
}
}