From c36a74f698cc31fba20d9fd0a74d5cf74b832071 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 19 Jun 2024 20:14:14 +0200 Subject: [PATCH 1/3] nm-daemon-helper: add "service" argument Introduce a new argument to specify a comma-separated list of NSS services to use for the "resolve-address" command. For now only accept "dns" and "files"; the latter can be used to do a lookup into /etc/hosts. Note that previously the command failed in presence of extra arguments. Therefore, when downgrading NetworkManager without restarting the service, the previously-installed version of the daemon (newer) would spawn the helper with the extra argument, and the newly-installed version of the helper (older) would fail. This issue only impacts hostname resolution and can be fixed by just restarting the daemon. In the upgrade path everything works as before, with the only difference that the helper will use by default both "dns" and "files" services. Don't strictly check for the absence of extra arguments, so that in the future we can introduce more arguments without necessarily break the downgrade path. (cherry picked from commit 229bebfae95f789018433900868700c16a20a17b) --- src/nm-daemon-helper/nm-daemon-helper.c | 67 +++++++++++++++++-------- 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/src/nm-daemon-helper/nm-daemon-helper.c b/src/nm-daemon-helper/nm-daemon-helper.c index 810ea5fa94..32be93a4ef 100644 --- a/src/nm-daemon-helper/nm-daemon-helper.c +++ b/src/nm-daemon-helper/nm-daemon-helper.c @@ -55,26 +55,31 @@ cmd_version(void) static int cmd_resolve_address(void) { - nm_auto_free char *address = NULL; + nm_auto_free char *address = NULL; + nm_auto_free char *services = NULL; union { struct sockaddr_in in; struct sockaddr_in6 in6; } sockaddr; socklen_t sockaddr_size; char name[NI_MAXHOST]; + char *saveptr = NULL; + char *service; + char *str; int ret; address = read_arg(); if (!address) return RETURN_INVALID_ARGS; - if (more_args()) - return RETURN_INVALID_ARGS; + services = read_arg(); + if (!services) { + /* Called by an old NM version which doesn't support the 'services' + * argument. Use both services. */ + services = strdup("dns,files"); + } memset(&sockaddr, 0, sizeof(sockaddr)); -#if defined(__GLIBC__) - __nss_configure_lookup("hosts", "dns"); -#endif if (inet_pton(AF_INET, address, &sockaddr.in.sin_addr) == 1) { sockaddr.in.sin_family = AF_INET; @@ -85,33 +90,51 @@ cmd_resolve_address(void) } else return RETURN_INVALID_ARGS; - ret = getnameinfo((struct sockaddr *) &sockaddr, - sockaddr_size, - name, - sizeof(name), - NULL, - 0, - NI_NAMEREQD); - if (ret != 0) { - if (ret == EAI_SYSTEM) { - int errsv = errno; + for (str = services; (service = strtok_r(str, ",", &saveptr)); str = NULL) { + if (!NM_IN_STRSET(service, "dns", "files")) { + fprintf(stderr, "Unsupported resolver service '%s'\n", service); + continue; + } + +#if defined(__GLIBC__) + __nss_configure_lookup("hosts", service); +#endif + + ret = getnameinfo((struct sockaddr *) &sockaddr, + sockaddr_size, + name, + sizeof(name), + NULL, + 0, + NI_NAMEREQD); + + if (ret == 0) { + printf("%s", name); + return RETURN_SUCCESS; + } else if (ret == EAI_SYSTEM) { char buf[1024]; + int errsv = errno; fprintf(stderr, - "getnameinfo() failed: %d (%s), system error: %d (%s)\n", + "getnameinfo() via service '%s' failed: %d (%s), system error: %d (%s)\n", + service, ret, gai_strerror(ret), errsv, _nm_strerror_r(errsv, buf, sizeof(buf))); } else { - fprintf(stderr, "getnameinfo() failed: %d (%s)\n", ret, gai_strerror(ret)); + fprintf(stderr, + "getnameinfo() via service '%s' failed: %d (%s)\n", + service, + ret, + gai_strerror(ret)); } - return RETURN_ERROR; +#if !defined(__GLIBC__) + break; +#endif } - printf("%s", name); - - return RETURN_SUCCESS; + return RETURN_ERROR; } int From cb54fe7ce9a69b1f8abfd6fa5f2bf83e971ff997 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 19 Jun 2024 20:29:37 +0200 Subject: [PATCH 2/3] core: also use /etc/hosts for hostname resolution Before introducing the hostname lookup via nm-daemon-helper and systemd-resolved, we used GLib's GResolver which internally relies on the libc resolver and generally also returns results from /etc/hosts. With the new mechanism we only ask to systemd-resolved (with NO_SYNTHESIZE) or perform the lookup via the "dns" NSS module. In both ways, /etc/hosts is not evaluated. Since users relied on having the hostname resolved via /etc/hosts, restore that behavior. Now, after trying the resolution via systemd-resolved and the "dns" NSS module, we also try via the "files" NSS module which reads /etc/hosts. Fixes: 27eae4043b27 ('device: add a nm_device_resolve_address()') (cherry picked from commit 410afccb32f5814c6aeebec837505e3f94b7408c) --- NEWS | 3 ++ src/core/devices/nm-device-utils.c | 49 ++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index 502f2289c2..7b506ace69 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,9 @@ Overview of changes since NetworkManager-1.48.2 =============================================== * Support matching a OVS system interface by MAC address. +* When looking up the system hostname from the reverse DNS lookup of + addresses configured on interfaces, NetworkManager now takes into + account the content of /etc/hosts. =============================================== NetworkManager-1.48.2 diff --git a/src/core/devices/nm-device-utils.c b/src/core/devices/nm-device-utils.c index 80909805c7..4597ba85ee 100644 --- a/src/core/devices/nm-device-utils.c +++ b/src/core/devices/nm-device-utils.c @@ -245,14 +245,36 @@ resolve_addr_helper_cb(GObject *source, GAsyncResult *result, gpointer user_data resolve_addr_complete(info, g_steal_pointer(&output), g_steal_pointer(&error)); } +typedef enum { + RESOLVE_ADDR_SERVICE_NONE = 0x0, + RESOLVE_ADDR_SERVICE_DNS = 0x1, + RESOLVE_ADDR_SERVICE_FILES = 0x2, +} ResolveAddrService; + static void -resolve_addr_spawn_helper(ResolveAddrInfo *info) +resolve_addr_spawn_helper(ResolveAddrInfo *info, ResolveAddrService services) { - char addr_str[NM_INET_ADDRSTRLEN]; + char addr_str[NM_INET_ADDRSTRLEN]; + char str[256]; + char *s = str; + gsize len = sizeof(str); + gboolean comma = FALSE; + + nm_assert(services != RESOLVE_ADDR_SERVICE_NONE); + nm_assert((services & ~(RESOLVE_ADDR_SERVICE_DNS | RESOLVE_ADDR_SERVICE_FILES)) == 0); + + if (services & RESOLVE_ADDR_SERVICE_DNS) { + nm_strbuf_append(&s, &len, "%sdns", comma ? "," : ""); + comma = TRUE; + } + if (services & RESOLVE_ADDR_SERVICE_FILES) { + nm_strbuf_append(&s, &len, "%sfiles", comma ? "," : ""); + comma = TRUE; + } nm_inet_ntop(info->addr_family, &info->address, addr_str); - _LOG2D(info, "start lookup via nm-daemon-helper"); - nm_utils_spawn_helper(NM_MAKE_STRV("resolve-address", addr_str), + _LOG2D(info, "start lookup via nm-daemon-helper using services: %s", str); + nm_utils_spawn_helper(NM_MAKE_STRV("resolve-address", addr_str, str), g_task_get_cancellable(info->task), resolve_addr_helper_cb, info); @@ -282,27 +304,28 @@ resolve_addr_resolved_cb(NMDnsSystemdResolved *resolved, dbus_error = g_dbus_error_get_remote_error(error); if (NM_STR_HAS_PREFIX(dbus_error, "org.freedesktop.resolve1.")) { /* systemd-resolved is enabled but it couldn't resolve the - * address via DNS. Don't fall back to spawning the helper, - * because the helper will possibly ask again to + * address via DNS. Spawn again the helper to check if we + * can find a result in /etc/hosts. Don't enable the 'dns' + * service otherwise the helper will possibly ask again to * systemd-resolved (via /etc/resolv.conf), potentially using * other protocols than DNS or returning synthetic results. * - * Consider the error as the final indication that the address - * can't be resolved. - * * See: https://www.freedesktop.org/wiki/Software/systemd/resolved/#commonerrors */ - resolve_addr_complete(info, NULL, g_error_copy(error)); + resolve_addr_spawn_helper(info, RESOLVE_ADDR_SERVICE_FILES); return; } - resolve_addr_spawn_helper(info); + /* systemd-resolved couldn't be contacted, use the helper */ + resolve_addr_spawn_helper(info, RESOLVE_ADDR_SERVICE_DNS | RESOLVE_ADDR_SERVICE_FILES); return; } if (names_len == 0) { _LOG2D(info, "systemd-resolved returned no result"); - resolve_addr_complete(info, g_strdup(""), NULL); + /* We passed the NO_SYNTHESIZE flag and so systemd-resolved + * didn't look into /etc/hosts. Spawn the helper for that. */ + resolve_addr_spawn_helper(info, RESOLVE_ADDR_SERVICE_FILES); return; } @@ -366,7 +389,7 @@ nm_device_resolve_address(int addr_family, return; } - resolve_addr_spawn_helper(info); + resolve_addr_spawn_helper(info, RESOLVE_ADDR_SERVICE_DNS | RESOLVE_ADDR_SERVICE_FILES); } char * From 9f09d4d36401527a2f5d59810cad517ae2710c77 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 28 Jun 2024 13:38:18 +0200 Subject: [PATCH 3/3] docs: document the hostname management workflow (cherry picked from commit 543ebef32ba20c9a37a270d2c53cafc7a95c43b5) --- docs/internal/hostname.drawio | 252 ++++++++++++++++++++++++++++++++++ docs/internal/hostname.md | 40 ++++++ docs/internal/hostname.png | Bin 0 -> 97337 bytes 3 files changed, 292 insertions(+) create mode 100644 docs/internal/hostname.drawio create mode 100644 docs/internal/hostname.md create mode 100644 docs/internal/hostname.png diff --git a/docs/internal/hostname.drawio b/docs/internal/hostname.drawio new file mode 100644 index 0000000000..e24a3eed65 --- /dev/null +++ b/docs/internal/hostname.drawio @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/internal/hostname.md b/docs/internal/hostname.md new file mode 100644 index 0000000000..89cf8078b5 --- /dev/null +++ b/docs/internal/hostname.md @@ -0,0 +1,40 @@ +Hostname management +=================== + +NetworkManager can update the system hostname via different +mechanisms. The following diagram describes the workflow: + +![Hostname management workflow](hostname.png "Hostname management") + +A few notes on the diagram: + + - if there is a static hostname set in `/etc/hostname`, no action is + taken. NetworkManager only manages the transient hostname. See the + systemd-hostnamed + [documentation](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.hostname1.html#Semantics) + about the distinction between static and transient hostname. + + - When there is no static hostname set, NetworkManager builds a + sorted list of active devices that are eligible for the hostname + evaluation. When doing so, the `hostname` setting of the connection + active on each device is taken into account. Properties `from-dhcp` + and `from-dns-lookup` determine if the two methods must be used for + the device; property `only-from-default` determines whether devices + without a default route should be considered, and `priority` is + used to sort the entries. In case of a tie of the priority, a + device with the default route comes first. + + - When evaluating a given device, first NM checks if the device + received an hostname via DHCP and then if the first IPv4 and IPv6 + addresses configured on the interface can be resolved to a name via + DNS. The mechanism used to perform the reverse DNS lookup of a + specific address is described in the diagram on the right. + + - In the "spawn helper" step, NM starts a separate process that + performs the reverse DNS lookup using the NSS services specified + (see `man nsswitch.conf`). Service `dns` does the lookup via a DNS + query, while `files` returns results from `/etc/hosts`. + + - In case there is no valid result from DHCP or DNS, from any device, + if there a valid transient hostname set outside of NetworkManager, + that hostname is honored. diff --git a/docs/internal/hostname.png b/docs/internal/hostname.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d1b2d680e7a7324e5e420a07a0a049bbeb3d76 GIT binary patch literal 97337 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 S3}Cjvar}sdNwJZ`oqq$4{9RZ8 literal 0 HcmV?d00001