• yundream
  • 2016-01-16 16:09:20
  • 2016-01-16 16:09:20
  • 140604

Hostname

컴퓨터 네트워킹 분야에서 사용하는 언어로 nodename이라고 부르기도 한다. Hostname은 네트워크에 접속된 컴퓨터에 할당되는 "라벨"이다. 이 라벨은 전체 네트워크에서 유일해야 하며, 웹 서버, 이메일 서버등의 장치를 식별하는데 사용한다. Hostname은 하나의 단어로 구성될 수 있고, 두 개 이상의 단어를 이용해서 구조적으로 구성될 수도 있다.

인터넷의 경우 호스트 이름으로는 "."으로 구분되는 DNS(Domain Name System)을 사용한다. 인터넷에서의 호스트네임은 DNS만 사용하기 때문에, 호스트 네임이라는 용어대신에 도메인 이름만 사용한다. 도메인 주소가 top-level domain을 포함해서 완전한 형태를 취하게 되면 이를 FQDN(fully qualified domain name)이라고 한다. www.joinc.co.kr은 FQDN의 일반적인 형태다. 도메인 이름은 IP 주소와 함께 저장이 되서, 인터넷 상에서 컴퓨터의 위치를 찾을 수 있게 맵핑된다.

호스트이름은 인간이 읽을 수 있는 영문자와 숫자로 구성된다. 유저와 관리자는 호스트이름만으로 어떤 일을 하는 서비스인지 알 수 있다. www.joinc.co.kr는 웹서비스 호스트 일테고, wiki.joinc.co.kr은 위키 서비스를 하는 서비스일테다.

로컬 네트워크에서의 hostname

인터넷말고도 다양한 네트워크가 있을 수 있다. 로컬 네트워크가 대표적인 경우가 되겠다. 로컬 네트워크에서도 컴퓨터를 식별하기 위한 "라벨"이 필요하며, 이때도 hostname을 사용한다.

hostname 설정은 크게 두 개 방향으로 진행된다.
  1. 로컬 네트워크에서 사용할 DNS 서버 구성
  2. 단위 호스트가 자신의 이름을 알기 위해서 /etc/hostname을 구성
DNS 서버와 호스트의 /etc/hostname은 서로 일치하도록 만든다. 각 호스트가 자신의 호스트 이름을 도메인 이름과 일치시켜야 하는 이유에 대해서 살펴보자.

로컬 네트워크는 여러 목적을 가진 다양한 컴퓨터로 구성된다. 예를 들어 채팅 서비스를 제공하기 위해서 웹 서버, WAS, Mysql, RabbitMQ, REDIS, Zookeeper 서버로 구성된 네트워크가 있다고 가정해보자. 관리자는 was-01.chatting.my, mysql-01.cahtting.my등으로 구성할 것이다. 관리자와 애플리케이션 모두에게 도움이 된다.

관리자가 원격 컴퓨터에 접근해서 작업할 경우 호스트네임은 prompt 형태로 표시가 되는데, 이 이름만 보고도 어떤 작업을 하는지 알수 있다. 애플리케이션의 경우 어떤 호스트에 접근해야 하는지 쉽게 알 수 있다. was-01.chatting.my는 mysql-01.chatting.my로 접근하면 된다.

Automation에도 hostname은 필수다. 운영체제의 설치와 설정에서 부터, 애플리케이션 설정에서 실행까지의 과정을 자동화를 위한 키(Key)로 사용할 수 있기 때문이다.

리눅스 호스트 이름 설정

우분투 리눅스에서 호스트 이름은 /etc/hostname으로 설정한다.
# cat /etc/hostname
test.joinc.co.kr
# hostname -F /etc/hostname

그 다음 /etc/hosts에 test.joinc.co.kr에 대한 IP 주소를 설정한다.
# cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   test.joinc.co.kr

# hostname -f
test.joinc.co.kr