Linux vs. Internet
Unser Puppet benutzt an diversen Stellen
@fqdn
bzw
$facts['networking']['fqdn']
Und das schlägt gelegentlich fehl, weil der FQDN überraschenderweise
GROSSBUCHSTABEN
enthält. WARUM?
Also: Bei richtigen Betriebssystemen, für Server und so, steht die FQDN
in einem Config-File. Bei Linux steht nur der Hostname in einem
Config-File, das hostname
Kommando kann die FQDN laut Manpage
nicht setzen. Wenn es den FQDN sucht, nimmts jede IP auf jedem Interface und
macht da drauf einen DNS-reverse Lookup (d.h. wenn grad kein Netz/kein DNS,
und kein Eintrag in /etc/hosts
, dann hat die Maschine gar keinen FQDN).
OK, das erklärt aber die GROSSBUCHSTABEN nicht.
Mit Hilfe vom DNS Admin vom RRZE folgendes erfahren: Die DNS Anfrage liefert das,
was beim nächsten DNS Server im Cache liegt. Und der merkt sich die letzten Antworten
auf Anfragen, zusammen mit der Anfrage. Und weil im DNS GROSSkleinschreibung egal
ist, kann jeder nach z.B. WwW.mAtH.fAu.De
fragen. Und das wird
gespeichert. Und die nächste Antwort auf die Anfrage nach www.math.fau.de
enthält die CaMeLcAsEd Schreibung. Und wenn die Anfrage von hostname -f
kommt, weil der Rechern mit Hostname www
seine FQDN rausfinden will,
dann fragt der danach als WwW.mAtH.fAu.De
beim Puppetserver. Und der
sagt: Host unbekannt.
Also: eigenen Puppet-Fact @FqDn
schreiben, der immer lowercase ist...