Выпуск systemd 216 c networkctl и кэширующим DNS Resolver
20 августа 2014 года
Леннарт Поттеринг (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. Так как наиболее распространенная реализация syslog rsyslog может получать данные из journald напрямую, journald теперь не перенаправляет по умолчанию все данные в работающий демон syslog. Для включения перенаправления следует использовать опцию ForwardToSyslog= в journald.conf;
- Добавлена новая утилита «systemd-escape» для экранирования спецсимволов в строках (например, используется для построения имён unit-ов).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.