본문 바로가기

리눅스/리눅스 서버

네임 서버

앞서 우리는 다른 서버에 접속하고자 할 때 IP주소를 이용했다.


만일 이용하고자 하는 서버의 개수가 적다면, 즉 IP주소를 다 외울 수 있다면 이는 별 문제가 되지 않을 것이다.


만일 연결하고자 하는 서버가 많아진다면 IP를 다 외울 수 없기에 메모지[각주:1]에 저장해둘 것이다.


물론 이 방법조차 한계가 있다.


네트워크 상의 컴퓨터가 심하게 많아지기도 하고 IP가 바뀔 때마다 수정하기도 귀찮을 것이다.


그래서 우리는 URL을 IP로 바꿔주는 역할[각주:2]의 서버 컴퓨터가 필요해졌고, 이를 네임 서버[각주:3]라고 칭하게 되었다.


즉, 사용자는 네임 서버의 IP주소만 알면 언제든지 접속하고자 하는 URL의 IP주소를 알아낼 수 있다.

URL 입력부터 IP주소를 획득하는 내부 과정은 위 사진과 같다.


과정을 잘 살펴보면 웹 브라우저는 IP주소가 옳은 주소인지 검증할 능력은 없음을 알 수 있다.



인터넷상의 수도 없이 많은 컴퓨터들은 1대의 네임 서버만으로는 관리할 수가 없게 되었다.

그래서 위와 같이 트리 구조의 도메인 이름 체계가 고안되었다.



리눅스에는 각자 사용하는 네임 서버가 있으며 이를 로컬 네임 서버라고 한다.


로컬 네임 서버의 캐시 DB를 검색해서 정보가 있다면 바로 응답하지만 대부분의 경우는 없기 때문에 ROOT 네임 서버에 주소를 물어본다.


이후 위 사진의 트리 구조를 타고 내려와 IP주소를 알아낼 수 있다.


PC에서 URL로 IP주소를 얻고자 할 때 해당하는 URL의 IP주소를 알려주는 네임 서버를 캐싱 전용 네임 서버라고 한다.


같은 도메인에 속해 있는 컴퓨터들의 이름을 관리하고, 외부에서 물어보면 대답해주는 네임 서버를 마스터 네임 서버라고 한다.


다음과 같은 상황으로 마스터 네임 서버에 대해 정확히 알아볼 수 있다.


우선 192.168.111.100이 latale.com의 네임 서버라고 가정해보자.

 1. 내부에서 naver.com으로 접속을 시도할 때

  - 192.168.111.100에 naver.com을 확인해 본 후 없으므로 ROOT 네임 서버에 주소를 물어본다.

 2. 내부에서 latale.com으로 접속을 시도할 때

  - 192.168.111.100에 latale.com을 확인해보니 자신이 관리하는 도메인이므로 바로 IP주소를 가져온다.

 3. 외부에서 latale.com으로 접속을 시도할 때

  - 외부 컴퓨터의 로컬 네임 서버인 A는 ROOT 네임 서버, COM 네임 서버를 거쳐 latale.com의 네임 서버인 192.168.111.100에 접속해 IP주소를 알아간다.



만약 대형 서버를 운영한다면 동시에 엄청난 양의 접속이 있을 것이다.


따라서 다수의 웹 서버를 운영해서 요청이 있을 시 교대로 서비스를 실행해야 부하를 줄일 수 있는데 이를 라운드 로빈 방식이라 부른다.

  1. hosts 파일 [본문으로]
  2. 이름 해석이라 한다. [본문으로]
  3. 또는 DNS 서버 [본문으로]