네임서버 동작 원리

김상우·2022년 7월 24일
0

CentOS

목록 보기
5/11
post-thumbnail

네임서버(Name Server)

DNS(Domain Name Server)라고도 하는 네임서버는 웹 브라우저 또는 FTP 클라이언트 를 사용할 때 URL을 해당 컴퓨터의 IP 주소로 변환시켜주는 담당한다.
쉽게 설명하자면 네임서버는 일종의 전화번호부 또는 114 안내 전화번호 센터와 같은 개념이라고 할 수 있다.
이렇게 안내를 해줄 수 있는 자료는 hosts라는 파일에 저장되기 마련이다.
Windows계열의 컴퓨터에는 C:\Windows\system32\drivers\etc\hosts에 저장되고 Linux계열의 컴퓨터에서는 /etc/hosts로 존재한다.

네임서버 동작 원리 알아보기

우선 네임 서버의 IP 정보를 확인헤 보았다.

  • 네임서버 IP 정보 확인
[root@localhost ~]# nslookup
> server
Default server: 192.168.111.2
Address: 192.168.111.2#53
> www.naver.com
Server:		192.168.111.2
Address:	192.168.111.2#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
Name:	www.naver.com.nheos.com
Address: 223.130.195.200
Name:	www.naver.com.nheos.com
Address: 223.130.195.95
> www.google.com
Server:		192.168.111.2
Address:	192.168.111.2#53

Non-authoritative answer:
Name:	www.google.com
Address: 142.250.206.228
Name:	www.google.com
Address: 2404:6800:400a:80a::2004
> velog.io
Server:		192.168.111.2
Address:	192.168.111.2#53

Non-authoritative answer:
Name:	velog.io
Address: 52.78.220.56
Name:	velog.io
Address: 3.39.215.212
>exit

여기서 주목할 것은 현재 server가 사용하는 네임서버의 IP 주소는 192.168.111.2라는 것을 알 수 있다는 것이다. naver와 google의 웹 서버 IP 주소를 알 수 있고, 지금 글을 쓰고 있는 velog의 IP주소를 확인할 수 있으며 모두 두개를 사용한다는 것을 알 수 있다.

  • 네임서버 수정해보기
    /etc/resolv.conf 파일을 먼저 확인하고 편집기를 통해 두번 째 줄을 주석처리 해보았다.
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.111.2
[root@localhost ~]# vi /etc/resolv.conf 
# Generated by NetworkManager
# nameserver 192.168.111.2
  • 변경 후 velog 접속 확인

    velog.io로 도메인을 입력하여 접속하면 접속되지 않는다.

    하지만 이렇게 nslookup 명령어를 활용해 알아는 IP로 직접 입력해 접속하니 접속된다는점을 확인할 수 있다.

    앞서 확인한 내용을 토대로 알 수 있는 것으로 네임서버는 URL 주소를 IP 주소로 변환하는 서비스를 제공하지만 네트워크에 직접적인 영향을 미치지 않는다는 점을 알 수 있다.

  • /etc/hosts 파일 활용 1

[root@localhost ~]# vi /etc/hosts

이 파일에 velog.io의 IP 주소와 웹사이트를 추가한 후 저장했다. 그 후 변화는 아래 사진과 같았다.

이 과정을 통해서 우리는 URL을 웹 브라우저에 입력했을 때, /etc/resolv.conf를 통해 IP를 주소를 획득하기 전에 /etc/hosts 파일에서 URL 주소와 IP 정보가 있는지 먼저 확인한다는 것을 알 수 있다.
(현재 /etc/resolv.conf 에서 네임서버를 주석처리 했기 때문에 알 수 있는 정보이다.)

  • /etc/hosts 파일 활용 2
    방금 수정했던 파일에서 velog.io의 URL은 그대로 두고 IP 주소를 네이버로 변경 후 다시 velog.io를 입력해서 접속해보았다.

    이 과정을 통해 URL을 입력하면 제일 먼저 /etc/hosts파일에서 IP를 확인한다는 것을 더 확실하게 알 수 있다.

    네이버로 접속된 것은 맞지만 보이는 화면이 정상적으로 보이지 않는 이유는 URL 형식으로 링크되어 있기 때문이다.

  • 도메인 입력 시 IP 주소를 얻는 과정

  1. URL 입력
  2. /etc/host.conf 파일을 통한 우선순위 조회
  3. /etc/hosts 파일에 URL의 정보가 있는지 조회
    3-1. 정보가 있는 경우 해당 IP주소를 획득하여 연결
    3-2. 정보가 없는 경우 /etc/resolv.conf 파일을 확인해 'nameserver [nameserver IP]' 부분을 확인
  4. 3-2의 과정 이후의 과정
    4-1. 'nameserver [nameserver IP]' 부분이 존재하지 않는다면 입력한 URL의 IP 주소 획득 불가
    4-2. 'nameserver [nameserver IP]' 부분이 존재한다면 'nameserver IP' 를 통해 URL의 주소를 질의
  5. 4-2의 과정 이후의 과정
    5-1. 'nameserver IP' 를 통해 URL의 주소를 확인한다면 IP 주소를 획득하여 연결
    5-2. 네임서버가 응답하지 않는다면 입력한 URL의 IP 주소 획득 불가능
profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글