컴퓨터 네트워크 - Application Layer : DNS

TopOfTheHead·2025년 8월 12일

컴퓨터네트워크

목록 보기
14/21
post-thumbnail

host name
인터넷 상에서 Host를 식별하는데 사용하는 식별자 중 하나
▶ 일반적으로 웹서버명 / 도메인 / IP Address를 사용
ex ) www.facebook.com

host name는 사람이 기억하기 용이하지만, 위치에 대한 정보를 제한적으로 제공하며 가변길이의 알파뉴메릭으로 구성되어 라우터에서 처리하는데 어려움이 존재.
ex ) www.eurecom.frhost name프랑스에 존재하는것 외의 자세한 위치정보를 제공하지 않음.
▶ 이러한 이유로 인터넷Host32bitIP Address를 통해 식별

DNS ( Domain Name System )
Host nameDomain name으로서 IP주소Mapping하는 어플리케이션 계층 프로토콜
▶ 사용자가 Domain name브라우저에 입력 시 이를 네트워크가 자동으로 매핑IP주소로 변환하여 브라우저에게 제공하여 해당 IP주소로 접속하도록 설정

Host name을 기반으로 매핑IP 주소DNS Query 하는 경우 여러 DNS 서버를 거쳐서 책임 DNS 서버에서 찾은 후 사용자에게 응답
Local DNS name server -> Root DNS Server -> TLD DNS Server -> 책임 DNS Server 를 거친다.

。각 DNS ServerDNS분산 계층 데이터베이스로서 구현
▶ 각각의 DNS ServerHost nameIP AddressMapping 하기위한 DNS 레코드 ( Resource Record )를 저장

DNS 프로토콜Port 번호 : 53으로서 트랜스포트 계층 프로토콜로서 UDP를 사용

。사용자가 웹브라우저주소Host name을 입력하면 DNS에 의해 MappingIP Address로 변환되어 Port번호 : 80과 함께 해당 HTTP Server웹페이지로 이동

  • DNS Query
    。제시된 도메인에 해당하는 IP 주소 정보를 요청하는 질의

  • Domain name
    Host name \in domain name

    ex ) Host name ( = www.google.com )은 Domain name ( = google.com )에 속한다.

  • 서브 도메인 :
    Domain 앞에 추가적으로 붙은 추가문자열 Domain
    ( prod.example.com, dev.example.com에서 prod, dev에 해당 )

  • APEX 도메인
    Domain name서브 도메인이 없는 순수한 최상위 도메인
    ex ) example.com

DNS가 제공하는 서비스

  • Domain nameIP Address로 변환
    Domain name으로 mapping한 IP Address로 변환.

  • Host Aliasing
    。복잡한 host name를 가진 Host에게 별칭( alias name )을 부여
    ex ) relay1.west--coast.enterprise.comhost name을 가진 Host에게 www.enterprise.com이라는 별칭을 부여
    별칭으로 접속 시 원본 Host nametransfer

    별칭 부여 시 원본 host namecanonical hostname라고 한다.

  • MailServer Aliasing
    。복잡한 Host name를 가진 Mail Server별칭을 부여

  • Load Distribution
    。동일 서비스를 제공하는 여러개의 Server Host의 각각의 IP Address를 단일 Host name으로 설정하여 Traffic을 분산
    ▶ 복수의 ClientHost name를 입력하여 HTTP Request 하면, DNS Server는 동일한 Host name를 가지는 IP Address 집합IP Address를 각각 순환하면서 Client에게 응답하여 Traffic을 분산

DNS분산 계층 데이터베이스 구조
。각 DNS ServerDNS분산 계층 데이터베이스로서 구현되어 최상위 도메인으로부터 차례대로 계층구조로 구성

Host nameIP AddressMapping 하기위한 DNS 레코드 ( Resource Record )은 마지막 계층 ( = Authoritative DNS Server )에 보관
Local DNS name server로부터 전달된 DNS Query를 최상위 DNS Server에서 시작하여 하위 DNS Server로 차례로 전달하여 IP Address를 획득하는 구조로 설정됨

DNS Server는 3개 계층의 Name Server들로 계층적 구조로 구분


DNS분산계층 DB인 이유?

  • 모든 HTTP 요청에 포함되는 domain name에 대해 매핑되는 각각의 IP주소응답하므로 매우 큰 규모의 요청이 전세계적으로 동시 수행됨
    。현재 약 3억 6천만개의 도메인이 존재.
    데이터베이스계층적 구조로 구분하여 트래픽을 효율적으로 처리하도록 설계

  • Single point of failure
    DNSNetwork Application에서 필수적인 프로토콜
    Centralized DB인 경우 고장 발생 시 Host name to IP Address가 되지않아 어떠한 Network Application도 실행할 수 없다

  • Centralized DB인 경우 모든 RequestResponse가 한 곳으로 집중되어 traffic volume이 매우 커진다

DNS분산 계층 데이터베이스 구조
Name Server( NS )
DNS Resolver에서 전달된 DNS QueryZone File 기반으로 검색 후 IP주소를 응답하는 용도의 서버

Domain name : lecture.aws.kr.{}
{} : DNS Root : DNS Root Server에서 확인
kr : Top Level Domain : TLD DNS Server에서 확인
aws : 도메인 : Authoritative DNS Server에서 확인
lecture : 서브도메인

  • Root DNS Server
    。최상위 DNS Server로서 모든 최상위 레벨 도메인TLD DNS ServerHostname를 가진 Zone File을 저장
    ▶ 전세계에 13개의 논리적 큰범위로 구성

    Local NetworkLocal DNS name server로부터 DNS Query를 전달받은 후 Host name최상위 레벨 도메인( = TLD )에 해당하는 TLD DNS ServerIP 주소DNS Resolver에게 return

    ex ) host name : google.com에 대한 DNS Query를 전달 받은 후 .com을 관리하는 TLD ServerIP Address를 return.

  • TLD DNS Server ( Top Level Domain )
    .com , .org , .edu , .kr , .uk , .fr 같은 기업 , 기관 및 국가별 최상위 레벨 도메인에 대한 각각의 DNS Server
    ▶ 해당 TLD들은 해당 기관에서 관리
    ex) .krKISA에서 관리

    TLD DNS Server는 해당 최상위 레벨 도메인의 기관별 Authoritative DNS ServerHostname를 가진 DNS Record( Type = NS )를 저장

    DNS QueryDomain name에 대한 Domain을 가지는 Authoritative DNS ServerIP 주소DNS Resolver에게 반환하는 역할을 수행

    최상위 레벨 도메인 : .com을 관리하는 TLD Server들은 Network Solution에 의해 관리
    .edu : Educause , .kr : 한국인터넷정보센터

  • Authoritative DNS Server
    。 기관별로 가지는 특정 도메인 ( yahoo.com 등 )을 담당하는 DNS Server로서 실제 DNS Record가 저장되는 Name Server
    TLD DNS Server책임 DNS 서버를 등록 시 Client에서 DNS Query를 통해 도달 가능

    기관 네트워크 내에 속한 모든 HostHostname-to-IP Mapping 정보를 포함하는 DNS Record( Type = A )를 저장

    ▶ 최종적으로 DNS Query에 해당하는 Host name에 해당하는 DNS RecordClient에게 전달하여 IP Address를 제공

    ex ) 서울시립대의 책임 DNS Serverwww.uos.ac.kr 을 담당
    • Local DNS name server = default name server = proxy
      DNS 3가지 계층구조에 속하지 않는 DNS name Server

      。각각의 Local Network ( ex. residential ISP , company 등)에 하나 씩 설치되어 Local Network 내 모든 Host에서 DNS Query를 해당 Local DNS name server로 전송하도록 설정
      ▶ 이후 해당 DNS name serverDNS QueryHost name에 대한 Mapping 정보를 가진 경우 해당하는 IP Address를 return
      Mapping 정보를 가지지 않는 경우 DNS QueryDNS Server 계층으로 전달

      Web Cache와 유사한 역할을 수행

    • DNS Resolver
      클라이언트Name Server 사이에 위치한 서버로서 클라이언트 요청에 따라 IP주소 등의 정보를 확보하는 역할을 수행
      ▶ 일반적으로 ISP에서 관리

      。각 DNS Resolver에는 Root DNS Server들의 IP 주소하드코딩

DNS Query를 처리하는 방식
。어떤 HostLocal DNS name server를 통해 Host name : www.amazon.comDNS QueryDNS Server 계층으로 전달하는 경우

0. 클라이언트DNS ResolverDNS Query를 전달

1. DNS Cache 확인
Host가 최근에 방문한 host nameIP 주소Local DNS name server캐시에 저장했는지 확인
캐시에 없는 경우 다음 방법들을 수행


2-A Iterative Query
。각 DNS Query 전송 시 DNS 계층 서버 별로 한번 씩 송수신하면서 Root DNS Server IP주소 -> TLD DNS Server IP주소 -> Authoritative DNS Server IP주소 -> Domain name에 해당하는 IP주소 순서대로 각각 IP 주소를 획득 및 접근

1. Local DNS name server가 우선 Root DNS ServerDNS Query 전달 시 .com을 관리하는 TLD DNS ServerIP AddressDNS Resolver에게 return


2. 이후 Local DNS name server가 해당 TLD DNS ServerDNS Query 전달 시 amazon.com도메인을 가지는 기관의 Authoritative DNS ServerIP AddressDNS Resolver에게 return


3. 이후 Local DNS name server가 해당 Authoritative DNS ServerDNS Query 전달 시 www.amazon.com에 대해 MappingIP Address를 return


4. 최종적으로 IP Address를 획득한 Local DNS name serverHost에게 IP Address를 전달


2-B Recursive Query

Local DNS name serverRoot DNS ServerDNS Query 전달 시 TLD DNS Server -> Authoritative DNS Server 순으로 하위 DNS Server에 직접 접근하여 IP Address를 획득하여 Local DNS name server에게 return.

Recursive Query의 경우 상위 DNS Server일수록 Work Load가 더욱 큰 단점이 존재


3 Host응답IP 주소를 받아서 연결

DNS 캐싱( DNS Caching )
DNS는 각 DNS 구조를 통하여 DNS Query가 전달되면서 발생하는 Delay를 감소시키기 위해 Caching을 사용

Local DNS name server의 경우 보통 각 최상위 도메인TLD DNS ServerIP AddressCaching하여 차후 DNS Query를 수행 시 해당 정보를 참조
Root DNS Server를 거치지 않고 바로 TLD DNS ServerDNS Query를 전달가능

。보통 Authoritative DNS Server에서 IP AddressDNS Client에게 DNS 레코드를 응답 시 TTL를 마킹하여 전달
캐싱IP AddressOutdated되는것을 방지하기위해 TTL 시점까지만 캐싱하도록 설정

DNS 레코드( RR : DNS Resource Record )
。각 DNS ServerDomain nameIP Addressmapping 하기위한 레코드를 저장하며 하나 이상의 레코드를 가진 DNS MessageDNS Client에게 응답

  • Domain Zone
    Domain의 정보를 포함하는 DNS Record 집합
    www.practice.kr , lecture.aws.kr

  • Zone File
    Domain Zone 정보를 저장한 DB 역할의 텍스트 파일

  • DNS 레코드 종류

    DNS 레코드 Format : ( Name, Value, Type, TTL )

    DNS 레코드필드를 포함하는 4개의 Tuple로 구성
    NameValueType에 의해 정의됨

    DNS 레코드 Field 종류

    • TTL ( Time To Leave )
      레코드의 생존기간
      캐시에서 제거되는 시간을 설정

    • Type
      DNS 레코드Type을 지정하여 NameValue를 결정
      • Type = A
        Name = 호스트이름 , Value = IP Address

        Host name에 대한 IPv4 주소Mapping을 제공
        ▶ 주로 Authoritative DNS Server에서 사용하는 DNS 레코드

      • Type = NS
        Name = 도메인이름 , Value = Authoritative DNS Server의 호스트이름

        Domain에 대한 해당 도메인을 관리하는 기관의 Authoritative DNS ServerHost name를 제공
        ▶ 주로 TLD DNS Server에서 사용하는 DNS 레코드

      • Type = CNAME
        Name = 별칭 호스트이름 , Value = 정식 호스트이름

        。해당 Alias Hostname를 지닌 Host에 대한 실제 Canonical Hostname를 제공

      • Type=MX
        Name = 메일서버의 별칭 호스트 이름 , Value = 메일서버의 정식 호스트이름

        메일서버에서 해당 Alias Hostname를 지닌 Host에 대한 실제 Hostname를 제공

DNS Message Format
DNS QueryDNS Reply는 동일한 메시지 포맷을 사용

  • Header Section
    identification :
    16bit식별자로서 DNS QueryDNS Reply 간 일치를 식별

    flag :
    MessageDNS Query인지 DNS Reply인지 구분
    Recursive Query의 수행 여부를 표시
    DNS ReplyAuthoritative DNS Server로부터의 Reply인지 여부를 표시

    number
    。4개의 Number Field로서 다음 4가지 Secton의 발생횟수를 지시

  • Question Section
    。수행할 1개 이상의 DNS Query를 정의하는 구간
    DNS RecordNameType Field를 기입
    ex ) Name = 도메인이름 , Type = MX

  • Answer Section
    Question SectionDNS Query에 대한 DNS 레코드를 정의하는 구간
    NameTypeDNS Query를 전달하여 도출된 Name , Value , Type , TTL를 포함하는 DNS 레코드를 ㅈㅇ의

    。단일 DNS Query에 대해 여러개의 DNS 레코드로 응답할 수 있음
    HostnameLoad Distribution의 이유로 여러 IP Address를 가질 수 있으므로.

  • Authority Section
    。다른 Authoritative DNS ServerDNS 레코드를 포함

  • Additional Section
    。다른 도움이 되는 DNS 레코드를 포함

    ex ) Type=MX에 대해 DNS Query를 하여 특정 Authoritative DNS ServerHostname를 획득 시 부가적인 IP Address 정보는 Additional Section에서 기입

도메인 등록
DNS RegistrarNS 서버DNS Record를 등록

도메인 등록 대행( DNS Registrar ) : ICANN에게 인증 및 TLD DNS Server의 관리기관과 협의하여 도메인 등록의 권한을 지닌 주체
AWS Route53이 해당 기능이 존재

DNS DBDNS Record 삽입
。새로 설립된 기관의 Web Server에 접근하기위해 DNS Record를 추가하는 경우

  • 기관 고유의 Authoritative DNS Server 구입 및 DNS 레코드 저장
    서버 Host nameIP AddressMappingtype = ADNS 레코드 저장

    Mail Server를 추가하는 경우 해당 Mail Server에 대한 type = MXtype = ADNS 레코드를 추가

  • Authoritative DNS ServerDomain nameDNS Registrar에 등록
    Authoritative DNS ServerDomain nameIP AddressDNS Registrar에 제공하여 등록.
    ex ) networkuptopia.com의 경우 DNS RegistrarNetwork Solutions에 등록한다.

  • DNS Registrar는 관리하고 있는 TLD DNS Server에 해당 Authoritative DNS ServerDNS 레코드를 삽입
    Authoritative DNS Server에 대한 Type = A , Type = NSDNS 레코드TLD DNS Server로 삽입
    ex )
Type = NS DNS레코드 
(networkuptopia.com, dns1.networkuptopia.com, NS)
Type = A DNS레코드 
(dns1.networkuptopia.com, 212.212.212.1, A)

Authoritative DNS ServerDomain nameIP Address를 2개의 DNS 레코드에 포함하여 TLD DNS Server로 포함

profile
공부기록 블로그

0개의 댓글