Hostname via DHCP setzen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Hostname via DHCP setzen

Beitrag von dank » 19.11.2011 12:02:02

Hi,

ich habe hier eine ganze Reihen an Maschinen die das gleiche Image laufen haben und alle samt via DHCP konfiguriert werden. Nun hätte ich gern den Hostnamen von jeder Maschine gerne richtig gesetzt. Gibt es da einen Debian-Weg?

Gruß

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Hostname via DHCP setzen

Beitrag von rendegast » 19.11.2011 12:41:37

Bei qemu/kvm gibt es die Option '-net hostname=name' für den internen dhcp-Server.


Andernfalls '-net macaddr=mac' und den externen dhcp-Server darauf konfigurieren, zBsp. dnsmasq.conf:

Code: Alles auswählen

dhcp-host=mac,hostname,ip-addr
Das dhcp-Clientprogramm des Gastes sollte diese Option dann aber auch abfragen,
bei Debianisc-dhcp-client so per default, dhclient.conf:

Code: Alles auswählen

...
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;
...
Und auch umsetzen, wofür eventuell noch ein *-hooks.d/-Skript nötig ist.




Gilt so auch für andere Virtualisierer, dhcp-Server und dhcp-Klienten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Re: Hostname via DHCP setzen

Beitrag von dank » 19.11.2011 13:39:53

Ich verwalte den DHCP Server leider nicht selber. Wie kann ich vom Client aus herausbekommen, ob der Name gesendet wird? request host-name ist in der dhclient.conf scheinbar standardmäßig aktiv.

Für den Fall das ich den Hostname nicht via DHCP bekommen sollte habe ich mal ein kleines Script geschrieben, welches den Hostname über ifconfig und hosts rausbekommt und wollte das ganze beim Bootprozess mit aktualisieren lassen. Leider scheint Aufgrund der nun parallelen Abarbeitung der init-Skripte dhcp die IP zu spät zu beziehen. Ich habe zwar "Required-Start: networking" definiert, aber wenn das Skript ausgeführt wurde ist die IP noch nicht da. Kann ich da irgendwas machen außer einem Sleep ;-)?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Hostname via DHCP setzen

Beitrag von rendegast » 19.11.2011 14:28:57

Wenn Du keinen Einfluß auf das vom DHCP-Server gesendete hast,
dann ändere halt die /etc/hostname der VMs.

Falls der dann durch Anweisung vom DHCP-Server geändert wird,
entferne die request-Anweisung für den hostname aus der dhclient.conf.
Wenn der DHCP-Server-Admin, wohl auch der Netz-Admin, das nicht so will, wird er sich schon melden.


Wie kann ich vom Client aus herausbekommen, ob der Name gesendet wird? request host-name ist in der dhclient.conf scheinbar standardmäßig aktiv.
Es gibt /etc/dhcp/*hooks.d/debug, die ermittelte Werte ausgeben.
Erweiterte/Angepaßte Versionen dieser Skripte können auch dort eingepflegt werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Re: Hostname via DHCP setzen

Beitrag von dank » 19.11.2011 20:03:20

rendegast hat geschrieben:Wenn Du keinen Einfluß auf das vom DHCP-Server gesendete hast,
dann ändere halt die /etc/hostname der VMs.
Genau das wollte ich nicht. Ich wollte verhindern in jede VM jedes mal rein zu müssen. Sind aktuell über 30 Stück und werden noch mehr. Und nach einem neuen Clonen müsste ich es dann wieder anpassen.
rendegast hat geschrieben: Es gibt /etc/dhcp/*hooks.d/debug, die ermittelte Werte ausgeben.
Danke. Nun weiß ich definitiv, dass der hostname nicht gesendet wird. Also doch mein eigenes Script. Oder gibt es doch noch was besseres?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Hostname via DHCP setzen

Beitrag von Cae » 19.11.2011 20:57:59

Das hat nix mit der Verteilung über DHCP zu tun, aber mit Debianclusterssh kannst du über eine SSH-Sitzung simultan mehrere Server steuern. Zum Beispiel, um Configs umzustellen. Es könnte für die Einrichtung ganz nützlich werden.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Re: Hostname via DHCP setzen

Beitrag von dank » 21.11.2011 00:37:13

Cae hat geschrieben:Das hat nix mit der Verteilung über DHCP zu tun, aber mit Debianclusterssh kannst du über eine SSH-Sitzung simultan mehrere Server steuern. Zum Beispiel, um Configs umzustellen. Es könnte für die Einrichtung ganz nützlich werden.

Gruß Cae
Hi,

ich kenne clusterssh. Ist ein nettes Tool. Aber: ich muss damit 1x in jedes Maschine rein. Und das jedes mal, wenn ich die Maschinen neu clone. Genau das wollte ich ja verhindern. Ich habe nun ein kleines Script geschrieben:

Code: Alles auswählen

       IP=`/sbin/ifconfig | grep xxx.xxx. | awk '{print $2}' | awk -F: '{print $2}'`
        HOSTNAME=`/usr/bin/host $IP | awk '{ print $NF }' | awk -F. '{print $1}'`

        echo $HOSTNAME > /etc/hostname
        hostname $HOSTNAME
Das bestimmt mir den hostname auf Basis der IP. Das ganze läuft via init.d.

Gruß

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Re: Hostname via DHCP setzen

Beitrag von TBT » 21.11.2011 07:33:04

Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Hostname via DHCP setzen

Beitrag von habakug » 21.11.2011 07:40:20

Hallo!

Der "host"-Befehl macht ein Reverse-Lookup:
man host hat geschrieben:[...]host will by default perform a reverse lookup for that address.
Da ist also ein häßlicher Punkt am Ende des Hostnamens. Der sollte weg:

Code: Alles auswählen

# host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| sed 's/\(.*\)./\1/' > /etc/hostname
Hat das denn wirklich so bei dir funktioniert?

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Re: Hostname via DHCP setzen

Beitrag von dank » 21.11.2011 20:41:21

TBT hat geschrieben:Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt
Ich habe gelernt, dass Debian in dem Fall "(none)" als hostnamen setzt. Da ich den Hostnamen nicht via DHCP bekomme bleibt hostname leer.

Gruß

dank
Beiträge: 105
Registriert: 19.04.2009 14:35:12

Re: Hostname via DHCP setzen

Beitrag von dank » 21.11.2011 20:45:21

habakug hat geschrieben:Hallo!

Der "host"-Befehl macht ein Reverse-Lookup:
man host hat geschrieben:[...]host will by default perform a reverse lookup for that address.
Da ist also ein häßlicher Punkt am Ende des Hostnamens. Der sollte weg:

Code: Alles auswählen

# host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| sed 's/\(.*\)./\1/' > /etc/hostname
Hat das denn wirklich so bei dir funktioniert?

Gruß, habakug
Also obiges Skript funzt gut. Bis auf den Fakt, dass ich noch ein Sleep davor bauen musste, da die IP während des Bootprozesses nicht schnell genug da ist. Und dank "awk -F. '{print $1}'`" ist da auch kein Punkt. Zumindest nicht bei mir ;-)

Gruß

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Hostname via DHCP setzen

Beitrag von habakug » 21.11.2011 21:57:16

Hallo!

Ich hatte den Feldtrenner heute morgen wohl gar nicht gesehen.

Code: Alles auswählen

# /usr/bin/host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| awk -F. '{print $1}' > /etc/hostname
So passt es besser.

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Re: Hostname via DHCP setzen

Beitrag von TBT » 21.11.2011 22:46:14

dank hat geschrieben:
TBT hat geschrieben:Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt
Ich habe gelernt, dass Debian in dem Fall "(none)" als hostnamen setzt. Da ich den Hostnamen nicht via DHCP bekomme bleibt hostname leer.

Gruß
ok, in unserem Netz wird der hostname vom DHCP mitgeschickt, da ist zwar /etc/hostname leer, aber es wird nicht "none" angezeigt sondern schön Client01 ... Clientxy

Antworten