Bug 32470
| Summary: | altlinux-openresolv.service ждёт конфигурирования всех линков до записи resolv.conf | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Evgenii Terechkov <evg> |
| Component: | systemd-networkd | Assignee: | Alexey Shabalin <shaba> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | major | ||
| Priority: | P3 | CC: | arseny, nfsmobile, shaba |
| Version: | unstable | Keywords: | systemd |
| Hardware: | all | ||
| OS: | Linux | ||
Похожая конфигурация у меня на другой машине, которая в основном работает по проводному интерфейсу (адресация назначена статически) но иногда переносится в пределах действия беспроводной сети без сетевого кабеля. В основном беспроводной линк заглушен через rf-kill. Та же проблема. systemd-1:262-alt1 -> sisyphus: Tue Oct 13 2026 Egor Ignatov <egori@altlinux> 1:262-alt1 - 262. - Split systemd-resolved out of systemd-networkd (closes: #60729): + enable systemd-resolved with systemd-networkd on new installations; + keep systemd-resolved state on upgrades; + systemd-resolved answers LLMNR on port 5355 by default. - Drop systemd-timesyncd dependency on systemd-networkd. - Wait for any link with DNS in altlinux-*resolv services (closes: #32470). - Drop systemd dependency on systemd-boot-efi (closes: #52832): + systemd-ukify requires systemd-boot-efi for the EFI stubs now; + install systemd-boot-efi explicitly to use systemd-boot. - Package systemd-firstboot without enabling it on first boot (closes: #60350). - Own systemd-coredump@.service.wants directory (closes: #50781). - Add pam_rootok and pam_umask to systemd-user PAM config. - Use common-login in systemd-run0 PAM config (closes: #60730). - Enable bpf-framework on x86_64 and aarch64: + systemd-nsresourced user namespace API; + RestrictFileSystems=, SocketBind*= and RestrictNetworkInterfaces=. - Require libraries loaded via dlopen() since v261. - Start systemd-coredump.socket when systemd-coredump is installed. - Preset systemd-container units on first install: mountfsd, nsresourced, machines.target. - Do not require swtpm-tools for systemd-tpm2-swtpm.service. - Drop python3(zstd) from systemd-ukify dependencies. - Set / permissions to 0555 by new upstream tmpfiles.d/root.conf. |

Description
Evgenii Terechkov 2016-09-04 14:35:12 MSKИмеем свежий сизиф на ноутбуке с двумя интерфейсами: проводным и беспроводным. Кладём простейший .network-файл чтобы все интерфейсы настраивались по DHCP/DHCPv6. Включаем systemd-networkd, systemd,resolved, altlinux-openresolv.path. Перезагружаемся. Подключаемся в одной (любой) сети, проводной или беспроводной. Результат: =8<============================================ root@eee /etc # networkctl IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier configured 2 eth0 ether no-carrier configuring 3 wlan0 wlan routable configured 3 links listed. =8<============================================ при этом наличествует связность с сетью, но не работает резолвинг (/etc/resolv.conf - пуст, /run/systemd/resolve/resolv.conf - заполнен из DHCP-анонса). Ожидалось, что resolvconf обновит /etc/resolv.conf последовательно, по мере тоо как ответят DHCP-сервера. Он этого не делает. Причина: =8<============================================ ExecStart=/bin/sh -c 'if /lib/systemd/systemd-networkd-wait-online --timeout=30; then /sbin/resolvconf -a systemd-networkd < /run/systemd/resolve/resolv.conf; fi' =8<============================================ в юните altlinux-openresolv.service. systemd-networkd-wait-online(8) говорит ясно: =8<============================================ By default, it will wait for all links it is aware of and which are managed by systemd-networkd.service(8) to be fully configured or failed, and for at least one link to gain a carrier. =8<============================================ Всё верно, запуск бинарника /lib/systemd/systemd-networkd-wait-online ждёт, пока настроятся ВСЕ интерфейсы. Чего в реальности может вообще никогда не произойти. Объёзд: =8<============================================ root@eee /etc # cat /etc/systemd/system/altlinux-openresolv.service.d/override.conf [Service] ExecStart= ExecStart=/bin/sh -c '/sbin/resolvconf -a systemd-networkd < /run/systemd/resolve/resolv.conf' =8<============================================ В таком виде после запуска лишь с одной доступной сетью резолвинг имён работает.