Vous êtes-vous déjà demandé comment STCP connaît son nom ? Dans le répertoire >system>stcp se trouve un fichier nommé host. Ce fichier contient une seule ligne qui correspond au nom du module. Vous pouvez modifier ou afficher ce fichier directement, mais je vous recommande d'utiliser la commande hostname. Sans argument, elle affiche le contenu du fichier host.
nom d'hôte athenavs prêt 13 h 46 min 51 s |
| Figure 1 – Afficher le nom d'hôte à l'aide de la commande hostname |
Si vous fournissez un argument, le contenu du fichier host sera défini sur la valeur de cet argument, et celle-ci deviendra le nom d'hôte STCP.
nom d'hôte ceci-est-un-test ceci-est-un-test prêt 13:47:00 nom d'hôte ceci-est-un-test prêt 13:47:03 |
| Figure 2 – Modifier le nom d'hôte à l'aide de la commande hostname |
Outre cette commande, il existe une fonction de programmation permettant de renvoyer le nom d'hôte
#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);
|
| Figure 3 – Programme utilisant la fonction gethostname |
Plusieurs sous-systèmes ont besoin du nom d'hôte pour identifier le module. Ils récupèrent ce nom et l'utilisent soit sous forme de chaîne de caractères, soit en le résolvant en une adresse IP. Si le nom est absent, erroné, renvoie une adresse IP incorrecte ou ne peut être résolu, l'application risque de ne pas fonctionner ou de présenter des dysfonctionnements.
Par exemple, si vous effectuez une authentification externe via un serveur RADIUS, l'adresse IP du module, obtenue à partir du nom d'hôte, est transmise dans le paquet de requête RADIUS, dans le champ NAS-IP-ADDRESS. Votre serveur RADIUS peut rejeter la requête si l'adresse IP ne correspond pas à celle attendue ou si l'identifiant utilisateur fourni n'est pas associé à cette adresse IP.
La commande `hostname` fait partie de la macro de commande `module_start_up`. Il n'est pas nécessaire de définir le nom à chaque démarrage du système, car celui-ci est conservé d'un démarrage à l'autre, mais cela ne pose aucun problème. L'important est de s'assurer que le nom défini correspond bien à l'adresse IP correcte. Un nom erroné ou une résolution d'adresse IP incorrecte peut rendre inutilisables des sous-systèmes tels que Radius, SSH ou Samba.
