Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 7 Следующий »

Данная статья применима к:

  • Astra Linux

Общая информация

Для повышения устойчивости работы доменных клиентов можно использовать локальное кеширование данных службы разрешения имен (DNS). Использование кеширования позволяет устранить случайные ошибки в работе клиентов, возникающие при временной недоступности серверов DNS. Кеширование может применяться в любых доменах (доменах ALD Pro/FreeIPA, Samba, Windows AD), а также на недоменных компьютерах. Далее предполагается, что управление сетью осуществляется с помощью службы NetworkManager. Для кеширования дополнительно устанавливается и используется служба dnsmasq и клиент DHCP.

Установка пакетов

Служба кеширования dnsmasq представлена пакетом dnsmasq. Клиент DHCP (далее — dhclient) представлен пакетом isc-dhcp-server (обычно установлен по умолчанию). Пакеты могут быть установлены с помощью графического менеджера пакетов synaptic или командой:

sudo apt install dnsmasq isc-dhcp-client

Настройка кеширования

Для настройки кеширования:

  1. Создать файл в каталоге /etc/dnsmasq.d/ с произвольным именем, расширением .conf и следующим содержимым:

    all-servers

    Например, файл /etc/dnsmasq.d/dnacache.conf:

    echo "all-servers" | sudo tee /etc/dnsmasq.d/dnacache.conf
    Опция all-servers включает одновременную (параллельную) отправку запросов всем серверам если первый опрошенный сервер не ответил. При этом будет использован первый полученный ответ.

  2. Служба NetworkManager по умолчанию использует собственный встроенный клиент DHCP. Для включения кеширования необходимо переключить службу NetworkManager на использование dhclient. Для этого создать файл в каталоге /etc/NetworkManager/conf.d/ с произвольным именем, расширением .conf и следующим содержимым:

    /etc/NetworkManager/conf.d/dhcp-client.conf
    [main]
    dhcp=dhclient

    Например, файл /etc/NetworkManager/conf.d/dhcp-client.conf:

    echo -e "[main]\ndhcp=dhclient" | sudo tee /etc/NetworkManager/conf.d/dhcp-client.conf

  3. Начиная с Astra Linux Special Edition x.7 dhclient при запросе сетевого адреса использует уникальный идентификатор компьютера (DUID). Служба NetworkManager для получения IP-адресов использует MAC-адрес. Если используется назначение IP-адреса сетевой службой DHCP и в конфигурации этой службы используется MAC-адрес компьютера для фиксации назначаемого IP-адреса, то необходимо переключить dhclient на использование в запросах MAC-адреса. Для этого в файл /etc/dhclient/dhclient.conf добавить параметр:
    send dhcp-client-identifier = hardware;
    Этот параметр также можно добавить для сохранения ранее получаемых службой NetworkManager IP-адресов.
  4. Настроить списки серверов DNS, к которым будут направляться запросы:
    1. Если используется автоматическое получение списка серверов DNS через службу DHCP, то включить принудительное добавление адреса локальной петли (127.0.0.1) в начало этого списка. Для этого в файл /etc/dhcp/dhclient.conf добавить строчку:

      prepend domain-name-servers 127.0.0.1;
    2. Если автоматическое получение списка серверов DNS через службу DHCP не используется, то серверы можно указать в конфигурации службы dnsmasq. Например, в созданный в соответствии с п. 1 файл /etc/dnsmasq.d/dnacache.conf добавить одну или несколько опций server:

      server=<IP-адрес_1>
      server=<IP-адрес_2>
      ...
  5. Перезапустить службы NetworkManager и dnsmasq:

    sudo systemctl restart NetworkManager dnsmasq

После выполнения указанных действий:

  1. В файле /etc/resolv.conf в качестве адреса DNS-сервера будет указан адрес локальной петли и дополнительные опции:

    # Generated by NetworkManager
    nameserver 127.0.0.1
    options edns0 trust-ad

    Где дополнительные опции:

    • edns0 — включение расширений DNS, описанных в RFC2671;

    • trust-ad — опция, управляющая обработкой бита AD в ответах серверов DNS. Установленный в ответе бит AD указывает на то, что данные в ответе были проверены в соответствии с протоколом DNSSEC. Чтобы доверять биту AD, локальная система должна доверять как серверу, проверяющему DNSSEC, так и сетевому пути к нему, поэтому требуется явное подтверждение доверия. Если опция trust-ad активна, dnsseq устанавливает бит AD в исходящих DNS-запросах (чтобы включить поддержку бита AD) и сохраняет бит AD в ответах. Без этой опции бит AD в запросах не устанавливается и всегда удаляется из ответов прежде чем они будут переданы приложению. В glibc 2.30 и более ранних версиях (Astra Linux Special Edition 1.7 и ранее) бит AD не устанавливается автоматически в запросах и передается приложениям в ответах без изменений.

  2. Локальные приложения, в соответствии с данными, указанными в файле /etc/resolv.conf, будут обращаться с запросами DNS к локальной службе DNS.
  3. Служба dnsmasq будет выполнять роль локальной службы, перенаправляя запросы серверам DNS, указанным в конфигурации dnsmasq и в файле /etc/resolv.conf (указание на службу dnsmasq при этом игнорируется).



  • Нет меток