Выпуск systemd 216 c networkctl и кэширующим DNS Resolver
Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 216, который сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux, одобрен переход дистрибутивов Debian и Ubuntu по умолчанию на systemd. Наиболее существенные изменения:
В systemd-resolved добавлена поддержка кэширования DNS-запросов и полноценная реализация LLMNR (Link Local Multicast Name Resolution). Представлен systemd-resolved D-Bus API для резолвинга имён, адресов и RR-записей через DBus. В отличие от встроенного в glibc резолвера, в systemd-resolved DNS-сервер и кэш разделены и привязаны к сетевым интерфейсам. DNS-запросы отправляются одновременно через все сетевые интерфейсы, указанные в настройках DNS-сервера (чтобы корректно обработать отдельные имена, используемые внутри VPN и LAN). Параметры для работы systemd-resolved могут быть автоматически получены от systemd-networkd, который в свою очередь может получить их по DHCP. Добавлен новый NSS-модуль «nss-resolve», который может использоваться в glibc «nss-dns» для резолвинга имён через systemd-resolved. Добавлен новый NSS-модуль nss-mymachines для автоматического резолвинга имён всех зарегистрированных локальных контейнеров. Для формирования запросов добавлена утилита «systemd-resolve-host». Обеспечена поддержка IDNA для работы с доменами, в которых используются национальные наборы символов (».рф» и т.п.). В будущем выпуске ожидается поддержка DNSSEC и mDNS/DNS-SD;
В состав включена новая утилита «networkctl», в рамках которой развивается консольный клиент для подсистемы настройки сети «networkd». В настоящее время утилита может использоваться только для получения информации о сетевых интерфейсах и их состоянии. В будущем планируется довести возможности networkctl до полнофункционального инструмента для управления сетью. В отличие от iproute2, утилита networkctl позиционируется как более высокоуровневый инструмент который осуществляет агрегацию статистики из разных источников, таких как netlink, udev, networkd и встроенный в networkd dhcp-клиент. Полученные данные комбинируются в наглядных обобщённых отчётах. В шаблоны /usr/lib/sysusers.d/, используемые утилитой systemd-sysusers для формирования содержимого /etc/passwd и /etc/group, добавлена поддержка нового типа сток конфигурации «r», применяемого для задания диапазона UID/GID, выделяемого системным пользователям и группам. В строку типа «u» добавлен столбец для определения домашней директории. В systemd-sysusers добавлена возможность загрузки шаблона из стандартного ввода (STDIN), а не только из файла. Обеспечено обновление содержимого shadow-файлов; Добавлена новая библиотека systemd-terminal, предоставляющая функции для разбора и отрисовки данных TTY. В будущем, планируется использовать данную библиотеку в новой подсистеме виртуальных терминалов, работающей в пространстве пользователя; Добавлена новая утилита systemd-journal-upload, позволяющая организовать процесс загрузки журнала на внешние системы, на которых запущен сервис systemd-journal-remote; Добавлен новый компонент «systemd-firstboot», который при первой загрузке интерактивно запрашивает у пользователя основную информацию для использования в systemd (часовой пояс, пароль root, имя хоста); В некоторых bus API, предоставляемых обработчиком PID 1, обеспечена опциональная возможность обращения к PolicyKit для получения подтверждения выполнения привилегированных операций для непривилегированных клиентов; В systemd-timesyncd добавлена поддержка автоматического получения настроек доступа к NTP-серверу через systemd-networkd, который может получить эти настойки через DHCP; В юниты .socket добавлены директивы DeferAcceptSec, KeepAliveIntervalSec, KeepAliveTimeSec, KeepAliveProbes и NoDelay для включения опций TCP-сокетов TCP_DEFER_ACCEPT, keep-alive и выключения алгоритма Nagle; В logind добавлена поддержка нового типа сеансов «web», которые можно использовать для запуска таких web-интерфейсов, как Cockpit, с регистрацией web-клиента в форме PAM-сеанса; В systemd-nspawn добавлена опция »--volatile=» для запуска контейнера без предварительно подготовленных директорий /etc и /var; Клиент kdbus переведён на использование новой подсистемы ядра Linux 3.17 memfd вместо старого варианта, привязанного к kdbus; В systemd-analyze добавлена команда «verify» для проверки unit-файлов в режиме offline; В клиент и сервер DHCP из состава systemd-networkd добавлена поддержка метода FORCERENEW и опций для настройки идентификатора клиента и broadcast-режима; В systemd-networkd добавлены дополнительные опции для настройки агрегирования сетевых интерфейсов (bonding), обеспечена возможность указания метрики для статических маршрутов. По умолчанию прекращена отправка широковещательных запросов DHCP-клиентом (для включения нужно установить опцию RequestBroadcast=yes); udev теперь в первую очередь применяет имена сетевых интерфейсов, переданных ядром, если ядро поддерживает обеспечение предсказуемости таких имён. Поведение можно изменить через настройку NamePolicy= в файлах .link; В journald добавлена поддержка сжатия с использованием алгоритма LZ4. Из-за проблем с новыми версиями rsyslog система journald теперь не перенаправляет по умолчанию все данные в работающий демон syslog. Для включения перенаправления следует использовать опцию ForwardToSyslog= в journald.conf; Добавлена новая утилита «systemd-escape» для экранирования спецсимволов в строках (например, используется для построения имён unit-ов).
© OpenNet