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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to