DNS

ksh98·2024년 4월 22일

네트워크

목록 보기
8/25

DNS

도메인 이름을 IP 주소로 바꾼다.

  • 도메인 이름은 사람이 웹사이트에 접속하기 위해 사용하는 것이다.
  • 컴퓨터는 이를 이해하지 못하기 때문에 IP 주소로 바꿔야 한다.
  • 이를 바꿔주는 것이 DNS이다.
  • 분산된 데이터베이스(네임 서버)가 계층 구조를 이룬 형태이다

제공 서비스

DNS가 제공하는 서비스에는 다음과 같은 것들이 있다.

  • 도메인 명을 IP 주소로 바꿔주기
  • 호스트에 별칭 부여
    • 도메인명이 너무 복잡하거나 한 경우 또 별칭을 부여할 수 있다.
    • 이때 도메인명에 부여한 별칭을 alias name
    • 별칭이 붙은 나에게 실제로 서비스를 제공하는 호스트의 도메인 명을 canonical name이라고 한다.
  • 메일 서버에 별칭 부여
    • 메일 서버의 실제 도메인명은 복잡할 것인데 메일 서버의 도메인 명이 기억하기 쉬워야 메일 보내기 편할 것이다. 그래서 원래 도메인명에 별칭을 부여할 수 있다.
  • 작업 분산
    • 인기가 많은 서비스의 경우 여러 서버를 둘 것이다. 이들은 실제로 다른 호스트 위에 돌아가는 서버라 ip가 다르다.
    • DNS는 이 IP들에게 모두 하나의 도메인명을 대응신키다.
    • 따라서 도메인의 응답으로 IP 주소 여러개가 주어진다.
    • 도메인 시스템 서버는 이 주소 묶음의 값의 순서를 바꿔가며 작업을 분산시킨다. 클라이언트는 보토 그냥 첫번째 주소를 사용하여 순서를 바꾸는 것 만으로 작업으 분산시킬 수 있다.

분산 시스템

DNS는 중앙에 하나의 서버를 두지 않는다. 이는 다음과 같은 이유가 있다.

  • 중앙의 하나의 서버가 있으니 고장이 나면 전체 인터넷이 고장난다.
  • 한 서버가 전 세계에서 오는 트래픽을 감당하면 부하가 올 수도 있다.
  • 서버로부터 거리가 먼 지역은 지연 시간이 길어질 수도 있다.

구성 요소

루트 레벨 서버

  • 탑 레벨 서버의 ip 주소를 준다

탑 레벨 서버

  • .com, .org 등 유명한 이름을 처리할 수 있는 서버
  • authoritative 서버에 대한 아이피 주소를 준다

authoritative 서버

  • 한 조직의 dns 서버이다.
  • 예를 들어 네이버와 관련된 도메인명의 ip주소는 네이버의 authoritative 서버인 naver.com 서버가 줄 수 있다.

로컬 dns 서버

  • 계층 구조에 딱 들어가는 서버는 아니다.
  • ISP가 갖고 있고 여기에 여러 도메인명과 ip 주소가 캐싱되어있다.
  • 그래서 클라이언트가 통신하려고 요청했을 때 isp에 들어오고 로컬 dns 서버로 가 빠르게 ip주소를 찾을 수도 있다.

작동 과정

반복적 쿼리 접근

예시의 경우

  1. 먼저 로컬 서버에게 물어본다.
  2. 캐싱이 된 것이 없다면 로컬 서버가 도메인명에 대한 ip를 모르니 루트 서버에게 edu 서버에 대한 ip 주소를 묻느다.
  3. 루트 서버가 로컬 서버에게 edu 서버의 ip 주소를 알려준다.
  4. 로컬 서버가 edu 서버에게 umass.edu 서버의 ip 주소를 묻는다.
  5. edu 서버가 umass.edu 서버의 ip 주소를 알려준다.
  6. 로컬 서버가 umass.edu 서버에게 gaia.cs.umass.edu에 대응하는 ip주소를 묻는다.
  7. umass.edu 서버가 로컬 서버에게 ip 주소를 알려준다.
  8. 로컬 서버가 알아낸 ip 주소를 캐싱한 후 호스트에게 준다.

재귀적 쿼리 접근

  1. 먼저 로컬 서버에게 물어본다.
  2. 캐싱이 된 것이 없다면 로컬 서버가 루트 서버에게 물어본다.
  3. 루트 서버가 edu 서버에게 물어본다.
  4. edu 서버가 umass.edu 서버에게 물어본다.
  5. umass.edu 서버가 edu 서버에게 ip 주소를 알려준다.
  6. edu 서버가 루트 서버에게 알려준다.
  7. 루트 서버가 로컬 서버에게 알려준다.
  8. 로컬 서버가 알아낸 ip 주소를 캐싱한 후 호스트에게 준다.
  • 재귀적 쿼리 접근은 루트를 지나가는 횟수가 더 많아 부하가 걸릴 수도 있다. 따라서 반복적 접근 방식이 더 선호된다.

캐싱

  • 로컬 dns 서버는 한번 알아낸 ip 주소를 캐싱한다.
  • 이때 캐시에 타임아웃이 걸려있다.
  • tld의 ip도 캐시해서 실제로는 루트를 잘 안 간다고 느낀다.
  • 호스트의 도메인 명이 바뀌면 상대방은 타임아웃이 발생하기 전까지 이를 모르기 때문에 캐싱된 정보를 업데이트 해줘야 한다.
  • 전세계에 있는 자신에 대한 매핑 정보를 업데이트 하는 것은 오래 걸린다.

등록

  • dns에 새로운 자신의 도메인명과 ip 주소를 넣고 싶다면 이를 대신 해주는 회사인 dns registrar에게 돈을 내면 된다.
profile

0개의 댓글