On Tue, Apr 07, 2020 at 10:48:28PM +0200, Thomas HUMMEL wrote: > Hello, > > I'm trying to figure out how exactly my stateless HPC nodes (CentOS > 8.1/NetworkManager-1.20.0) get their hostnames. > > As a matter of fact, they can either get a "short" (non fqdn - something > like 'maestro-1000') hostname or a fqdn hostname > (maestro-1000.maestro.pasteur.fr). This is related to the process network is > configured according to the following procedure : > > 1. node PXE boots the stateless osimage and ends up having a dhcp NM profile > 2. a postscript is run on the node which uses NM to create an additional > profile with higher autoconnect priority which main goal is to statically > set the ip address retrieved in step 1. > > - if only step 1. is performed hostname == short name > - if step 1 + 2. are performed, hostname == fqdn > > Note : > > - DNS is configured on each node, both for forward and reverse zone > > - I checked with tcpdump that DHCP option 12 "Host-Name" always stores the > short name (and of course the domain 'maestro.pasteur.fr' in option 15) > > - step2 (I guess) puts HOSTNAME=maestro-1000 in /etc/sysconfig/network
AFAIK, NetworkManager doesn't do that. > - node never have a /etc/hostname file > > - no hostname-mode is specified in NetworkManager.conf > > - finally, when step 1+2 are performed, I can see: > > Apr 07 20:13:19 maestro-1000 systemd-hostnamed[14516]: Changed host name to > 'maestro-1000' > Apr 07 20:13:33 maestro-1000.maestro.pasteur.fr systemd-hostnamed[14516]: > Changed host name to 'maestro-1000.maestro.pasteur.fr' > > which I reckon matches step1 then step2 > > Here are my questions : > > - I am assuming NetworkManager uses systemd-hostnamed when it is in charge > to set the hostname : is this correct ? Yes, it uses the SetHostname D-Bus call of systemd-hostnamed, which changes the transient (kernel) hostname. > - I am assuming what I see is related to hostname-mode setting as I didn't > see any hostname or hostnamectl et sethostname call in the postscript. > Playing with its possible valued in NM config, I experienced the following > after step 1+2 : > > a) default : what's described above (fqdn) > b) none : hostname == short name > c) dhcp : same as a) (fqdn) > > I can elaborate on that like this : > > a) as man said NM sets hostname "with the one provided via DHCP", which is > first the short one (step1) then as a static profile is activated, it falls > back to "hostname from the reverse lookup of the IP address" (which DNS > resolves in the fqdn) Right. > > b) : NM just don't play with the transient name and sets a static hostname > coming from /etc/sysconfig/network NM sets the transient host name. It doesn't know about /etc/sysconfig/network. The hostname is determined in this way: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/1.20.0/src/nm-policy.c#L744 > c) confuses me as the manual says NM > > "will update the transient hostname only with information coming from DHCP" > but with no fallback > So I was expecting after step 2 to have localhost.localdomain or only the > short name but not the fqdn > > Or maybe it builds a fqdn from host-name + domain coming from DHCP ? No, it only takes the short hostname from DHCP. I don't know why it is setting the FQDN in your case. Could you please put level=trace in the [logging] section of /etc/NetworkManager/NetworkManager.conf, disabled journald ratelimiting, reproduce the issue and attach the journal log of a boot with hostname-mode=dhcp? Beniamino > > Can you help me figuring out my misunderstanding ? > > Thanks for your help > > -- > Thomas HUMMEL
signature.asc
Description: PGP signature
_______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list