ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DNS] Domain Name System 개요
    생활코딩/WEBn 2020. 9. 28. 18:30

    [강의 출처] opentutorials.org/course/3276

     

    WEB2 - Domain Name System - 생활코딩

    수업소개 이 수업은 도메인 이름을 자신의 서버 컴퓨터에 부여하는 방법을 알려드리는 수업입니다. 원래 서버 컴퓨터에 접속을 하려면 그 컴퓨터의 ip 주소를 알아야 합니다. 그런데 이 주소를 �

    opentutorials.org


     

    Domain Name System이란?

    • 인터넷에 연결된 컴퓨터 한 대 한 대를 host라고 하고,
    • host와 host가 연결될 수 있도록 각 host의 주소를 표현해주는 IP address라고 한다.
    • 숫자의 나열인 IP주소는 그 자체로 기억하기 어렵기 때문에, 이를 텍스트 형태의 '이름(Domain)'으로 표현하기로 하고,
    • DNS Server에 그 쌍을 기록해두게 되었다. (Ex www.icann.org: 192.0.43.7)
    • 따라서 실제 인터넷 접속은 도메인주소로 인터넷에 접속 -> 운영체제가 DNS Server에 접속 후 IP주소 확인 -> 해당 주소로 접속 형태로 이루어진다.

     

    IP주소와 host

    • 운영체제에는 hosts 파일이 있으며, hosts에 등록된 도메인에는 DNS Server 없이 접속 가능 (DNS Server에 우선해 처리)
    • Mac OS의 경우 /etc/hosts에 저장되어 있어서, sudo nano /etc/hosts로 수정 가능
    • 악의적으로 hosts를 변조해 악의적인 IP주소: 은행도메인 형태로 접속하게 만드는 것이 피싱의 기본 수법

     

    DNS Server

    • 기존에는 스탠포드 리서치 기관에서 hosts 파일을 관리하고, 다른 이용자들이 해당 파일을 다운 받아서 이용했으나
    • 갱신 및 다운로드를 위한 시간/비용 지출, 하나의 파일로 관리하기에 너무 많은 데이터 양 등의 이슈로 인해
    • DNS Server로 해당 서비스를 이전하여 실시간 서비스가 가능해짐

     

    Public DNS

    • 일반적인 경우, 도메인주소로 접속을 시도하면 ISP(통신사)에서 자동으로 할당해준 DNS Server를 이용해 접속
    • 다만 속도, 보안 등의 이슈로 통신사가 지정한 DNS Server를 이용하고 싶지 않은 경우,
    • 다른 DNS 서비스들(Public DNS)를 이용할 수 있음 (ex 구글의 8.8.8.8, Cloudflare의 1.1.1.1 등)

     

    도메인 이름의 구조 및 이름 등록 과정

    도메인 이름의 구조

    DNS 서버는 여러 대가 계층적으로 구성되어 있으며, 탐색시 상위 -> 하위 순으로 탐색하여 최종 주소를 확인

    예를 들어 위의 주소라면 .(루트 네임 서버) -> com.(탑레벨 도메인 서버) -> example.com. -> blog.example.com. 순서로 탐색해서 IP주소를 얻게 됨

     

     

    도메인 이름 등록 과정과 원리

     

    nslookup

    • Name Server 조회 명령어로, 터미널에 아래와 같이 실행
    • 응답 속도 개선을 위해 cache를 사용하는데, 이렇게 캐시가 응답한 경우 아래처럼 Non-authoritative answer로 표시됨
    $ nslookup naver.com
    # 결과
    Server:		8.8.8.8           # 사용하고 있는 DNS서버
    Address:	8.8.8.8#53
    
    Non-authoritative answer:
    Name:	naver.com
    Address: 125.209.222.141      # 해당 사이트의 IP주소

     

    만약 Authoritative answer이 필요한 경우, 먼저 -type=ns로 관할 네임서버 주소를 확인 후,

    $ nslookup -type=ns naver.com
    # 결과
    Non-authoritative answer:
    naver.com	nameserver = ns2.naver.com.      # naver.com을 담당하는 네임서버의 위치
    naver.com	nameserver = ns1.naver.com.      # 이쪽은 백업/보조
    
    Authoritative answers can be found from:

    해당 네임서버에 요청하면 된다.

    $ nslookup naver.com ns2.naver.com.
    
    # 결과
    Server:		ns2.naver.com.
    Address:	125.209.249.6#53             # 이제 Non-authoritative 표시되지 않는다

     

    DNS record

    • DNS Server에 저장하는 DNS 정보 하나하나를 가리킴
    • 데이터타입은 A, NS, CNAME 등 여러가지가 있음
      • 실제 IP주소인 경우 A(Address): 최종적으로 필요한 IP주소 (ex 125.209.249.6)
      • 별칭인 경우(www.naver.com: naver.com.) CNAME(Canonical Name)
        • 아래 예시처럼, 여러 도메인을 운영하는 데 IP주소가 자주 바뀌는 경우 유리하다.
        • temp.com. A 실제 IP주소(변경은 여기만 하면 된다)
        • domain-for-user.com CNAME temp.com.
        • another-domain.com CNAME temp.com.
      • 네임서버인 경우 NS(Name Server)

     

    도메인을 다른 웹호스팅 서비스의 웹페이지와 연결하기

    1. 원하는 도메인 선정 후 구매
    2. 웹호스팅 서비스에서 제공하는 IP주소를 DNS Server에 A 타입 DNS record로 매핑
    3. 웹호스팅 서비스의 Custom Domain 등에 해당 도메인 등록

    댓글

Designed by Tistory.