Что такое DHCP и как настроить DHCP-сервер в Linux
Что такое DHCP?
Любой, кто обладает базовыми знаниями в области компьютерных сетей, знает, что для взаимодействия двух хостов в одной сети с использованием модели TCP / IP оба хоста должны иметь уникальный IP-адрес. Существует два способа получения IP-адреса любым хостом в вашей сети.
Одним из способов является ручная настройка сетевого интерфейса и назначение IP-адреса вручную. Ручная конфигурация сети называется статической конфигурацией, что означает, что IP-адрес хоста не меняет свой IP-адрес, если не изменен вручную пользователем или системным администратором. Если сеть вашей компании включает более 1000 хостов, работа по настройке каждого хоста со статическим IP-адресом становится утомительной и, что еще важнее, крайне неэффективной.
Другой способ назначить хостам сети правильный IP-адрес независимо от фактического размера сети - назначить IP-адрес каждому хосту автоматически. Для автоматической настройки IP-адреса хоста пригодится DHCP (протокол динамической конфигурации хоста).
Протокол DHCP позволяет клиенту DHCP, который является вашим сетевым хостом, арендовать параметры конфигурации сети, такие как IP-адрес. Фактически, параметры аренды не ограничиваются только IP-адресом, поскольку они могут также включать следующие параметры конфигурации:
- IP-адреса и сетевые маски
- Серверы доменных имен (DNS)
- Шлюзы по умолчанию
- WINS-серверы
- Syslog hosts
- Прокси серверы
- NTP-серверы
- Серверы X Font
- Syslog hosts
Каждый сетевой узел, настроенный для динамического получения IP-адреса через DHCP, при загрузке отправляет запрос DHCP по сети (по определению, это широковещательная рассылка всех единиц), чтобы выяснить, есть ли в сети где-то DHCP-сервер, и, следовательно, запрашивать конфигурация сети. Затем DHCP-клиент обязан поддерживать связь с DHCP-сервером и регулярно обновлять его IP-адрес в соответствии с истечением срока аренды IP-адреса. В случае, если DHCP-клиенту не удается обновить свой IP-адрес (отключение, хост выключен и т. Д.), Срок его IP-адреса истекает, и DHCP-сервер может бесплатно передать этот IP-адрес другому DHCP-клиенту.
DHCP-сервер ведет учет всех арендованных IP-адресов и сохраняет их в файле с именем dhcpd.leases в каталоге / var / lib / dhcp (расположение этого файла может различаться в зависимости от используемой системы Linux). Наличие такого файла позволяет DHCP-серверу отслеживать все аренды IP-адресов даже после перезагрузки или сбоя питания.
Вот некоторые преимущества подключения DHCP-сервера к сети:
- Нет конфликтов IP-адресов. DHCP может гарантировать, что все хосты в сети имеют уникальный IP-адрес. DHCP-сервер ведет учет всех назначенных IP-адресов и сопоставляет их с MAC-адресами хоста.
- Основываясь на MAC-адресе, DHCP допускает фиксированную конфигурацию параметров для конкретного хоста
- минимальная конфигурация локальной клиентской сети, следовательно, повышенная эффективность
Установка DHCP-сервера
Стандартная реализация DHCP-сервера, доступная в различных дистрибутивах Linux, является версией с открытым исходным кодом, поддерживаемой ISC (Internet System Consortium).
Используйте следующие команды Linux для установки DHCP на ваш сервер Linux:
Debian и Ubuntu:
# apt-get install isc-dhcp-server
Redhat & Fedora:
# yum install dhcp
Базовая конфигурация DHCP
По умолчанию в настройках DHCP-сервера нет подсетей, в которых DHCP-сервер должен арендовать IP-адреса. Поэтому, в зависимости от вашей системы Linux, вы можете получить следующее сообщение об ошибке при попытке запустить DHCP с файлом конфигурации dhcpd.conf по умолчанию.
Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!
Изучение файлов журналов, таких как / var / log / syslog, показывает больше деталей:
No subnet declaration for eth0 (some IP address).
Ваш сервер может быть подключен к нескольким сетевым подсетям. Для запуска DHCP-сервера в конфигурационном файле DHCP /etc/dhcp/dhcpd.conf должна быть определена хотя бы одна подсеть.
ПРИМЕЧАНИЕ. Если ваш сервер имеет доступ к нескольким подсетям, DHCP требует определения всех подсетей, даже если в этой подсети нет немедленного намерения включить службу DHCP.
Ниже приведен простейший пример файла конфигурации DHCP:
subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; } subnet 192.168.0.0 netmask 255.255.0.0 { }
Этот файл конфигурации дает команду DHCP-серверу прослушивать запросы клиентов DHCP в подсети 10.1.1.0 с маской 255.255.255.0. Кроме того, он назначит IP-адреса в диапазоне 10.1.1.3 - 10.1.1.254. Он также определяет пустое определение для подсети с идентификатором сети 192.168.0.0.
Измените приведенный выше код в своей подсети и вставьте его в /etc/dhcp/dhcpd.conf. Когда все будет готово, перезапустите сервер DHCP с помощью (команда перезагрузки может отличаться):
# service isc-dhcp-server restart
DHCP по умолчанию и максимальное время аренды
На данный момент мы можем добавить несколько дополнительных настроек в нашу конфигурацию DHCP, а именно, срок действия по умолчанию и максимальный срок аренды.
- default-lease-time - значение в секундах, в течение которого будет установлен срок действия арендованного IP-адреса, если DHCP-клиент не запрашивает другое конкретное время аренды
- max-lease-time - это значение в секундах, которое определяет максимальное время истечения для IP-адреса, арендуемого DHCP-сервером.
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; } subnet 192.168.0.0 netmask 255.255.0.0 { }
Определить DNS-сервер
Другим параметром конфигурации, который DHCP-сервер может установить для своего клиента, является определение DNS-сервера. Если вы хотите, чтобы ваши клиенты использовали DNS-сервер с IP-адресами 8.8.8.8 и 10.1.1.1, вы можете сделать это, включив опцию «доменные имена-серверы» в файл конфигурации DHCP.
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option domain-name-servers 10.1.1.1, 8.8.8.8; } subnet 192.168.0.0 netmask 255.255.0.0 { } subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option routers 10.1.1.1; }
Установить шлюз по умолчанию
DHCP также допускает настройку шлюза клиента. Чтобы настроить любой клиент в локальной сети на использование шлюза по умолчанию 10.1.1.1, добавьте строку «опция маршрутизаторы 10.1.1.1» в файл dhcpd.conf, как показано ниже:
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option domain-name-servers 10.1.1.1, 8.8.8.8; option routers 10.1.1.1; } subnet 192.168.0.0 netmask 255.255.0.0 { } subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option routers 10.1.1.1; }
DHCP теперь установит DHCP-клиент со шлюзом 10.1.1.1.
Конкретная конфигурация хоста
Может потребоваться установить статический IP-адрес для определенного хоста в сети, такого как принтер, веб-сервер и т. Д. В этом случае можно изменить конфигурацию DHCP-сервера, чтобы арендовать выбранный IP-адрес для конкретного хоста, определенного его MAC-адресом. адрес.
default-lease-time 600; max-lease-time 7200; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.3 10.1.1.254; option domain-name-servers 10.1.1.1, 8.8.8.8; option routers 10.1.1.1; } subnet 192.168.0.0 netmask 255.255.0.0 { } host printer { hardware ethernet 00:16:d3:b7:8f:86; fixed-address 10.1.1.100; } host web-server { hardware ethernet 00:17:a4:c2:44:22; fixed-address 10.1.1.200; }
Приведенный выше файл конфигурации DHCP навсегда назначит IP-адрес 10.1.1.100 «принтеру» хоста с MAC-адресом 00: 16: d3: b7: 8f: 86 и IP-адресу 10.1.1.200 хосту «веб-сервер» с MAC адрес 00: 17: а4: с2: 44: 22.
аппендикс
Настройки сети клиента Ubuntu для использования DHCP
Чтобы настроить ваш клиент для использования DHCP в сетевом интерфейсе eth0 в системах Ubuntu или Debian linux, введите следующие строки в файл / etc / network / interfaces:
auto eth0 iface eth0 inet dhcp
Настройка агента ретрансляции DHCP
Если ваш DHCP-сервер не имеет доступа к какой-либо конкретной подсети, это не означает, что он не может предоставлять свои услуги там. Чтобы это работало, агент ретрансляции DHCP должен быть настроен в удаленной подсети, которая перенаправляет все запросы на указанный сервер DHCP и в удаленную подсеть. Сначала установите агент ретрансляции DHCP:
# apt-get install isc-dhcp-relay
Затем создайте файл конфигурации / etc / default / isc-dhcp-relay с двумя строками:
SERVERS="192.168.5.5" INTERFACES="eth0"
Приведенный выше файл конфигурации будет указывать агенту ретрансляции DHCP прослушивать на интерфейсе eth0 запросы клиента DHCP и пересылать их на сервер DHCP с IP-адресом 192.168.5.5.
Поддержка BOOTP
ISC DHCP-сервер обратно совместим с BOOTP. Ниже приводится объявление клиента BOOTP, которое должно быть определено в основном файле конфигурации DHCP dhcpd.conf:
host bootp { hardware ethernet 00:00:2e:55:12:09; fixed-address 123.123.1.3; filename "/path/to/tftpboot/bootp.boot"; }