WIPIVERSE

host (유닉스)

개요

"host"는 유닉스(Unix) 및 유닉스 계열 운영 체제에서 여러 관련 개념을 가리키는 용어이다. 크게 나누어 host 명령어(DNS 조회 유틸리티), /etc/hosts 파일(호스트 이름-IP 주소 매핑 파일), 그리고 네트워크 상의 호스트(컴퓨터 기기)라는 일반 개념으로 구분할 수 있다.


1. host 명령어

host는 유닉스 계열 시스템에서 DNS(Domain Name System) 조회를 수행하는 커맨드라인 유틸리티이다. 주로 호스트 이름을 IP 주소로 변환하거나, 그 역방향으로 IP 주소를 호스트 이름으로 변환하는 데 사용된다. IPv4 주소뿐만 아니라 콜론으로 구분된 IPv6 주소도 처리할 수 있으며, 특정 DNS 레코드 유형(A, AAAA, MX, NS, TXT 등)을 지정하여 조회하는 것도 가능하다.

host 명령어는 BIND(Berkeley Internet Name Domain) 소프트웨어 패키지에 포함된 도구 중 하나이다. BIND 자체는 1980년대 중반에 캘리포니아 대학교 버클리 캠퍼스(UC Berkeley)에서 개발되었으며, host 역시 이 BIND 계열 도구로 분류된다. 비슷한 목적을 가진 유틸리티로 nslookup과 dig가 있으며, host는 이들보다 단순한 출력 형식을 제공하여 간단한 DNS 조회 및 네트워크 문제 해결에 적합하다.

2. /etc/hosts 파일

유닉스 및 유닉스 계열 운영 체제에서 /etc/hosts는 로컬 시스템의 호스트 이름과 IP 주소 간의 정적 매핑을 정의하는 일반 텍스트 파일이다. 각 행은 IP 주소로 시작하고 이후에 해당 주소에 매핑할 호스트 이름을 공백 또는 탭으로 구분하여 나열하는 형식이다. 주석은 줄의 첫 위치에 # 기호를 사용하여 표기한다.

이 파일의 기원은 인터넷의 전신인 ARPANET 시대로 거슬러 올라간다. ARPANET 초기에는 분산형 호스트 이름 데이터베이스가 존재하지 않았고, 중앙 관리 방식의 HOSTS.TXT 파일이 스탠포드 연구소(SRI)의 네트워크 정보 센터를 통해 배포되었다. 이 파일은 조직들이 제출한 호스트 이름과 주소를 담고 있었다. 1971년 페기 카프(Peggy Karp)가 RFC 226에서 호스트 이름 표준화를 제안한 것이 최초의 호스트 파일 체계로 평가되며, 이후 RFC 952가 HOSTS.TXT 파일의 형식을 규정하였다.

네트워크가 급속히 확장되면서 단일 중앙 파일로 모든 호스트 이름을 관리하는 방식은 한계에 도달했고, 1983년~1984년에 분산형 이름 해석 시스템인 DNS(Domain Name System)가 도입되었다. 그러나 /etc/hosts 파일은 오늘날에도 여전히 로컬 이름 해석의 보조 수단으로 사용되며, 유닉스 계열 시스템에서는 NSS(Name Service Switch, nsswitch.conf) 설정에 따라 DNS보다 우선적으로 참조되거나 대체 수단으로 사용되도록 구성할 수 있다.

3. 네트워크 용어로서의 호스트

유닉스 네트워킹의 맥락에서 "호스트"는 TCP/IP 네트워크상에서 고유한 IP 주소를 가지는 컴퓨터 또는 기기를 지칭하는 일반 용어이기도 하다. 이 의미의 호스트는 운영 체제의 유형과 무관하게 네트워크상의 모든 참여 기기를 포괄한다.


참고 사항

  • host 명령어의 세부 옵션과 동작 방식은 사용 중인 유닉스/리눅스 배포판과 BIND 버전에 따라 일부 차이가 있을 수 있다.
  • host 명령어는 기본적으로 DNS 서버를 직접 조회하며, 기본 시스템 설정에서 /etc/hosts 파일을 참조하지 않는 점에 유의해야 한다. 즉, /etc/hosts에 정의된 항목은 host 명령어의 조회 결과에 반영되지 않는다.
  • host 명령어와 /etc/hosts 파일은 명칭은 유사하지만 서로 다른 기능을 수행하는 별개의 요소이다.
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기