Управление службами сетевой инфраструктуры#
Примечание
Все адреса хостов и доменные имена, использованные в этом разделе, приведены для примера. При выполнении команд замените все адреса и имена из примера в соответствии со структурой сети. Обратите внимание, что вывод команд также изменится.
Установка и настройка DNS-сервера BIND#
Система доменных имен (DNS) - это метод, используемый для перевода удобочитаемых доменных имен (или полных доменных имен (FQDN)) в машиночитаемые IP-адреса для определения местоположения машины в сети, такой как Интернет.
В компьютерных и сетевых системах это необходимо, потому что, хотя людям легко запомнить и использовать полные доменные имена, компьютеры (клиенты) получают доступ к ресурсам или службам на других компьютерах (серверах) на основе IP-адресов.
В связи с этим DNS-сервер (также известный как сервер имен) поддерживает каталог полных доменных имен и переводит их в IP-адреса; он также может возвращать IP-адрес, если указано имя хоста/полное доменное имя. Существуют различные типы DNS-серверов, включая авторитетный сервер имен, кеширующий сервер имен и многие другие.
Для установки и настройка DNS-сервера BIND выполните следующие шаги:
Чтобы установить
bindи его утилиты на сервер, выполните следующую командуcdnf.dnf install bind bind-utils
Запустите службу DNS, включите автоматический запуск при загрузке системы и проверьте с помощью команды
systemctl:systemctl start <service_name> systemctl enable <service_name> systemctl status <service_name>
Чтобы настроить DNS-сервер Bind, сделайте резервную копию исходного файла конфигурации
/etc/ named.conf, используя командуcp.cp /etc/named.conf /etc/named.conf.origОткройте файл конфигурации
/etc/ named.confдля редактирования с помощью текстового редактора командной строки, как показано ниже.vi /etc/named.confВ разделе конфигурации
optionsзакомментируйте следующие строки.options { #listen-on port 53 { 127.0.0.1; }; #listen-on-v6 port 53 { ::1; }; directory "/var/named";Найдите параметр
allow-queryи установите его значение для сети, чтобы только хосты в настроенной локальной сети могли запрашивать DNS-сервер.allow-query {localhost; <ip-address4>/24}Зона пересылки – это место, где хранятся отношения между именем хоста (или FQDN) и IP-адресом; он возвращает IP-адрес, используя имя хоста. Обратите внимание, что обычные запросы DNS являются запросами прямого просмотра. С другой стороны, обратная зона возвращает полное доменное имя хоста на основе его IP-адреса.
Чтобы определить прямую и обратную зоны, добавьте следующие строки в конец файла
/etc/ named.conf.//forward zone zone "tecmint.lan" IN { type master; file "tecmint.lan.db"; allow-update { none; }; allow-query {any; } }; //backward zone zone "56.168.192.in-addr.arpa" IN { type master; file "tecmint.lan.rev"; allow-update { none; }; allow-query { any; } };Параметры в конфигурациях вышеупомянутых зон:
type: определяет роль этого сервера для зоны. Значениеmasterозначает, что это полномочный сервер, на котором хранится главная копия данных зоны.file: указывает файл базы данных зоны.allow-update: указывает узлы, которым разрешено отправлять обновления динамического DNS для основных зон. В данном случае нет.
Создайте файл зоны пересылки в каталоге
/var/named.vi /var/named/tecmint.lan.dbДобавьте в него следующую конфигурацию.
$TTL 86400 @ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. ( 2019061800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.tecmint.lan. ;IP for Name Server dns-primary IN A <ip-address> ;A Record for IP address to Hostname www IN A <ip-address> mail IN A <ip-address> docs IN A <ip-address>TTL: указывает время действияRR, а директива$TTLдает значениеTTLпо умолчанию для каждого RR без определенного набораTTL.@:это псевдоним для имени домена (например,tecmint.lan), определенного в основном файле конфигурации.IN: означает Интернет.SOA: указывает начало полномочий: авторитетный сервер имен (dns-primary.tecmint.lan), контактную информацию администратора (admin.tecmint.lan, знак@заменяется точкой) и другие связанные информация.NS: означает сервер имен.Serial: используется DNS-сервером для проверки актуальности содержимого определенного файла зоны.Refresh: указывает, как часто подчиненный DNS-сервер должен выполнять передачу зоны от главного.Retry: указывает, как часто ведомое устройство должно повторять неудачную передачу зоны.Expire: определяет, как долго подчиненный сервер должен ждать перед ответом на запрос клиента, когда главный сервер недоступен.Minimum TTL: устанавливает минимальныйTTLдля зоны.A: адрес хоста.
Аналогичным образом создайте файл обратной зоны в каталоге
/var/named.vi /var/named/tecmint.lan.revДобавьте в него следующие строки. Здесь PTR - это противоположность записи A, используемой для сопоставления IP-адреса с именем хоста.
$TTL 86400 @ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. ( 2019061800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.tecmint.lan. ;Reverse lookup for Name Server 100 IN PTR dns-primary.tecmint.lan. ;PTR Record IP address to HostName 5 IN PTR www.tecmint.lan. 10 IN PTR mail.tecmint.lan. 20 IN PTR docs.tecmint.lan.Установите правильные права собственности на файлы зоны, как показано ниже.
chown :named /var/named/tecmint.lan.db chown :named /var/named/tecmint.lan.revНаконец, проверьте конфигурацию DNS и правильность синтаксиса файлов зоны после внесения вышеуказанных изменений с помощью утилиты
named-checkconf(отсутствие выхода означает отсутствие ошибки):named-checkconf named-checkzone tecmint.lan /var/named/tecmint.lan.db named-checkzone <ip-address3> /var/named/tecmint.lan.rev
После того как выполнится вся необходимая настройка, необходимо перезапустить службу DNS, чтобы последние изменения вступили в силу.
systemctl restart namedЗатем, прежде чем какие-либо клиенты смогут получить доступ к конфигурациям службы DNS на сервере, необходимо добавить службу DNS в конфигурацию системного межсетевого экрана и перезагрузить настройки межсетевого экрана с помощью служебной программы
firewall-cmdследующим образом:firewall-cmd --permanent --zone=public --add-service=dns firewall-cmd --reloadОткройте файл
/etc/resolve.confс помощью текстового редактора.vi /etc/resolve.confДобавьте в него следующую запись, которая сообщает преобразователю использовать указанный сервер имен.
nameserver <ip-address3>Сохраните файл и закройте его. Обратите внимание, что также необходимо указать DNS-сервер в файле конфигурации сетевого интерфейса.
Добавьте IP-адрес DNS-сервера
<ip-address3>в качестве преобразователя в файл конфигурации сетевого интерфейса/etc/sysconfig/network-scripts/ifcfg-enp0s3клиентского компьютера.Используйте утилиту
nslookupдля запроса IP-адреса с использованием имени хоста и, наоборот, серверов www, почты и документации в сети.
Защита BIND с помощью SELinux или его запуск в среде с измененным пользователем с административными полномочиями#
Чтобы обеспечить надежную установку привязки BIND, запустите именованную службу без изменения корневой среды. В этом случае SELinux в принудительном режиме предотвращает использование известных уязвимостей безопасности BIND. По умолчанию ОС SberLinux OS Server использует SELinux в принудительном режиме.
Примечание
Запуск BIND на ОС SberLinux OS Server с SELinux в принудительном режиме более безопасен, чем запуск BIND в среде с измененным пользователем с административными полномочиями.
Запустите службу
named-chrootв среде с измененным пользователем с административными полномочиями.
Используя функцию изменения корневого каталога, администраторы могут определить, что корневой каталог процесса и его подпроцессов отличается от каталога /. Когда запускается служба named-chroot, BIND переключает ее корневой каталог на /var/named/chroot/. Как следствие, служба использует команды mount --bind для создания файлов и каталогов, перечисленных в /etc/named-chroot. Эти файлы доступны в /var/named/chroot/, и процесс не имеет доступа к файлам за пределами /var/named/chroot/.
Для использования BIND:
В обычном режиме используйте именованную службу.
В среде с измененным пользователем с административными полномочиями используйте службу named-chroot. Для этого необходимо дополнительно установить пакет named-chroot.
Справочное руководство администратора BIND#
Всесторонний BIND Administrator Reference Manual, который включен в bind пакет, обеспечивающий:
примеры конфигурации;
документацию по расширенным функциям;
ссылку на конфигурацию;
соображения безопасности.
Для отображения BIND Administrator Reference Manual на хосте, который имеет bind пакет установлен, откройте /usr/share/doc/bind/Bv9ARM.html файл в браузере.
Настройка BIND в качестве кеширующего DNS-сервера#
По умолчанию DNS-сервер BIND разрешает и кеширует успешные и неудачные запросы. Затем служба отвечает на запросы к тем же записям из своего кеша. Это значительно повышает скорость поиска в DNS.
Предварительные условия |
|---|
- IP-адрес сервера является статическим |
Для настройки BIND выполните следующий сценарий:
Установите
bind bindutilsи пакеты:yum install bind bind-utilsЭти пакеты предоставляют BIND 9.11. Если требуется BIND 9.16, установите
bind9.16bind9.16- утилиты и пакеты.Если можно запустить BIND в среде с измененным пользователем с административными полномочиями, установите пакет
bind-chroot:yum install bind-chrootОбратите внимание, что запуск BIND на хосте с SELinux в принудительном режиме, который установлен по умолчанию, является более безопасным.
Отредактируйте файл
/etc/named.confи внесите следующие изменения вoptionsинструкцию:Обновите инструкции
listen-on,listen-on-v6, чтобы указать, какие интерфейсы IPv4 и IPv6 должны прослушиваться BIND:
listen-on port 53 { 127.0.0.1; <ip-address>; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };Разрешите запрос, чтобы настроить, с каких IP-адресов и диапазонов клиенты могут запрашивать этот DNS-сервер:
allow-query { localhost; <ip-address2>/24; 2001:db8:1::/64; };Добавьте оператор
allow-recursion, чтобы определить, с каких IP-адресов и диапазонов BIND принимает рекурсивные запросы:allow-recursion { localhost; <ip-address2>/24; 2001:db8:1::/64; };Не разрешайте рекурсию по общедоступным IP-адресам сервера. В противном случае сервер может стать частью крупномасштабных атак по усилению DNS.
По умолчанию BIND разрешает запросы путем рекурсивного запроса от корневых серверов к авторитетному DNS-серверу. В качестве альтернативы можно настроить привязку для пересылки запросов на другие DNS-серверы, например, установленного провайдера. В этом случае добавьте инструкцию
forwardersсо списком IP-адресов DNS-серверов, на которые BIND должен пересылать запросы:
forwarders { <ip-address5>; <ip-address6>; };В качестве запасного варианта BIND разрешает запросы рекурсивно, если серверы пересылки не отвечают. Чтобы отключить это поведение, добавьте оператор
forward only;Проверьте синтаксис файла
/etc/named.conf:named-checkconfЕсли команда не выводит никаких выходных данных, синтаксис правильный.
Обновите правила межсетевого экрана, чтобы разрешить входящий DNS-трафик:
firewall-cmd --permanent --add-service=dns firewall-cmd --reloadЗапустите и включите BIND:
systemctl enable --now namedЕсли можно запустить BIND в среде с измененным пользователем с административными полномочиями, используйте команду
systemctl enable --now named-chrootдля включения и запуска службы.
Для проверки выполните следующий сценарий:
Используйте недавно настроенный DNS-сервер для разрешения домена:
dig @localhost www.example.org ... www.example.org. 86400 IN A <ip-address7> ;; Query time: 917 msec ...В этом примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в
localhostинтерфейсе.После первого запроса записи BIND добавляет запись в свой кеш.
Повторите предыдущий запрос:
dig @localhost www.example.org ... www.example.org. 85332 IN A <ip-address7> ;; Query time: 1 msec ...Из-за кешированной записи дальнейшие запросы к той же записи выполняются значительно быстрее, пока срок действия записи не истечет.
Настройте клиентов в сети на использование этого DNS-сервера. Если DHCP-сервер предоставляет клиентам настройки DNS-сервера, соответствующим образом обновите конфигурацию DHCP-сервера.
Настройка ведения журнала на DNS-сервере BIND#
Конфигурация в файле /etc/named.conf по умолчанию, предоставляемая пакетом bind, использует канал default_debug и записывает сообщения в /var/named/data/named.run файл. Канал Default_debug регистрирует записи только тогда, когда уровень отладки сервера отличен от нуля.
Используя различные каналы и категории, можно настроить BIND для записи различных событий с серьезностью Syslog в отдельные файлы.
Предварительные условия |
|---|
- BIND уже настроен, например, как кеширующий сервер имен |
- Запущена служба |
Для настройки ведения журнала на DNS-сервере BIND используйте следующий сценарий:
Отредактируйте файл
/etc/named.confи добавьте канал категории и фразы в инструкцию ведения журнала, например:logging { ... category notify { zone_transfer_log; }; category xfer-in { zone_transfer_log; }; category xfer-out { zone_transfer_log; }; channel zone_transfer_log { file "/var/named/log/transfer.log" versions 10 size 50m; print-time yes; print-category yes; print-severity yes; severity info; }; ... };В этом примере конфигурации BIND регистрирует сообщения, связанные с переносами зон, в
/var/named/log/transfer.log.BIND создает до 10 версий файла журнала и изменяет их, если они достигают максимального размера50МБ.Фраза категории определяет, по каким каналам BIND отправляет сообщения определенной категории.
Фраза канала определяет назначение сообщений журнала, включая количество версий, максимальный размер файла и уровень серьезности, с которым нужно регистрироваться в канале.
Дополнительные настройки, такие как включение регистрации метки времени, категории и серьезности события, необязательны, но полезны для целей отладки.
Создайте каталог журнала, если он не существует, и предоставьте разрешения на запись именованному пользователю в этом каталоге:
mkdir /var/named/log/ chown named:named /var/named/log/ chmod 700 /var/named/log/Проверьте синтаксис файла
/etc/named.conf:named-checkconfЕсли команда не выводит никаких выходных данных, синтаксис правильный.
Перезапустите BIND:
systemctl restart namedЕсли BIND запускается в среде с измененным пользователем с административными полномочиями, используйте команду
systemctl restart named-chrootдля перезапуска службы.
Для проверки отобразите содержимое файла журнала:
cat /var/named/log/transfer.log
...
06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 <ip-address8>
#36121/key example-transfer-key (example.ru): transfer of 'example.ru/IN':
AXFR started: TSIG example-transfer-key (serial 2022070603)
06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 <ip-address8>#36121/key example-transfer-key (example.ru): transfer of 'example.ru/IN':
AXFR ended
Написание ACL BIND#
Контроль доступа к определенным функциям BIND может предотвратить несанкционированный доступ и атаки, такие как отказ в обслуживании (DoS). Инструкции BIND access control list (acl) представляют собой списки IP-адресов и диапазонов. Каждый список управления доступом имеет псевдоним, который можно использовать в нескольких операторах, например, allow-query, для ссылки на указанные IP-адреса и диапазоны.
Примечание
BIND использует только первую соответствующую запись в списке управления доступом. Например, если определяется список управления доступом {192.0.2/24;<ip-address>;} и подключается хост с IP-адресом <ip-address>, доступ предоставляется, даже если вторая запись исключает этот адрес.
BIND имеет следующие встроенные списки управления доступом:
none- не соответствует ни одному хосту.any- соответствует всем хостам.localhost- соответствует адресам обратной 127.0.0.1 связи и::1, а также IP-адресам всех интерфейсов на сервере, на котором выполняется привязка.localnets- соответствует адресам обратной 127.0.0.1 связи и::1, а также всем подсетям, к которым напрямую подключен сервер, где выполняется привязка.
Предварительные условия |
|---|
- BIND уже настроена, например, как сервер имен кеширования |
- Служба |
Отредактируйте файл
/etc/named.confи внесите следующие изменения:Добавьте ACL инструкции в файл. Например, чтобы создать список управления доступом с именем
internal-networksдля 127.0.0.1,<ip-address2>/24, и 2001:db8:1::/64, введите:
acl internal-networks { 127.0.0.1; <ip-address2>/24; 2001:db8:1::/64; } acl dmz-networks { <ip-address9>/24; 2001:db8:2::/64; };Используйте псевдоним ACL в операторах, которые их поддерживают, например:
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };Проверьте синтаксис файла /etc/named.conf:
named-checkconfЕсли команда не выводит никаких выходных данных, значит, синтаксис правильный.
Перезагрузите BIND:
systemctl reload namedЕсли запускаете BIND в среде с измененным пользователем с административными полномочиями, используйте команду
systemctl reload named-chrootдля перезагрузки службы.
Для проверки выполните действие, которое запускает функцию, использующую настроенный список управления доступом. Например, список управления доступом в этой процедуре допускает только рекурсивные запросы с определенных IP-адресов. В этом случае введите следующую команду на узле, который не входит в определение списка управления доступом, чтобы попытаться разрешить внешний домен:
dig +short @<ip-address> www.example.ru
Если команда не возвращает выходные данные, BIND отказывает в доступе, и ACL работает. Для подробного вывода на клиенте используйте команду без short параметра:
dig @<ip-address> www.example.ru
...
;; WARNING: recursion requested but not available
...
Настройка зон на DNS-сервере BIND#
Зона DNS - это база данных с записями ресурсов для определенного поддерева в доменном пространстве. Например, если необходима ответственность за example.ru домен, можно настроить для него зону в BIND. В результате клиенты могут перейти www.example.ru на IP-адрес, настроенный в этой зоне.
Запись SOA в файлах зон#
Запись начала полномочий (SOA) является обязательной записью в зоне DNS. Эта запись важна, например, если несколько DNS-серверов являются авторитетными для зоны, а также для DNS-преобразователей.
Запись SOA в BIND имеет следующий синтаксис:
name class type mname rname serial refresh retry expire minimum
Для удобства чтения администраторы обычно разделяют запись в файлах зон на несколько строк с комментариями, начинающимися с точки с запятой (;). Обратите внимание, что при разделении записи SOA круглые скобки сохраняют запись вместе:
@ IN SOA ns1.example.ru. hostmaster.example.ru. (
2022070601 ; serial number
1d ; refresh period
3h ; retry period
3d ; expire time
3h ) ; minimum TTL
Примечание
Обратите внимание на точку в конце полных доменных имен. Полные доменные имена состоят из нескольких меток доменов, разделенных точками. Поскольку корневой каталог DNS имеет пустую метку, полные доменные имена заканчиваются точкой. Таким образом, BIND добавляет имя зоны к именам без конечной точки. Например, имя хоста без конечной точки ns1.example.ru будет расширено до ns1.example.ru.example.ru, что не является правильным адресом основного сервера имен.
Поля в записи SOA:
name: Название зоны, так называемой origin. Если задать значение этому полю@,BIND расширит его до имени зоны, определенного в/etc/named.conf.class: В записях SOA нужно всегда устанавливать для этого поля значение Internet (IN).type: В записях SOA нужно всегда устанавливать это поле равным SOA.mname(главное имя): имя хоста основного сервера имен этой зоны.rname(имя ответственного): адрес электронной почты ответственного за эту зону. Обратите внимание, что формат отличается. Можно должны заменить знакat (@)точкой(.).serial: Номер версии этого файла зоны. Вторичные серверы имен обновляют свои копии зоны только в том случае, если серийный номер на основном сервере выше. Формат может быть любым числовым значением. Обычно используемый формат – это< year >< month >< day ><two-digit-number>. С помощью этого формата можно, теоретически, изменять файл зоны до ста раз в день.refresh: Количество времени, которое вторичные серверы должны ждать, прежде чем проверять основной сервер на предмет обновления зоны.retry: Количество времени, через которое вторичный сервер повторяет попытку запроса к основному серверу после неудачной попытки.expire: Количество времени, через которое вторичный сервер прекращает запрашивать основной сервер, если все предыдущие попытки не увенчались успехом.minimum: RFC 2308 изменил значение этого поля на отрицательное время кеширования. Кеширующие распознаватели используют его, чтобы определить, как долго кешироватьNXDOMAINошибки имен.
Примечание
Числовое значение в полях refresh, retry, expire, и minimum определяет время в секундах. Однако для лучшей читаемости используйте временные суффиксы, такие как m для минуты, h для часов и d для дней. Например, 3h выдерживается 3 часа.
Настройка зоны переадресации на основном сервере BIND#
Перенаправление зон сопоставляет имена с IP-адресами и другой информацией. Например, если необходима ответственность за домен example.ru, можно настроить зону пересылки в BIND для разрешения имен, таких как www.example.ru.
Предварительные условия |
|---|
- BIND уже настроен, например, как сервер имен кеширования |
- Служба |
Для настройки зоны переадресации выполните следующие действия:
Добавьте определение зоны в файл
/etc/named.conf:zone "example.ru" { type master; file "example.ru.zone"; allow-query { any; }; allow-transfer { none; }; };Эти параметры определяют:
Этот сервер является основным сервером (
type master) дляexample.ruзоны.Файл
/var/named/example.ru.zone- это файл зоны. Если задан относительный путь, как в этом примере, этот путь относится к каталогу, в котором указанаdirectoryвoptionsинструкции.Любой хост может запросить эту зону. В качестве альтернативы можно указать диапазоны IP-адресов или BIND псевдонимы списка управления доступом (ACL), чтобы ограничить доступ.
Ни один хост не может перенести зону. Разрешайте передачу зон только при настройке дополнительных серверов и только для IP-адресов дополнительных серверов.
Проверьте синтаксис
/etc/named.confфайла:named-checkconfЕсли команда не выводит никаких выходных данных, значит, синтаксис правильный.
Создайте
/var/named/example.ru .zoneфайл, например, со следующим содержимым:$TTL 8h @ IN SOA ns1.example.ru. hostmaster.example.ru. ( 2022070601 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.example.ru. IN MX 10 mail.example.ru. www IN A <ip-address10> www IN AAAA 2001:db8:1::30 ns1 IN A <ip-address> ns1 IN AAAA 2001:db8:1::1 mail IN A <ip-address11> mail IN AAAA 2001:db8:1::20Файл зоны:
Устанавливает значение промежутка времени по умолчанию (TTL) для записей ресурсов равным 8 часам. Без суффикса времени, такого как
hдля обозначения часа, BIND интерпретирует значение как секунды.Содержит требуемую запись ресурса SOA с подробной информацией о зоне.
Наборы
ns1.example.ruв качестве авторитетного DNS-сервера для этой зоны. Чтобы зона функционировала, требуется по крайней мере одна запись сервера имен (NS). Однако, чтобы быть совместимым с RFC 1912, требуется по крайней мере два сервера имен.Наборы
mail.example.ru, как почтовый шлюз (MX) изexample.ruдомен. Числовое значение перед именем хоста является приоритетом записи. Записи с меньшим значением имеют более высокий приоритет.Задает IPv4 и IPv6-адреса
www.example.ru,mail.example.ruиns1.example.ru.
Установите безопасные разрешения для файла зоны, которые позволяют читать его только группе
named:chown root:named /var/named/example.ru.zone chmod 640 /var/named/example.ru.zoneПроверьте синтаксис
/var/named/example.ru.zoneфайла:Перезагрузите BIND:
systemctl reload named
Если запускается BIND в среде с измененным пользователем с административными полномочиями, используйте эту systemctl reload named-chroot команду для перезагрузки службы.
Для проверки выполните следующий сценарий:
Запрашивайте разные записи из example.ru зоны и убедитесь, что выходные данные соответствуют записям, которые настроены в файле зоны:
dig +short @localhost AAAA www.example.ru
2001:db8:1::30
dig +short @localhost NS example.ru
ns1.example.ru.
dig +short @localhost A ns1.example.ru
<ip-address>
В этом примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в localhost интерфейсе.
Настройка обратной зоны на основном сервере BIND#
Обратные зоны сопоставляют IP-адреса с именами. Например, если отвечаете за диапазон IP<ip-address2>/24-адресов, можно настроить обратную зону в BIND для преобразования IP-адресов из этого диапазона в имена хостов.
Примечание
Если создается обратная DNS-зона для целых сетей (обратная DNS-зона — это специальная доменная зона. Она предназначена для определения имени хоста по его IP-адресу с помощью PTR-записи), состоящая из классов, назовите зону соответствующим образом. Например, для сети класса C <ip-address2>/24 имя зоны равно 2.0.192.in-addr.arpa. Если можно создать обратную DNS-зону для другого размера сети <ip-address2>/28 - имя зоны будет следующим 28-2.0.192.in-addr.arpa.
Предварительные условия |
|---|
- BIND уже настроен, например, как сервер имен кеширования |
- Служба |
Для настройки обратной зоны выполните следующие действия:
Добавьте определение зоны в
/etc/named.confфайл:zone "2.0.192.in-addr.arpa" { type master; file "2.0.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; };Эти параметры определяют:
Этот сервер в качестве основного сервера (типа master) для
2.0.192.in-addr.arpaобратной зоны.Файл
/var/named/2.0.192.in-addr.arpa.zoneявляется файлом зоны. Если задается относительный путь, как в этом примере, этот путь относится к каталогу, который задан в разделеdirectoryв инструкцииoptions.Любой хост может запросить эту зону. В качестве альтернативы, укажите диапазоны IP-адресов или BIND псевдонимы списка управления доступом (ACL), чтобы ограничить доступ.
Ни один хост не может перенести зону. Разрешайте передачу зон только при настройке вторичных серверов и только для IP-адресов вторичных серверов.
Проверьте синтаксис файла
/etc/named.conf:named-checkconfЕсли команда не выводит никаких выходных данных, значит, синтаксис правильный.
Создайте
/var/named/2.0.192.in-addr.arpa .zoneфайл, например, со следующим содержимым:$TTL 8h @ IN SOA ns1.example.ru. hostmaster.example.ru. ( 2022070601 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.example.ru. 1 IN PTR ns1.example.ru. 30 IN PTR www.example.ru.Этот файл зоны:
Устанавливает значение времени жизни по умолчанию (TTL) для записей ресурсов равным 8 часам. Без суффикса времени, такого как h для обозначения часа, BIND интерпретирует значение как секунды.
Содержит требуемую запись ресурса SOA с подробной информацией о зоне.
Содержит наборы
ns1.example.ruв качестве авторитетного DNS-сервера для этой обратной зоны. Чтобы зона функционировала, требуется минимум одна запись сервера имен (NS). Однако чтобы быть совместимым сRFC 1912, требуется минимум два сервера имен.Устанавливает запись указателя (PTR) для
<ip-address>и<ip-address10>адресов.
Установите безопасные разрешения для файла зоны, которые позволяют читать его только названной группе:
chown root:named /var/named/2.0.192.in-addr.arpa.zone chmod 640 /var/named/2.0.192.in-addr.arpa.zoneПроверьте синтаксис
/var/named/2.0.192.in-addr.arpa.zoneфайла:named-checkzone 2.0.192.in-addr.arpa /var/named/2.0.192.in-addr.arpa.zone zone 2.0.192.in-addr.arpa/IN: loaded serial 2022070601 OKПерезагрузите BIND:
systemctl reload named
Если запускается BIND в среде с измененным пользователем с административными полномочиями, используйте systemctl reload named-chroot команду для перезагрузки службы.
Для проверки запросите разные записи из обратной зоны и убедитесь, что выходные данные соответствуют записям, настроенным в файле зоны:
dig +short @localhost -x <ip-address>
ns1.example.ru.
dig +short @localhost -x <ip-address10>
www.example.ru.
В этом примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в localhost интерфейсе.
Обновление файла зоны BIND#
В определенных ситуациях, например, при изменении IP-адреса сервера, необходимо обновить файл зоны. Если за зону отвечают несколько DNS-серверов, выполните эту процедуру только на основном сервере. Другие DNS-серверы, на которых хранится копия зоны, получат обновление посредством передачи зоны.
Предварительные условия |
|---|
- Служба |
- Зона настроена |
Для обновления файла зоны BIND выполните следующий сценарий:
При необходимости укажите путь к файлу зоны в
/etc/named.confфайле:options { ... directory "/var/named"; } zone "example.ru" { ... file "example.ru.zone"; };Найдите путь к файлу зоны в инструкции
fileв определении зоны. Относительный путь относится к каталогуdirectory, указанному в инструкцииoptions.Отредактируйте файл зоны:
Внесите необходимые изменения.
Увеличьте серийный номер в записи начала полномочий (SOA).
Примечание
Если серийный номер равен или меньше предыдущего значения, вторичные серверы не будут обновлять свою копию зоны.
Проверьте синтаксис файла зоны:
named-checkzone example.ru /var/named/example.ru.zone zone example.ru/IN: loaded serial 2022062802 OKПерезагрузите BIND:
systemctl reload namedЕсли запускается BIND в среде с измененным пользователем с административными полномочиями, используйте
systemctl reload named-chrootкоманду для перезагрузки службы.
Для проверки запросите запись, которую добавили, изменили или удалили, например:
dig +short @localhost A ns2.example.ru
<ip-address8>
В этом примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в localhost интерфейсе.
Подписание зоны DNSSEC с использованием функций автоматической генерации ключей и обслуживания зоны#
Можно подписывать зоны с помощью расширений безопасности системы доменных имен (DNSSEC) для обеспечения аутентификации и целостности данных. Такие зоны содержат дополнительные записи ресурсов. Клиенты могут использовать их для проверки подлинности информации о зоне.
Если включена функция политики DNSSEC для зоны, BIND автоматически выполняет следующие действия:
создает ключи;
подписывает зону;
поддерживает зону, включая повторную подпись и периодическую замену ключей.
Примечание
Чтобы разрешить внешним DNS-серверам проверять подлинность зоны, необходимо добавить открытый ключ зоны в «родительскую зону» (текущий каталог. Каждая выполняемая программа «работает» в строго определенном каталоге файловой системы. Такой каталог называется текущим каталогом, можно представлять, что программа во время работы «находится» именно в этом каталоге, это ее «рабочее место»). Обратитесь к своему поставщику домена или в реестр для получения более подробной информации о том, как это сделать.
Эта процедура использует встроенную политику DNSSEC по умолчанию в BIND. Эта политика использует единственные подписи ключей ECDSAP256SHA. В качестве альтернативы создайте свою собственную политику для использования пользовательских ключей, алгоритмов и таймингов.
Предварительные условия |
|---|
- Установлен BIND 9.16 или более поздней версии. Чтобы выполнить это требование, установите пакет |
- Зона, для которой можно включить DNSSEC, настроена |
- Запущена служба |
- Сервер синхронизирует время с сервером времени. Точное системное время важно для проверки DNSSEC |
Для подписания зоны DNSSEC с использованием функций автоматической генерации ключей выполните следующие шаги:
Отредактируйте файл
/etc/named.confи добавьтеdnssec-policy default;в зону, для которой можно включить DNSSEC:zone "example.ru" { ... dnssec-policy default; };Перезагрузите BIND:
systemctl reload namedЕсли запускается BIND в среде с измененным пользователем с административными полномочиями, используйте
systemctl reload named-chrootкоманду для перезагрузки службы.BIND хранит открытый ключ в
/var/named/K<zone_name>.+< algorithm>+<key_ID>.keyфайле. Используйте этот файл для отображения открытого ключа зоны в формате, который требуется «родительской зоне»:Формат записи DS:
dnssec-dsfromkey /var/named/Kexample.ru.+013+61141.key example.ru. IN DS 61141 13 2 3E184188CF6000007CFEE8D0195AACBD00000068BAE0000008B4B1B0000Формат DNSKEY:
grep DNSKEY /var/named/Kexample.ru.+013+61141.key example.ru. 3600 IN DNSKEY 257 3 13 sjzT3jNEp120aSO4mPEHHSkReHUf7AABNnT8hNRTzD5cKMQSjDJin2I3 5CaKVcWO1pm+HltxUEt+X9dfp8OZkg==Запросите добавить открытый ключ зоны в «родительскую зону». Обратитесь к поставщику домена или в реестр для получения дополнительной информации о том, как это сделать.
Для проверки выполните следующий сценарий:
Запросите у собственного DNS-сервера запись из зоны, для которой включена подпись DNSSEC:
dig +dnssec +short @localhost A www.example.ru <ip-address10> А 13 3 28800 20220718081258 20220705120353 61141 example.ru . e7Cfh6GuOBMAWsgsHSVTPh+JJSOI/Y6zctzIuqIU1JqEgOOAfL/Qz474 M0sgi54m1Kmnr2ANBKJN9uvOs5eXYw==В этом примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в
localhostинтерфейсе.После добавления открытого ключа в «родительскую зону» и распространения его на другие серверы убедитесь, что сервер устанавливает флаг
authenticated data (ad)для запросов к подписанной зоне:dig @localhost example.ru +dnssec ... ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ...
Настройка передачи зон между DNS-серверами BIND#
Передача зон гарантирует, что все DNS-серверы, на которых есть копия зоны, используют актуальные данные.
Предварительные условия |
|---|
- На будущем основном сервере зона, для которой необходимо настроить передачу зон, уже настроена |
- На будущем вторичном сервере BIND уже настроена, например, как сервер имен кеширования |
- На обоих серверах запущена служба |
Чтобы настроить передачу зон между DNS-серверами, выполните следующие шаги:
На существующем основном сервере:
Создайте общий ключ и добавьте его в файл
/etc/named.conf:
tsig-keygen example-transfer-key | tee -a /etc/named.conf key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };Эта команда отображает выходные
tsig-keygenданные команды и автоматически добавляет их к/etc/named.conf.Вывод команды потребуется позже и на вторичном сервере.
Отредактируйте определение зоны в
/etc/named.confфайле. Вallow-transferинструкции определите, что серверы должны предоставлять ключ, указанный вexample-transfer-keyинструкции, для передачи зоны:
zone "example.ru" { ... allow-transfer { key example-transfer-key; }; };При необходимости используйте псевдонимы списка управления доступом (ACL) в
allow-transferинструкции.По умолчанию после обновления зоны BIND уведомляет все серверы имен, у которых есть запись сервера имен (NS) в этой зоне. Если не планируете добавлять NS запись для дополнительного сервера в зону, можно настроить, чтобы BIND уведомляла этот сервер в любом случае. Для этого добавьте в
also-notifyзону инструкцию с IP-адресами этого вторичного сервера:
zone "example.ru" { ... also-notify { <ip-address8>; 2001:db8:1::2; }; };Проверьте синтаксис
/etc/named.confфайла:
named-checkconfЕсли команда не выводит никаких выходных данных, значит, синтаксис правильный.
Перезагрузите BIND:
systemctl reload namedЕсли запущена BIND в среде с измененным корневым каталогом, используйте команду
systemctl reload named-chrootдля перезагрузки службы.На будущем вторичном сервере:
Отредактируйте
/etc/named.confфайл следующим образом:Добавьте то же определение ключа, что и на основном сервере.
key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };Добавьте определение зоны в
/etc/named.confфайл.zone "example.ru" { type slave; file "slaves/example.ru.zone"; allow-query { any; }; allow-transfer { none; }; masters { <ip-address> key example-transfer-key; 2001:db8:1::1 key example-transfer-key; }; };
Эти настройки указывают:
Этот сервер является вторичным сервером (типа
slave) дляexample.ruзоны:Файл
/var/named/slaves/example.ru .zoneявляется файлом зоны. Если задается относительный путь, как в этом примере, этот путь относится к каталогу, который задан в разделеdirectoryв инструкцииoptions. Чтобы отделить файлы зоны, для которых этот сервер является вторичным, от первичных, сохранить их, например, в каталоге/var/named/slaves/.Любой хост может запросить эту зону. В качестве альтернативы, укажите диапазоны IP-адресов или псевдонимы ACL, чтобы ограничить доступ.
Ни один хост не может перенести зону с этого сервера.
IP-адреса основного сервера этой зоны -
<ip-address>и2001:db8:1::2. В качестве альтернативы можно указать псевдонимы ACL. Этот вторичный сервер будет использовать ключ с именемexample-transfer-keyдля аутентификации на первичном сервере.
Проверьте синтаксис файла
/etc/named.conf:
named-checkconfПерезагрузите BIND:
systemctl reload namedЕсли запускаете BIND в среде с измененным пользователем с административными полномочиями, используйте эту
systemctl reload named-chrootкоманду для перезагрузки службы.При необходимости измените файл зоны на основном сервере и добавьте NS запись для нового дополнительного сервера.
Для проверки на вторичном сервере выполните следующий сценарий:
Отображение записей systemd журнала
namedслужбы:journalctl -u named... Jul 06 15:08:51 ns2.example.ru named[2024]: zone example.ru/IN: Transfer started. Jul 06 15:08:51 ns2.example.ru named[2024]: transfer of 'example.ru/IN' from <ip-address>#53: connected using <ip-address8>#45803 Jul 06 15:08:51 ns2.example.ru named[2024]: zone example.ru/IN: transferred serial 2022070101Jul 06 15:08:51 ns2.example.ru named[2024]: transfer of 'example.ru/IN' from <ip-address>#53: Transfer status: success Jul 06 15:08:51 ns2.example.ru named[2024]: transfer of 'example.ru/IN' from <ip-address>#53: Transfer completed: 1 messages, 29 records, 2002 bytes, 0.003 secs (667333 bytes/sec)Если запускаете BIND в среде с изменяемым пользователем с административными полномочиями, используйте эту
journalctl -u named-chrootкоманду для отображения записей журнала.Убедитесь, что BIND создал файл зоны:
ls -l /var/named/slaves/ total 4 -rw-r--r--. 1 named named 2736 Jul 6 15:08 example.ru.zoneОбратите внимание, что по умолчанию вторичные серверы хранят файлы зон в двоичном формате
raw.Запросите запись о перенесенной зоне с сервера-получателя:
dig +short @<ip-address8> AAAA www.example.ru 2001:db8:1::30В приведенном выше примере предполагается, что вторичный сервер, который настроен в этой процедуре, прослушивает IP - адрес
<ip-address8>.
Настройка зон политики ответа в BIND для переопределения записей DNS#
Используя блокировку и фильтрацию DNS, администраторы могут переписать DNS-ответ, чтобы заблокировать доступ к определенным доменам или хостам. В BIND зоны политики реагирования (RPZS) предоставляют эту функцию. Можно настроить различные действия для заблокированных записей, такие как возврат ошибки NXDOMAIN или отсутствие ответа на запрос.
Если в среде имеется несколько DNS-серверов, используйте эту процедуру для настройки RPZ на основном сервере, а затем настройте передачу зон, чтобы сделать RPZ доступной на вторичных серверах.
Предварительные условия |
|---|
- BIND уже настроен, например, как кеширующий сервер имен |
- Запущена служба named или |
Для настройки зон политики ответа выполните следующий сценарий:
Отредактируйте файл
/etc/named.confи внесите следующие изменения:Добавьте определение политики ответа в
optionsинструкцию:
options { ... response-policy { zone "rpz.local"; }; ... }Можно задать пользовательское имя для RPZ в zone инструкции
in response-policy. Однако на следующем шаге необходимо использовать то же имя в определении зоны.Добавьте
zoneопределение для RPZ, которое задано на предыдущем шаге:
zone "rpz.local" { type master; file "rpz.local"; allow-query { localhost; <ip-address2>/24; 2001:db8:1::/64; }; allow-transfer { none; }; };Эти настройки указывают:
Этот сервер является основным сервером (тип master) для RPZ с именем
rpz.local.Файл
/var/named/rpz.localявляется файлом зоны. Если задан относительный путь, как в этом примере, этот путь относится к каталогу, который задан в разделеdirectoryв инструкцииoptions.Любые хосты, определенные в
allow-query, могут запрашивать этот RPZ. В качестве альтернативы, укажите диапазоны IP-адресов или BIND псевдонимы списка управления доступом (ACL), чтобы ограничить доступ.Ни один хост не может перенести зону. Разрешайте передачу зон только при настройке вторичных серверов и только для IP-адресов вторичных серверов.
Проверьте синтаксис
/etc/named.confфайла:named-checkconfЕсли команда не выводит никаких выходных данных, значит, синтаксис правильный.
Создайте
/var/named/rpz.localфайл, например, со следующим содержимым:$TTL 10m @ IN SOA ns1.example.ru. hostmaster.example.ru. ( 2022070601 ; serial number 1h ; refresh period 1m ; retry period 3d ; expire time 1m ) ; minimum TTL IN NS ns1.example.ru. example.org IN CNAME . *.example.org IN CNAME . example.net IN CNAME rpz-drop. *.example.net IN CNAME rpz-drop.Этот файл зоны:
Устанавливает значение времени действия по умолчанию (TTL) для записей ресурсов равным 10 минутам. Без суффикса времени, такого как h для обозначения часа, BIND интерпретирует значение как секунды.
Содержит требуемую запись ресурса
start of authority (SOA)с подробной информацией о зоне.Содержит наборы
ns1.example.ruв качестве авторитетного DNS-сервера для этой зоны. Чтобы зона функционировала, требуется одна запись сервера имен (NS). Однако, чтобы быть совместимым с RFC 1912, требуется две записи сервера имен.Возвращает ошибку
NXDOMAINдля запросов кexample.orgи хосты в этом домене.Отбрасывает запросы в
example.netи хосты в этом домене.
Проверьте синтаксис файла
/var/named/rpz.local:named-checkzone rpz.local /var/named/rpz.local zone rpz.local/IN: loaded serial 2022070601 OKПерезагрузите BIND:
systemctl reload namedEсли запущен BIND в среде с измененным пользователем с административными полномочиями, используйте команду
systemctl reload named-chrootдля перезагрузки службы.
Для проверки выполните следующие шаги:
Разрешите узел в
example.org, который настроен в RPZ для возврата ошибкиNXDOMAIN:dig @localhost www.example.org ... ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 30286 ...В приведенном выше примере предполагается, что BIND выполняется на том же хосте и отвечает на запросы в интерфейсе
localhost.Попытка разрешить узел в
example.netдомен, который настроен в RPZ для отбрасывания запросов, приведена ниже:dig @localhost www.example.net ... ;; connection timed out; no servers could be reached ...
Инфраструктурные сервисы#
Synce4l
В системе присутствует synce4l – пакет для частотной синхронизации, который обеспечивает поддержку SyncE. SyncE (синхронный Ethernet) - это аппаратная функция, которая позволяет PTP-тактам достигать точной синхронизации частоты на физическом уровне. Синхронизация поддерживается в некоторых сетевых интерфейсных платах (NIC) и сетевых коммутаторах.
tuned версии 2.20.0
tuned - настроенная утилита для оптимизации производительности приложений и рабочих нагрузок.
Расширение API перемещает устройства между экземплярами подключаемых модулей во время выполнения.
Модуль
plugin_cpu, который обеспечивает точную настройку параметров производительности, связанных с процессором, содержит следующие возможности:Функция
pm_qos_resume_latency_usпозволяет ограничить максимальное время, разрешенное каждому процессору для перехода из состояния ожидания в активное состояние;Tuned поддерживает драйвер масштабирования
intel_pstate, который предоставляет алгоритмы масштабирования для настройки управления питанием систем на основе различных сценариев использования.
API сокетов для управления настройками через доменный сокет Unix доступен в качестве предварительного просмотра технологии.
Настройка несвязанного DNS-сервера#
DNS-сервер unbound - это проверяющий, рекурсивный и кеширующий преобразователь DNS. Кроме того, основное внимание unbound уделяется безопасности и по умолчанию включает расширения безопасности доменных имен (DNSSEC).
Настройка Unbound в качестве кеширующего DNS-сервера#
По умолчанию служба DNS unbound разрешает и кеширует успешные и неудачные запросы. Затем служба отвечает на запросы к тем же записям из своего кеша. Для настройки выполните следующие шаги:
Установите
unboundпакет:yum install unboundОтредактируйте
/etc/unbound/unbound.confфайл и внесите следующие изменения вserverпредложение:Добавьте
interfaceпараметры, на каких IP-адресах службаunboundпрослушивает запросы, например:
interface: 127.0.0. interface: <ip-address> interface: 2001:db8:1::1С этими настройками
unboundпрослушивает только указанные адреса IPv4 и IPv6.Ограничение интерфейсов не позволяет клиентам из неавторизованных сетей, таких как Интернет, отправлять запросы на этот DNS-сервер.
Добавьте
access-controlпараметры для настройки, из каких подсетей клиенты могут запрашивать службу DNS, например:
access-control: 127.0.0.0/8 allow access-control: <ip-address2>/24 allow access-control: 2001:db8:1::/64 allowСоздайте закрытые ключи и сертификаты для удаленного управления
unbound:systemctl restart unbound-keygenЕсли пропустили этот шаг, проверка конфигурации на следующем шаге приведет к обнаружению отсутствующих файлов. Однако
unboundавтоматически создает файлы, если они отсутствуют.Проверьте файл конфигурации:
unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.confОбновите правила межсетевого экрана, чтобы разрешить входящий DNS-трафик:
firewall-cmd --permanent --add-service=dns firewall-cmd --reloadВключите и запустите unbound службу:
systemctl enable --now unbound
Для проверки выполните следующий сценарий:
Запросите
unboundDNS-сервер, прослушивающий *localhost интерфейс, чтобы разрешить домен:dig @localhost www.example.ru ... www.example.ru. 86400 IN A <ip-address7> ;; Query time: 330 msec ...После первого запроса записи
unboundдобавляет запись в свой кеш.Повторите предыдущий запрос:
dig @localhost www.example.ru ... www.example.ru. 85332 IN A <ip-address7> ;; Query time: 1 msec ...
Из-за кешированной записи дальнейшие запросы к той же записи выполняются значительно быстрее, пока срок действия записи не истечет.
Следующие шаги:
Настройте клиентов в сети на использование этого DNS-сервера. Например, используйте nmcli утилиту для установки IP-адреса DNS-сервера в NetworkManager профиле подключения:
nmcli connection modify Example_Connection ipv4.dns <ip-address>
nmcli connection modify Example_Connection ipv6.dns 2001:db8:1::1
Предоставление DHCP-сервисов#
Протокол динамической настройки хоста (DHCP) - это сетевой протокол, который автоматически присваивает IP-информацию клиентам.
В этом разделе объясняется общая информация о службе dhcpd, а также о том, как настроить DHCP-сервер и DHCP-ретранслятор.
Если процедура требует различных шагов для предоставления DHCP в сетях IPv4 и IPv6, разделы этой главы содержат процедуры для обоих протоколов.
Разница между статической и динамической IP-адресацией#
Статическая IP-адресация#
Когда устройству назначен статический IP-адрес, адрес не меняется с течением времени, если не изменить его вручную. Используйте статическую IP-адресацию, если необходимо:
обеспечить согласованность сетевых адресов для таких серверов, как DNS и серверов аутентификации;
использовать устройства внеполосного управления, которые работают независимо от другой сетевой инфраструктуры.
Динамическая IP-адресация#
Когда устройство настраивается на использование динамического IP-адреса, адрес может меняться с течением времени. По этой причине динамические адреса обычно используются для устройств, которые время от времени подключаются к сети, поскольку IP-адрес может отличаться после перезагрузки хоста.
Динамические IP-адреса более гибкие, их проще настраивать и администрировать. Протокол динамического управления хостом (DHCP) - это традиционный метод динамического назначения сетевых конфигураций хостам.
Примечание
Не существует строгого правила, определяющего, когда использовать статические или динамические IP-адреса. Это зависит от потребностей пользователя, предпочтений и сетевой среды.
Фазы транзакции DHCP#
DHCP работает в четыре этапа: обнаружение, предложение, запрос, подтверждение, также называемый процессом DORA. DHCP использует этот процесс для предоставления IP-адресов клиентам.
Обнаружение:
DHCP-клиент отправляет сообщение для обнаружения DHCP-сервера в сети. Это сообщение транслируется на сетевом уровне и уровне канала передачи данных.
Предложение:
DHCP-сервер получает сообщения от клиента и предлагает IP-адрес DHCP-клиенту. Это сообщение является одноадресным на уровне канала передачи данных, но широковещательным на сетевом уровне.
Запрос:
DHCP-клиент запрашивает у DHCP-сервера предлагаемый IP-адрес. Это сообщение является одноадресным на уровне канала передачи данных, но широковещательным на сетевом уровне.
Подтверждение:
DHCP-сервер отправляет подтверждение DHCP-клиенту. Это сообщение является одноадресным на уровне канала передачи данных, но широковещательным на сетевом уровне. Это заключительное сообщение процесса DHCP DORA.
Различия при использовании dhcpd для DHCPv4 и DHCPv6#
Служба dhcpd поддерживает предоставление как DHCPv4, так и DHCPv6 на одном сервере. Однако нужен отдельный экземпляр dhcpd с отдельными файлами конфигурации, чтобы обеспечить DHCP для каждого протокола.
DHCPv4
Файл конфигурации:
/etc/dhcp/dhcpd.confИмя службы Systemd: *dhcpd
DHCPv6
Файл конфигурации:
/etc/dhcp/dhcpd6.confИмя службы Systemd: *dhcpd6
База данных аренды сетевого адреса службой dhcpd#
Аренда DHCP - это период времени, на который служба dhcpd выделяет сетевой адрес клиенту. Служба dhcpd хранит договоры аренды DHCP (list leases) в следующих базах данных:
Для DHCPv4: /var/lib/dhcpd/dhcpd.leases
Для DHCPv6: /var/lib/dhcpd/dhcpd6.leases
Ручное обновление файлов базы данных может привести к повреждению баз данных.
Базы данных аренды содержат информацию о выделенных договорах аренды, такую как IP-адрес, присвоенный адресу управления доступом к мультимедиа (MAC), или отметка времени истечения срока аренды. Обратите внимание, что все временные метки в базах данных аренды указаны по Всемирному координированному времени (UTC).
Служба dhcpd периодически воссоздает базы данных:
Служба переименовывает существующие файлы:
/var/lib/dhcpd/dhcpd.leasesв/var/lib/dhcpd/dhcpd.leases~;/var/lib/dhcpd/dhcpd6.leasesв/var/lib/dhcpd/dhcpd6.leases~.
Служба записывает все известные договоры аренды во вновь созданные файлы:
/var/lib/dhcpd/dhcpd.leases и /var/lib/dhcpd/dhcpd6.leases.
Сравнение DHCPv6 с radvd#
В сети IPv6 только рекламные сообщения маршрутизатора предоставляют информацию о шлюзе IPv6 по умолчанию. Как следствие, если можно использовать DHCPv6 в подсетях, для которых требуется настройка шлюза по умолчанию, необходимо дополнительно настроить службу рекламы маршрутизатора, такую как демон рекламы маршрутизатора (radvd).
Служба radvd использует флаги в рекламных пакетах маршрутизатора, чтобы объявить о доступности сервера DHCPv6.
В этом разделе сравниваются DHCPv6 и radvd и предоставляется информация о настройке radvd (см. таблицу ниже).
Параметр |
DHCPv6 |
radvd |
|---|---|---|
Предоставляет информацию о шлюзе по умолчанию |
НЕТ |
ДА |
Гарантирует случайные адреса для защиты конфиденциальности |
ДА |
НЕТ |
Отправляет дополнительные параметры конфигурации сети |
ДА |
НЕТ |
Сопоставляет адреса управления доступом к мультимедиа (MAC) с адресами IPv6 |
ДА |
НЕТ |
Настройка службы radvd для маршрутизаторов IPv6#
Демон рекламы маршрутизатора (radvd) отправляет рекламные сообщения маршрутизатора, которые требуются для автоматической настройки IPv6 без состояния. Это позволяет пользователям автоматически настраивать свои адреса, параметры, маршруты и выбирать маршрутизатор по умолчанию на основе этих рекламных объявлений.
Примечание
Можно устанавливать только /64 префиксы в radvd сервисе. Чтобы использовать другие префиксы, используйте DHCPv6.
Процедура, описанная в этом разделе, объясняет как выполнить настройку radvd:
Установите
radvdупаковку:yum install radvdОтредактируйте
/etc/radvd.confфайл и добавьте следующую конфигурацию:interface enp1s0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2001:db8:0:1::/64 { }; };Эти параметры настраивают
radvdна отправку сообщений маршрутизатора на устройство enp1s0 для подсети 2001:db8:0:1::/64. ПараметрAdvManagedFlagonопределяет, что клиент должен получать IP-адрес от DHCP-сервера, а параметрAdvOtherConfigFlag, установленный в значениеon, определяет, что клиенты должны получать неадресную информацию от DHCP-сервера.При необходимости настройте, чтобы
radvdавтоматически запускался при загрузке системы:systemctl enable radvdЗапустите radvd службу:
systemctl start radvdПри необходимости отобразите содержимое рекламных пакетов маршрутизатора и отправьте настроенные значения radvd:
radvdump
Настройка сетевых интерфейсов для DHCP-серверов#
По умолчанию служба dhcp обрабатывает запросы только на сетевых интерфейсах, которые имеют IP-адрес в подсети, определенной в файле конфигурации службы.
Например, в следующем сценарии dhcpd прослушивает только сетевой enp0s1 интерфейс:
определение подсети существует для сети
<ip-address2>/24 в файле/etc/dhcp/dhcpd.conf.сетевой интерфейс
enp0s1подключен к подсети<ip-address2>/24.интерфейс
enp7s0подключен к другой подсети.
Следуйте процедуре, описанной в этом разделе, только в том случае, если DHCP-сервер содержит несколько сетевых интерфейсов, подключенных к одной сети, и служба должна прослушивать только определенные интерфейсы.
В зависимости от того, нужно ли предоставить DHCP для IPv4, IPv6 или обоих протоколов, см. процедуру для:
Сети IPv4
Сети IPv6
Для настройки сетевых интерфейсов выполните следующие действия:
Для сетей IPv4:
Скопируйте
/usr/lib/systemd/system/dhcpd.serviceфайл в каталог/etc/systemd/system/:cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/Не редактируйте файл
/usr/lib/systemd/system/dhcpd.service.Будущие обновления пакетаdhcp-сервера могут переопределить изменения.Отредактируйте файл
/etc/systemd/system/dhcpd.serviceи добавьте имена интерфейса, которыйdhcpdдолжен прослушивать для команды вExecStartпараметре:ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1enp7s0В этом примере настраивается возможность dhcpd прослушивать только
enp0s1иenp7s0.Перезагрузите конфигурацию системного менеджера:
systemctl daemon-reloadПерезапустите службу dhcpd:
systemctl restart dhcpd.service
Для сетей IPv6:
Скопируйте файл
/usr/lib/systemd/system/dhcpd6.serviceв каталог/etc/systemd/system/:cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/Не редактируйте файл
/usr/lib/systemd/system/dhcpv6.service. Будущие обновления пакетаdhcp-сервера могут переопределить изменения.Отредактируйте файл
/etc/systemd/system/dhcpd6.serviceи добавьте имена интерфейса, который dhcpd должен прослушивать для команды в параметреExecStart:ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1enp7s0В этом примере настраивается, что dhcpd прослушивает только
enp0s1иenp7s0.Перезагрузите конфигурацию системного менеджера:
systemctl daemon-reloadПерезапустите dhcpd6 службу:
systemctl restart dhcpd6.service
Настройка службы DHCP для подсетей, напрямую подключенных к серверу DHCP#
Используйте следующую процедуру, если DHCP-сервер напрямую подключен к подсети, для которой сервер должен отвечать на запросы DHCP. Это происходит в том случае, если сетевому интерфейсу сервера присвоен IP-адрес этой подсети.
В зависимости от того, нужно ли предоставить DHCP для IPv4, IPv6 или обоих протоколов, см. процедуру для:
Сети IPv4.
Сети IPv6.
Для настройки сетевых интерфейсов выполните следующие действия:
Для сетей IPv4:
Отредактируйте файл
/etc/dhcp/dhcpd.conf:При необходимости добавьте глобальные параметры, которые dhcpd использует по умолчанию, если никакие другие директивы не содержат этих параметров:
option domain-name "example.ru"; default-lease-time 86400;В этом примере задается доменное имя по умолчанию для подключения к
example.ru, а время аренды по умолчанию равно 86400 секундам (1 день).Добавьте авторитетное утверждение в новую строку:
authoritative;Примечание
Без утверждения
authorityслужба dhcpd не отвечает на сообщенияDHCPREQUESTс помощьюDHCPNAK, если клиент запрашивает адрес, который находится за пределами пула.Для каждой подсети IPv4, непосредственно подключенной к интерфейсу сервера, добавьте объявление подсети:
subnet <ip-address2> netmask <ip-address15> { range <ip-address11> <ip-address13>; option domain-name-servers <ip-address>; option routers <ip-address>; option broadcast-address <ip-address14>; max-lease-time 172800; }В этом примере добавляется объявление подсети для сети
<ip-address2>/24. При такой конфигурации DHCP-сервер назначает следующие параметры клиенту, который отправляет DHCP-запрос из этой подсети:свободный IPv4-адрес из диапазона, определенного в параметре range;
IP DNS-сервера для этой подсети:
<ip-address>;шлюз по умолчанию для этой подсети:
<ip-address>;широковещательный адрес для этой подсети:
<ip-address14>;максимальное время аренды IP-адреса, по истечении которого клиенты в этой подсети освобождают IP и отправляют новый запрос на сервер:
172800секунд (2 дня).
При необходимости настройте, чтобы dhcpd запускался автоматически при загрузке системы:
systemctl enable dhcpdЗапустите dhcpd службу:
systemctl start dhcpd
Для сетей IPv6:
Отредактируйте
/etc/dhcp/dhcpd6.confфайл:При необходимости добавьте глобальные параметры, которые dhcpd использует по умолчанию, если никакие другие директивы не содержат этих параметров:
option dhcp6.domain-search "example.ru"; default-lease-time 86400;В этом примере задается доменное имя по умолчанию для подключения к
example.ru, а время аренды по умолчанию равно86400секундам (1 день).Добавьте авторитетное утверждение в новую строку:
authoritative;Примечание
Без утверждения
authorityслужба dhcpd не отвечает на сообщенияDHCPREQUESTс помощьюDHCPNAK, если клиент запрашивает адрес, который находится за пределами пула.Для каждой подсети IPv6, непосредственно подключенной к интерфейсу сервера, добавьте объявление подсети:
subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::20 2001:db8:0:1::100; option dhcp6.name-servers 2001:db8:0:1::1; max-lease-time 172800; }В этом примере добавляется объявление подсети для сети
2001:db8:0:1::/64. При такой конфигурации DHCP-сервер назначает следующие параметры клиенту, который отправляет DHCP-запрос из этой подсети:Свободный IPv6-адрес из диапазона, определенного в параметре range 6.
IP DNS-сервера для этой подсети -
2001:db8:0:1::1.Максимальное время аренды IP-адреса, по истечении которого клиенты в этой подсети освобождают IP и отправляют новый запрос на сервер, составляет 172800 секунд (2 дня).
Обратите внимание, что IPv6 требует использования рекламных сообщений маршрутизатора для идентификации шлюза по умолчанию.
При необходимости настройте, чтобы
dhcpv6запускался автоматически при загрузке системы:systemctl enable dhcpd6Запустите службу dhcpv6:
systemctl start dhcpd6
Настройка службы DHCP для подсетей, не подключенных напрямую к DHCP-серверу#
Используйте следующую процедуру, если DHCP-сервер напрямую не подключен к подсети, для которой сервер должен отвечать на запросы DHCP. Это необходимо, если агент ретрансляции DHCP пересылает запросы на DHCP-сервер, поскольку ни один из интерфейсов DHCP-сервера напрямую не подключен к подсети, которую должен обслуживать сервер.
В зависимости от того, нужно ли предоставить DHCP для IPv4, IPv6 или обоих протоколов, см. Процедуру для:
Сети IPv4
Сети IPv6
Для настройки службы DHCP для подсетей выполните следующие действия:
Для сетей IPv4:
Отредактируйте файл
/etc/dhcp/dhcpd.conf.При необходимости добавьте глобальные параметры, которые dhcpd использует по умолчанию, если никакие другие директивы не содержат этих параметров:
option domain-name "example.ru"; default-lease-time 86400;В этом примере задается доменное имя по умолчанию для подключения к
example.ru, а время аренды по умолчанию равно86400секундам (1 день).Добавьте авторитетное утверждение в новую строку:
authoritative;Примечание
Без утверждения
authorityслужба dhcpd не отвечает на сообщенияDHCPREQUESTс помощьюDHCPNAK, если клиент запрашивает адрес, который находится за пределами пула.Добавьте объявление общей сети, например следующее, для подсетей IPv4, которые напрямую не подключены к интерфейсу сервера:
shared-network example { option domain-name-servers <ip-address>; ... subnet <ip-address2> netmask <ip-address12> { range <ip-address11> <ip-address13>; option routers <ip-address>; } subnet <ip-address9> netmask <ip-address15> { range <ip-address16> <ip-address17>; option routers <ip-address5>; } ... }В этом примере добавляется объявление общей сети, которое содержит объявление подсети как для сетей
<ip-address2>/24, так и для сетей<ip-address9>/24. При такой конфигурации DHCP-сервер назначает следующие параметры клиенту, который отправляет DHCP-запрос из одной из этих подсетей:IP DNS-сервера для клиентов из обеих подсетей:
<ip-address>.Свободный IPv4-адрес из диапазона, определенного в параметре range, в зависимости от того, из какой подсети клиент отправил запрос.
Шлюз по умолчанию – либо
<ip-address>, либо<ip-address5>в зависимости от того, из какой подсети клиент отправил запрос.Добавьте объявление для подсети, к которой сервер подключен напрямую, и используйте для доступа к удаленным подсетям, указанным в разделе общая сеть выше:
subnet <ip-address18> netmask <ip-address15> { }Примечание
Если сервер не предоставляет службу DHCP для этой подсети, объявление подсети должно быть пустым, как показано в примере. Без объявления непосредственно подключенной подсети dhcpd не запускается.
При необходимости настройте, чтобы dhcpd запускался автоматически при загрузке системы:
systemctl enable dhcpdЗапустите dhcpd службу:
systemctl start dhcpd
Для сетей IPv6:
Отредактируйте файл
/etc/dhcp/dhcpd6.con.При необходимости добавьте глобальные параметры, которые dhcpd использует по умолчанию, если никакие другие директивы не содержат этих параметров:
option dhcp6.domain-search "example.ru"; default-lease-time 86400;В этом примере задается доменное имя по умолчанию для подключения к
example.ru, а время аренды по умолчанию равно86400секундам (1 день).Добавьте авторитетное утверждение в новую строку:
authoritative;Примечание
Без утверждения
authorityслужба dhcpd не отвечает на сообщенияDHCPREQUESTс помощьюDHCPNAK, если клиент запрашивает адрес, который находится за пределами пула.Добавьте объявление общей сети, например следующее, для подсетей IPv6, которые напрямую не подключены к интерфейсу сервера:
shared-network example { option domain-name-servers 2001:db8:0:1::1:1 .. subnet6 2001:db8:0:1::1:0/120 { range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100 } subnet6 2001:db8:0:1::2:0/120 { range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100 } ... }В этом примере добавляется объявление общей сети, содержащее объявление подсети 6 как для сетей
2001:db8:0:1::1:0/120, так и для сетей2001:db8:0:1::2:0/120. При такой конфигурации DHCP-сервер назначает следующие параметры клиенту, который отправляет DHCP-запрос из одной из этих подсетей:IP DNS-сервера для клиентов из обеих подсетей -
2001:db8:0:1::1:1.Свободный IPv6-адрес из диапазона, определенного в параметре
range6, в зависимости от того, из какой подсети клиент отправил запрос.
Обратите внимание, что IPv6 требует использования рекламных сообщений маршрутизатора для идентификации шлюза по умолчанию.
Добавьте объявление
subnet6для подсети, к которой сервер подключен напрямую, и используйте для доступа к удаленным подсетям, указанным выше в разделеshared-network:
subnet6 2001:db8:0:1::50:0/120 { }Примечание
Если сервер не предоставляет службу DHCP для этой подсети, объявление
subnet6должно быть пустым, как показано в примере. Без объявления непосредственно подключенной подсети dhcpd не запускается.При необходимости настройте, чтобы dhcpd6 запускался автоматически при загрузке системы:
systemctl enable dhcpd6Запустите dhcpd6 службу:
systemctl start dhcpd6
Назначение статического адреса хосту с помощью DHCP#
Используя назначение хоста, можно настроить DHCP-сервер так, чтобы тот назначал MAC-адресу фиксированный IP-адрес управления доступом к multimedia файлу хоста. Используйте этот метод, чтобы всегда назначать один и тот же IP-адрес серверу или сетевому устройству.
В зависимости от того, нужно ли настроить фиксированные адреса для IPv4, IPv6 или обоих протоколов, см. процедуру для:
Сети IPv4
Сети IPv6
Для настройки назначения статического адреса хоста выполните следующие действия:
Для сетей IPv4:
Отредактируйте файл
/etc/dhcp/dhcpd.conf:Добавьте назначение хоста:
host server.example.ru { hardware ethernet 52:54:00:72:2f:6e; fixed-address <ip-address19>; }В этом примере DHCP-сервер настраивается таким образом, чтобы он всегда назначал IP-адрес
<ip-address19>хосту с MAC-адресом 52:54:00:72:2f:6e.Служба dhcpd идентифицирует системы по MAC-адресу, указанному в параметре фиксированного адреса, а не по имени в объявлении хоста. Как следствие, можно присвоить этому имени любую строку, которая не соответствует другим назначениям хоста. Чтобы настроить одну и ту же систему для нескольких сетей, используйте другое имя, в противном случае dhcpd не запустится.
При необходимости добавьте дополнительные настройки к назначению хоста, которые специфичны для этого хоста.
Перезапустите службу dhcpd:
systemctl start dhcpd
Для сетей IPv6:
Отредактируйте файл
/etc/dhcp/dhcpd6.conf:Добавьте назначение хоста:
host server.example.ru { hardware ethernet 52:54:00:72:2f:6e; fixed-address6 2001:db8:0:1::200; }В этом примере DHCP-сервер настраивается так, чтобы он всегда назначал хосту IP-адрес 2001:db8:0:1::20 с MAC-адресом 52:54:00:72:2f:6e.
Служба dhcpd идентифицирует системы по MAC-адресу, указанному в параметре
fixed-address6, а не по имени в объявлении хоста. Как следствие, можно присвоить этому имени любую строку, если оно уникально для других объявлений хоста. Чтобы настроить одну и ту же систему для нескольких сетей, используйте другое имя, поскольку в противном случае dhcpd не запустится.При необходимости добавьте дополнительные настройки к объявлению хоста, которые специфичны для этого хоста.
Перезапустите службу dhcpd6:
systemctl start dhcpd6
Использование объявления группы для одновременного применения параметров к нескольким хостам, подсетям и общим сетям#
Используя назначение группы, можно применить одни и те же параметры к нескольким хостам, подсетям и общим сетям.
Обратите внимание, что процедура в этом разделе описывает использование назначения группы для узлов, но шаги одинаковы для подсетей и общих сетей.
В зависимости от того, нужно ли настроить группу для IPv4, IPv6 или обоих протоколов, см. процедуру для:
Сети IPv4.
Сети IPv6.
Для настройки объявлений группы для одновременного применения параметров к нескольким хостам выполните следующие действия:
Для сетей IPv4:
Отредактируйте
/etc/dhcp/dhcpd.confфайл:Добавьте групповое объявление:
group { option domain-name-servers <ip-address>; host server1.example.ru { hardware ethernet 52:54:00:72:2f:6e; fixed-address <ip-address19>; } host server2.example.ru { hardware ethernet 52:54:00:1b:f3:cf; fixed-address <ip-address20>; } }Это определение группы объединяет две записи хоста. Служба dhcpd применяет значение, заданное в параметре
option domain-name-servers, к обоим хостам в группе.При необходимости добавьте дополнительные параметры к объявлению группы, которые специфичны для этих узлов.
Перезапустите службу dhcpd:
systemctl start dhcpd
Для сетей IPv6:
Отредактируйте
/etc/dhcp/dhcpd6.confфайл:Добавьте групповое объявление:
group { option dhcp6.domain-search "example.ru"; host server1.example.ru { hardware ethernet 52:54:00:72:2f:6e; fixed-address 2001:db8:0:1::200; } host server2.example.ru { hardware ethernet 52:54:00:1b:f3:cf; fixed-address 2001:db8:0:1::ba3; } }Это определение группы объединяет две записи хоста. Служба dhcpd применяет значение, заданное в параметре
option dhcp6.domain-search, к обоим хостам в группе.При необходимости добавьте дополнительные параметры к объявлению группы, которые специфичны для этих узлов.
Перезапустите dhcpd6 службу:
systemctl start dhcpd6
Восстановление поврежденной базы данных аренды#
Если DHCP-сервер регистрирует ошибку, связанную с lease database (базой данных аренды), например, Corrupt lease file - possible data loss! (поврежденный файл аренды – возможна потеря данных!), Можно восстановить базу данных аренды из копии, созданной службой dhcpd. Обратите внимание, что эта копия может не отражать последнее состояние базы данных.
Если удаляется база данных аренды вместо того, чтобы заменить ее резервной копией, теряется вся информация о назначенных в данный момент договорах аренды. Как следствие, DHCP-сервер может назначать договоры аренды клиентам, которые ранее были назначены другим хостам и срок действия их еще не истек. Это приводит к конфликтам IP-адресов.
В зависимости от того, нужно ли восстановить DHCPv4, DHCPv6 или обе базы данных, см. процедуру для:
Восстановление базы данных аренды DHCPv4.
Восстановление базы данных аренды DHCPv6.
Для восстановления базы данных аренды DHCPv4 выполните следующие действия:
Остановите службу dhcpd:
systemctl stop dhcpdПереименуйте поврежденную базу данных аренды:
mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corruptВосстановите копию базы данных аренды, созданную службой dhcp при обновлении базы данных аренды:
cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leasesПримечание
Если существует более свежая резервная копия базы данных аренды, восстановите резервную копию.
Запустите службу dhcpd:
systemctl start dhcpd
Для восстановления базы данных аренды DHCPv6 выполните следующие действия:
Остановите службу dhcpd6:
systemctl stop dhcpd6Переименуйте поврежденную базу данных аренды:
mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corruptВосстановите копию базы данных аренды, созданную службой dhcp при обновлении базы данных аренды:
cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leasesПримечание
Если существует более свежая резервная копия базы данных аренды, восстановите резервную копию.
Запустите службу dhcpd6:
systemctl start dhcpd6
Настройка агента ретрансляции DHCP#
Агент ретрансляции DHCP (dhcrelay) позволяет ретранслировать запросы DHCP и BOOTP из подсети, в которой нет DHCP-сервера, на один или несколько DHCP-серверов в других подсетях. Когда DHCP-клиент запрашивает информацию, агент ретрансляции DHCP перенаправляет запрос в указанный список DHCP-серверов. Когда DHCP-сервер возвращает ответ, агент ретрансляции DHCP пересылает этот запрос клиенту.
В зависимости от того, нужно ли настроить ретрансляцию DHCP для IPv4, IPv6 или обоих протоколов, см. Процедуру для:
Сети IPv4.
Сети IPv6.
Для настройки агента ретрансляции выполните следующие действия:
Для сетей IPv4:
Установите пакет
dhcp-relay:yum install dhcp-relayСкопируйте файл
/lib/systemd/system/dhcrelay.serviceв/etc/systemd/system/каталог:cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/Не редактируйте файл
/usr/lib/systemd/system/dhcrelay.service. Будущие обновления пакетаdhcp-relayмогут переопределить изменения.Отредактируйте файл
/etc/systemd/system/dhcrelay.serviceи добавьте параметр интерфейса-iвместе со списком IP-адресов серверов DHCPv4, которые отвечают за подсеть:ExecStart=/usr/sbin/dhcrelay -d --no-pid **-i enp1s0<ip-address>С помощью этих дополнительных параметров
dhcrelayпрослушивает запросы DHCPv4 в интерфейсеenp1s0и пересылает их на DHCP-сервер с IP<ip-address>.Перезагрузите
systemd managerконфигурацию:systemctl daemon-reloadПри необходимости настройте, чтобы служба dhcrelay запускалась при загрузке системы:
systemctl enable dhcrelay.serviceЗапустите службу dhcrelay:
systemctl start dhcrelay.service
Для сетей IPv6:
Установите пакет
dhcp-relay:yum install dhcp-relayСкопируйте файл
/lib/systemd/system/dhcrelay.serviceв каталог/etc/systemd/system/и назовите файлdhcrelay6.service:cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.serviceНе редактируйте файл
/usr/lib/systemd/system/dhcrelay.service.Будущие обновления пакетаdhcp-relayмогут переопределить изменения.Отредактируйте файл
/etc/systemd/system/dhcrelay6.serviceи добавьте параметры-l receiving_interfaceи-u outgoing_interface:ExecStart=/usr/sbin/dhcrelay -d --no-pid **-l enp1s0-u enp7s0С помощью этих дополнительных параметров
dhcrelayпрослушивает запросы DHCPv6 на интерфейсеenp1s0и пересылает их в сеть, подключенную к интерфейсуenp7s0.Перезагрузите
systemd managerконфигурацию:systemctl daemon-reloadПри необходимости настройте, чтобы служба dhcrelay6 запускалась при загрузке системы:
systemctl enable dhcrelay6.serviceЗапустите службу dhcrelay6:
systemctl start dhcrelay6.service