DNS

이태곤·2023년 10월 11일
0

컴퓨터망

목록 보기
7/32
post-thumbnail

1. DNS(Domain Name System)

  • 인터넷에서 사용되는 도메인 주소 (예: www.naver.com)를 실제 IP 주소로 변환하여 컴퓨터 간에 통신할 수 있도록 해주는 시스템
  • DNS는 분산되어 세계 곳곳에 존재하며 계층 구조를 가지고 있어 다음과 같은 이점을 제공한다.

    1. 트래픽 분산: DNS 서버가 분산되어 있기 때문에 트래픽이 골고루 분산되어 서비스를 안정적으로 제공할 수 있다.
    2. 고장 대처: 여러 DNS 서버가 존재하므로 특정 서버의 고장 시 다른 서버로 자동으로 트래픽을 전환하여 서비스의 영속성을 유지할 수 있다.
    3. 유지보수: DNS는 중앙 집중적으로 도메인 이름과 IP 주소의 매핑 정보를 관리하고 분산된 방식으로 업데이트하거나 변경할 수 있다.
    4. 성능 향상: DNS는 지역에 따라 가장 가까운 서버의 IP 주소를 반환하여 사용자가 빠르게 서비스를 받을 수 있도록 도움을 주어 성능을 향상시킬 수 있다.
      → 물리적 거리 뿐만아니라, 네트워크 성능을 고려하여 사용자가 최적의 서버에 연결할 수 있도록 도와준다.
  • 계층 구조

    1. 사용자가 도메인 이름을 입력하면, Local DNS Name Server에게 도메인에 대한 IP 주소를 찾아달라는 요청을 보낸다.
      • Local DNS name server : 사용자가 도메인 이름을 입력하면 해당 도메인에 대한 IP 주소를 찾기 위해 가장 먼저 찾는 DNS 서버이며, 자주 호출되는 DNS name에 대해서 캐싱을 한다.
    2. 만약 로컬 DNS 네임 서버에 도메인에 대한 정보가 없다면, 해당 DNS 서버는 Root DNS Server에게 쿼리를 전송한다.
      • Root DNS Server: 계층 구조의 최상위에 위치하며, 모든 도메인에 대한 정보를 갖고 있지는 않지만, TLD에 대한 DNS 서버 정보를 가지고 있다
      • Top-Level Domain (TLD): 최상위 도메인을 관리하고 해당 도메인 아래에 있는 도메인의 DNS 정보를 저장하고 제공하는 역할
        → 도메인 네임은 계층 구조로 표현되고 뒤쪽에 위치할수록 상위 계층에 해당하는 도메인이다.
        → 국가 코드 최상위 도메인(ccTLD)와 일반 최상위 도메인(gTLD)
    3. 루트 DNS 서버는 TLD에 대한 정보를 로컬 DNS 네임 서버에게 제공한다.
    4. 로컬 DNS 네임 서버는 이제 TLD DNS 서버로 쿼리를 전송하고, TLD DNS 서버는 해당 도메인의 DNS 서버 정보를 제공한다.
    5. 로컬 DNS 네임 서버는 해당 도메인의 DNS 서버에 질의를 보내고, 도메인 이름에 해당하는 IP 주소를 받아옴으로써 도메인 네임에 해당하는 IP 주소를 사용자에게 반환해준다.
  • 예시

    1. 로컬 DNS 네임 서버로부터 Root DNS Server정보를 받아온다.
    2. 루트 DNS 서버에게 질의를 하고 TLD에 대한 DNS 서버 정보를 가져온다.
      → .com
    3. com DNS의 DNS Server는 갖고 있는 도메인 중에서 yahoo.com에 대한 DNS Server를 제공한다.
    4. yahoo.com의 DNS Server는 해당하는 도메인에 대한 IP주소를 제공한다.
  • DNS name resolution: DNS 서버를 여러 개 거치면서 주소를 알아내는 과정

    1. Iterated query: Contacted server가 다음으로 Contact 해야하는 서버 정보를 제공해주는 방식
      → Local DNS name server가 IP 주소를 찾기 위해 root DNS server에게 요청을 보내면 root DNS server는 TLD DNS server 정보를 제공해준다.


    2. Recursive query: Contacted server로부터 계속적인 재귀 요청을 통해 Authoritative DNS server로부터 IP 주소를 가져와서 Local DNS name server에게 전달해주는 방식
      → 상위 계층 DNS 서버에 상대적으로 큰 부하를 줄 수 있다.
      → Authoritative DNS server: 정확한 도메인 주소에 해당하는 IP 주소를 관리하는 server
  • DNS Caching: Local DNS name server는 자주 사용되는 DNS 정보를 캐싱하여 저장한다.
    → TLD서버와 같이 빈번하게 사용되는 정보는 local DNS name server에 캐싱함으로써 요청되는 정보를 빠르게 제공할 수 있다.
    → Time-to-Live(TTL) 값에 따라 일정 기간 동안 유지되며, TTL이 만료되면 정보가 삭제된다.

  • DNS protocol messages format: 질의문과 응답문에서 동일한 format을 사용한다.

    • Identification: 메시지를 고유하게 식별하는 역할
    • Flags
      • 메시지가 질의인지 응답인지를 나타내는 플래그
      • 재귀적인 탐색을 지원하는지 여부를 나타내는 플래그
      • 클라이언트가 재귀적인 탐색을 요청하는지 여부를 나타내는 플래그
      • 응답 서버의 권한 레벨을 나타내는 플래그
    • questions: 도메인 이름과 DNS record를 포함한 DNS query
      • DNS record: 도메인과 연관된 IP 주소 및 기타 정보
        → A 레코드 (Address Record): IPv4 주소를 알고 있을 때 사용되며, 도메인 이름을 직접 IPv4 주소로 매핑
        → NS 레코드 (Name Server Record): 도메인이 어떤 네임 서버에서 호스팅되는지를 지정
        → MX 레코드 (Mail Exchange Record): 해당 도메인에 대한 메일 서버를 설정
        → CNAME 레코드 (Canonical Name Record): 별칭을 사용하여 도메인 이름을 다른 도메인 이름으로 리디렉션
    • answers: 질의에 대한 응답으로 해당 도메인에 대한 IP 주소 등의 정보
    • Authority: 쿼리에 대한 권한 정보
    • additional: 기타 정보
  • DNS registrar: 도메인 이름 등록을 관리하고 제어하는 공인된 조직 또는 사업체로, 도메인 이름을 사용하려면 DNS registrar을 통해 해당 도메인을 등록해야한다.

0개의 댓글