Hast du dich schon mal gefragt, woher STCP seinen Namen kennt? Im Verzeichnis >system>stcp befindet sich eine Datei namens host. Diese Datei enthält eine Zeile, die den Namen des Moduls angibt. Du kannst die Datei direkt bearbeiten oder anzeigen, aber ich empfehle dir, den Befehl hostname zu verwenden. Ohne Argumente zeigt er den Inhalt der Datei host an.
Hostname: athenavs: Bereit 13:46:51 |
| Abbildung 1 – Anzeigen des Hostnamens mit dem Befehl „hostname“ |
Wenn Sie ein Argument angeben, wird der Inhalt der Host-Datei auf diesen Wert gesetzt, und dieser wird zum STCP-Hostnamen.
Hostname this-is-a-test this-is-a-test bereit 13:47:00 Hostname this-is-a-test bereit 13:47:03 |
| Abbildung 2 – Ändern des Hostnamens mit dem Befehl „hostname“ |
Neben dem Befehl gibt es eine Programmierfunktion, um den Hostnamen zurückzugeben
#include <stdio.h>
#include <errno.h>
#include <netdb.h>
int errno;
void exit (int);
main ()
{
char name [32];
if (gethostname (name, 32) < 0)
{
perror ("ex_gethostname: Error getting hostname");
exit (errno);
}
else
printf ("hostname is %sn", name);
|
| Abbildung 3 – Programm unter Verwendung der Funktion „gethostname“ |
Eine Reihe von Teilsystemen ist auf den Hostnamen angewiesen, um das Modul identifizieren zu können. Sie rufen den Namen ab und verwenden ihn entweder als Zeichenfolge oder wandeln ihn in eine IP-Adresse um. Wenn der Name fehlt, falsch ist, zu einer falschen IP-Adresse führt oder nicht aufgelöst werden kann, kann die Anwendung fehlschlagen oder fehlerhaft funktionieren.
Wenn Sie beispielsweise eine externe Authentifizierung über einen RADIUS-Server durchführen, wird die aus dem Hostnamen abgeleitete IP-Adresse des Moduls im RADIUS-Anfragepaket im Feld „NAS-IP-ADDRESS“ übermittelt. Ihr RADIUS-Server lehnt die Anfrage möglicherweise ab, wenn die IP-Adresse nicht den Erwartungen entspricht oder wenn die angegebene Benutzer-ID nicht mit dieser IP-Adresse verknüpft ist.
Der Befehl „hostname“ ist Teil des Befehlsmakros „module_start_up“. Es ist nicht notwendig, den Namen bei jedem Systemstart neu festzulegen, da er über mehrere Systemstarts hinweg beibehalten wird, aber es schadet auch nicht. Wichtig ist, sicherzustellen, dass der Name so festgelegt wird, dass er auf die richtige IP-Adresse aufgelöst wird. Ein falscher Name oder eine falsche IP-Adressauflösung kann dazu führen, dass Subsysteme wie Radius, SSH oder Samba nicht mehr funktionieren.
