DHCP service
Настройка DHCP сервера
DHCP (Dynamic Host Configuration Protocol), динамический протокол настройки хостов - это протокол, который дает возможность компьютерам в сети получать свои сетевые настройки у сервера. В “сетевые настройки” входит IP-адрес, маска подсети, адрес DNS сервера, шлюз по умолчанию (default gateway). Также DHCP может взаимодействовать с DNS сервером и динамически менять в нем имена хостов. В GNU/Linux протокол DHCP поддерживается демоном dhcpd
Простейший DHCP сервер
- Установим DHCP сервер:
yum install dhcpd
- После установки необходимо создать конфигурационный файл /etc/dhcpd.conf. Можно просто скопировать файл примера:
cp /etc/dhcpd.conf.sample /etc/dhcpd.conf
- Далее мы будем вносить изменения в этот конфигурационный файл /etc/dhcpd.conf.
Рассмотрим самый простейший вариант использования DHCP сервера: пусть мы хотим, чтобы все хосты в сети 192.168.1.0/24 получали IP в диапазоне 192.168.1.128-250. Также нам нужно, чтобы машины в сети использовали по умолчанию шлюз 192.168.1.1 и DNS сервер 192.168.1.4. Кроме того нам нужно чтобы клиентская машина знала что она работает в домене mynet.lan.
- Настройки такого сервера выглядят следующим образом:
ddns-update-style none; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.4; option domain-name "mynet.lan"; range 192.168.1.128 192.168.1.250; }
В нашем примере первая, обратившаяся за настройками, машина получит адрес 192.168.1.250, следующая 192.168.1.249 ну и так далее.
- В случае, если нам нужно, чтобы некоторые компьютеры в сети получали вместо случайных адресов только жестко закрепленный за ними адрес (в соответствии с аппаратным MAC-адресом сетевой карты), тогда можно использовать такую конфигурацию:
ddns-update-style none; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.4; range 192.168.1.128 192.168.1.250; host smith # Вася Сидоров :-) { hardware ethernet 00:0c:29:8b:02:e7; fixed-address 192.168.1.5; } host neo # Коля Петров { hardware ethernet 00:22:22:22:22:22; fixed-address 192.168.1.6; } }
В этом примере IP-адреса раздаются с привязкой к MAC-адресу сетевой карты. Сетевая карта с MAC 00:0c:29:8b:02:e7 всегда будет получать адрес 192.168.1.5, а сетевая карта с MAC 00:22:22:22:22:22 соответственно адрес 192.168.1.6, а остальные компьютеры в сети будут получать адреса случайным образом в диапазоне с 192.168.1.128 по 192.168.1.250. Если мы хотим чтобы IP-адреса получали только компьютеры, привязанные к MAC, тогда в данном примере нужно закомментировать строку range 192.168.1.128 192.168.1.250;.
Настройка динамического DHCP сервера, связанного с DNS
Работает это следующим образом: машина в сети получает случайный IP-адрес и, при получении этого IP, DHCP сервер перенастраивает DNS сервер таким образом, чтобы у компьютеров в сети независимо от того, какой у них в данный момент IP, всегда было одно и тоже доменное имя.
- Теперь приведем как должен выглядеть файл /etc/dhcpd.conf:
vim /etc/dhcpd.conf ddns-update-style ad-hoc; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.4; range 192.168.1.5 192.168.1.250; ddns-updates on; ddns-domainname "mynet.lan"; ddns-rev-domainname "in-addr.arpa"; option domain-name "mynet.lan"; # Этот "secret" нужно пересоздать с помощью команды dnssec-keygen # он должен быть ОДИНАКОВЫМ в этом файле, а также в # /etc/named.conf /etc/rndc.conf /etc/rnd.key key mykey { algorithm hmac-md5; secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad"; }; zone mynet.lan. { primary 192.168.1.4; key mykey; } zone 1.168.192.in-addr.arpa. { primary 192.168.1.4; key mykey; } host smith # Агент Смит { hardware ethernet 00:0c:29:8b:02:e7; # option host-name "vasya"; ddns-hostname "smith"; } host neo # Коля Петров { hardware ethernet 00:22:22:22:22:22; # option host-name "kolya"; ddns-hostname "neo"; } }
В этом примере машина с МАС-адресом 00:0c:29:8b:02:e7 получит имя smith.mynet.lan, а машина с МАС-адресом 00:22:22:22:22:22 получит имя neo.mynet.lan. Имена остальных машин будут формироваться на основе запроса DHCP клиента. В случае с M$ Window$ это будет “имя компьютера”.
- Для того, чтобы DHCP сервер мог управлять DNS сервером, необходимо также отредактировать следующие файлы: /etc/rndc.conf
###### begin of /etc/rndc.conf ################## key mykey { algorithm hmac-md5; secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad"; }; options { default-key mykey; default-server 127.0.0.1; default-port 953; }; ###### End of /etc/rndc.conf ##################### и /etc/rndc.key key mykey { algorithm hmac-md5; secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad"; };
После выполнения всех этих настроек перезапускаем DNS сервер и DHCP сервер и работаем.