Share via


Host Name Resolution

안녕하세요? Juki입니다 ^^

이번 글에서는 Windows TCP/IP 환경에서 Host Name Resolution 이 어떻게 진행이 되는 지에 대해서 알아보도록 하겠습니다.

먼저 Host Name Resolution이 무엇일까요?

문장 그대로 해석하면 “호스트 이름을 풀이한다”가 됩니다. 즉, 호스트 이름을 IP Address로 풀이한다는 것입니다.

그렇다면 이와 같은 작업이 왜 필요한 것일까요?

그것은 TCP/IP 프로토콜을 사용하는 환경에서의Device(여기서는 컴퓨터)끼리는 IP Address를 통해서만 통신을 할 수가 있기 때문입니다.

아래 그림은 TCP/IP Network 환경에서 Host Name Resolution이 실제로 어떻게 진행 되는 지를 보여 줍니다.

clip_image002

위 그림에서Local Host가 Destination Host를 찾는 방법은 아래와 같습니다.

1. 먼저 Local Host의 Windows Socket Application에 의해서 Ping을 통해 Destination Host가 자신의 Local Host와 일치하는지 비교하게 됩니다.

2. 일치하지 않는다면 Local Host는 자신의 RAM에 저장되어있는 DNS Client resolver Cache에서 Destination Host가 있는지 확인을 하게 됩니다.

[참고]
DNS Client resolver Cache는 RAM 에 저장되어 있는 Entry Table로 여기에는 Host Files와 Client가 DNS Server에 Query 했던 Host에 대한 기록(Host Name Resolution이 성공 또는 실패한 기록이 TTL 기간동안)이 저장되어있습니다.

3. 2번 과정에서 확인이 안되면 Local Host는 DNS Server에 Destination Host에 대한 질의를 요청하게 됩니다. 그러면 DNS Server는 해당 질의에 대하여 자신의 DNS Record를 먼저 확인하게 되고 자신의 DNS Record에서 찾을 수 없으면 연결가능한 다른 DNS Server에 확인을 요청하게 됩니다.

4. 3번 과정의 DNS Server를 통해서도 Destination Host를 확인할 수 없게 되면 Windows는 Destination Host 를 Netbios Name으로 변경을 합니다.

[참고]
Host Name을 Netbios Name으로 변경하기 위해서는 Netbios Over TCP/IP 기능이 Enabled 되어 있어야 합니다.

5. 이제 변환된 Netbios Name을 확인하기 위해서 Local Host는 자신이 가지고 있는 Local Netbios Name Cache에서 Destination Host의 Netbios Name을 확인합니다.

[참고]
Netbios Name Cache는 Local Host의 Ram에 존재하며 여기에는 최근에 이름풀이한 Netbios Name과 IP Address의 Mapping 정보가 기록되어 있습니다.

6. 5번 과정을 통해서도 Destination Host가 확인이 되지 않으면WINS Server에 이름풀이를 요청하게 됩니다.

[참고]
WINS Server는 Windows 2000이전 Legacy OS에서 Host의 이름 풀이 서버로써 Netbios Name을 IP Address와 Mapping해 주는 서비스를 제공합니다.

7. 6번 과정을 통해서도 Destination Host가 확인이 되지 않으면 Local Host는 자신이 속해있는 Local Subnet에 Destination Host의 Netbios Name을 3번 Broadcast하게 됩니다.

8. 만약 위 7번 과정을 통해서도 Destination Host가 확인이 되지 않으면 Local Host는 마지막으로 자신이 가지고 있는 LMHosts File을 통해서 Destination Host가 원격지 네트웍에 있는 것이 아닌지를 확인하게 됩니다.

Host Name Resoultion은 위에서 설명드린 1~8까지의 과정을 통해서 진행되어지며, 각 과정에서 Destination Host가 확인이 되면 해당 과정에서 Host Name(또는 Netbios Name)과 IP Address 가 Mapping이 되고Host Name Resoultion Process는 종료가 되게 됩니다.

[관련문서]
Host Name Resolution
https://technet.microsoft.com/en-us/library/bb727005.aspx

Flush and reset a client resolver cache using the ipconfig command
https://technet.microsoft.com/en-us/library/cc781949.aspx

Display and view a client resolver cache using the ipconfig command
https://technet.microsoft.com/en-us/library/cc758108.aspx

Nbtstat 명령을 사용하여 NetBIOS 이름 테이블 보기
https://www.google.co.kr/search?hl=ko&newwindow=1&rlz=1G1GGLQ_KOKR290&q=nbtstat&lr=&aq=f&oq=

nbtstat 명령을 사용하여 NetBIOS 이름 해제 및 새로 고침
https://technet.microsoft.com/ko-kr/library/cc784285.aspx

----------------------------------------------------------------------------------------------------------