본문으로 바로 가기

STCP가 자신의 이름을 어떻게 알 수 있는지 궁금한 적이 있으신가요? >system>stcp 디렉터리에는 host라는 파일이 있습니다. 이 파일에는 모듈의 이름을 나타내는 한 줄이 들어 있습니다. 이 파일을 직접 편집하거나 내용을 확인할 수도 있지만, hostname 명령어를 사용하는 것을 권장합니다. 인수를 지정하지 않으면 host 파일의 내용을 표시해 줍니다.

호스트명
athenavs
준비 완료  13:46:51
그림 1 – hostname 명령어를 사용하여 호스트 이름 표시하기

인수를 지정하면 host 파일의 내용이 해당 인수 값으로 설정되며, 이것이 STCP 호스트 이름이 됩니다.

호스트 이름 this-is-a-test\
this-is-a-test\
준비 완료  13:47:00\
\
호스트 이름\
this-is-a-test\
준비 완료  13:47:03
그림 2 – hostname 명령어를 사용하여 호스트 이름 변경하기

해당 명령어 외에도 호스트 이름을 반환하는 프로그래밍 기능이 있습니다

#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);
그림 3 – gethostname 함수를 사용하는 프로그램

여러 하위 시스템은 모듈을 식별하기 위해 호스트 이름에 의존합니다. 이들은 호스트 이름을 조회하여 이를 문자열로 사용하거나 IP 주소로 변환합니다. 호스트 이름이 존재하지 않거나, 잘못되었거나, 잘못된 IP 주소로 변환되거나, 아예 변환되지 않는 경우, 애플리케이션이 오류가 발생하거나 정상적으로 작동하지 않을 수 있습니다.

예를 들어, RADIUS 서버를 통해 외부 인증을 수행하는 경우, 호스트 이름에서 변환된 모듈의 IP 주소가 RADIUS 요청 패킷의 NAS-IP-ADDRESS 필드에 포함되어 전송됩니다. 해당 IP 주소가 예상한 주소와 다르거나, 제공된 사용자 ID가 해당 IP 주소와 연결되어 있지 않은 경우, RADIUS 서버에서 요청을 거부할 수 있습니다.

hostname 명령어는 module_start_up 명령어 매크로의 일부입니다. 이 이름은 시스템 부팅 시에도 유지되므로 매번 부팅할 때마다 설정할 필요는 없지만, 설정해 두는 것이 나쁠 것은 없습니다. 중요한 점은 이름이 올바른 IP 주소로 해결되는 값으로 설정되어 있는지 확인하는 것입니다. 이름이 잘못되었거나 IP 주소 해결이 제대로 이루어지지 않으면 Radius, SSH 또는 Samba와 같은 하위 시스템을 사용할 수 없게 될 수 있습니다.

© 2024 Stratus Technologies.