• 이용자의 요구에 따라 도메인 이름에 대응하는 IP 주소를 찾아내는 것을 name resolution이라고 함
  • name resolution이라는 구조는 DNS의 중요한 기본 기능

1. 질의와 응답

  • name resolution의 기본은 질의와 응답
  • 질의와 응답을 통한 주고받는 정보를 알고 싶은 사람과 정보를 제공하는 사람 사이에서 발생

1.1. 질의와 응답에 대한 3가지 약속이 있음

  1. 질의와 응답은 항상 1대 1로 대응함
    • 질의에 대응하지 않는 응답이 오거나, 한 개의 질의에 두 개의 응답이 오는 일은 없음
    • DNS에 www.foo.bar 도메인에 대한 IP 질의
  1. 정보를 알고 싶은 사람은 알고 싶은 정보의 이름(도메인 이름)과 종류(타입)를 지정
  1. 정보를 제공하는 사람은 받은 질의에 대해 자신이 알고 있는 정보를 응답
    • www.foo.bar에 IP는 1.2.3.5으로 질의한 클라이언트에 응답

2. name resolution의 작동

2.1. name resolution의 네 가지 포인트

  1. A가 보내는 질의는 항상 같은 내용임
  1. A가 보낸 질의를 받은 네임 서버는 자신이 알고 있는 정보를 응답
    • 네임 서버가 도메인 이름을 다른 네임 서버에게 위임하고 있을 때는 위임처(자식)의 네임 서버 정보를 응답함
    • 네임 서버가 도메인 이름의 정보를 가지고 있을 때는 가지고 있는 정보를 응답
  1. A는 응답이 네임 서버 정보에 관한 것인지 원하는 응답인지에 따라 행동을 변경
  1. 네임 서버 정보를 받았을 때, A는 정보에 적힌 네임 서버에게 질의함

2.2. name resolution의 작동 예시

  1. 클라이언트가 www.foo.bar에 접속 시도
    • 클라이언트는 www.foo.bar의 IP 주소를 알 수 없기에 DNS 확인 필요
  1. 루트(root) 질의 및 응답
    • A는 계층 구조의 정점인 루트의 네임서버로 알고 싶은 정보의 이름과 종류(www.foo.bar의 IP)를 질의함
    • 루트는 bar을 위임하고 있기 때문에 위임처인 bar의 네임 서버 정보(ns.bar.)를 응답
  1. .bar. 질의 및 응답

    • 루트로 부터 받은 응답에서 아래 두 가지를 알 수 있음
      • 루트는 bar를 위임하고 있음
      • 위임처의 네임 서버는 ns.bar.임
    • 루트로 부터 받은 정보를 사용해 bar의 네임 서버로 이름과 종류(www.foo.bar의 IP)를 질의함
    • bar은 foo.bar을 위임하고 있기 때문에 위임처인 foo.bar의 네임 서버 정보(ns.foo.bar,)를 응답
  2. foo.bar. 질의 및 응답

    • bar.로 부터 받은 응답에서 아래 두 가지를 알 수 있음
      • bar는 foo.bar를 위임하고 있음
      • 위임처의 네임 서버는 ns.foo.bar.임
    • bar.로 부터 받은 정보를 사용해 foo.bar.의 네임 서버로 이름과 종류(www.foo.bar의 IP)를 질의함
    • foo.bar 네임 서버는 www.foo.bar의 IP 주소를 알고 있기 때문에 IP 주소를 응답
    • A는 www.foo.bar의 IP 주소(1.2.3.4)를 얻을 수 있으며 name resolution이 종료됨
  1. 클라이언트에 www.foo.bar의 IP 응답

3. name resolution을 위해 필요한 것

3.1. 부모가 응답하는 자식의 네임 서버 정보 → '위임 정보'

  • 어떤 도메인에 서브 도메인을 만들고, 서브 도메인을 다른 사람에게 위임하면 위임한 쪽(부모)와 위임 받는 쪽(자식)은 부모-자식 관계가 됨
  • 네임 서버가 응답하는 위임처(자식)의 네임 서버 정보를 가지고 계층 구조를 따라감
  • 계층 구조를 따라갈 수 있도록 하기 위해서 위임자(부모)가 응답하는 위임처(자식)의 네임 서버 정보를 위임 정보라고 함

3.2. 위임 정보의 등록

  • foo.bar(자식)은 bar(부모)에게 "foo.bar.을 관리하고 있는 'ns.foo.bar.'이라는 네임 서버를 bar.의 네임 서버에 등록해 주세요"라고 의뢰함
  • 의뢰를 받아 bar은 foo.bar.의 네임 서버 정보(ns.food.bar)를 자신의 네임 서버(ns.bar)에 등록함
  • bar의 네임 서버는 www.foo.bar에 대한 질의가 오면 위임 정보로서 foo.bar의 네임 서버 정보(ns.foo.bar)를 응답함 → 부모가 응답하는 위임 정보는 자식이 등록한 네임 서버 정보
  • 자식이 잘못된 정보를 등록하면 부모는 잘못된 위임 정보를 응답하게 되고 name resolution를 할 수 없게 됨
  • name resolution를 하는 사람이 계층 구조를 따라갈 수 있게 하기 위해서는 아래 두가지가 필요
  • 자식이 부모에게 올바른 네임 서버 정보를 등록함
  • 부모가 자식으로부터 받은 네임 서버 정볼르 위임 정보로서 정확하게 응답함


4. name resolution에서 위임의 중요성

  • DNS의 name resolution는 부모가 자식에게 위임하여 만들어지는 계층 구조를 따라가는 것으로 이루어짐
  • name resolution의 구조가 가져다 주는 장점

4.1. 존(zone)마다 분산 관리를 실현할 수 있음

  • 계층화와 위임에 의해 관리하는 범위를 분산할 수 있음
  • 계층 구조를 도입해서 각 계층의 관리를 위임함으로써 위임자(부모)는 위임처(자식)의 위임 정보만 관리하면 되고, 위임처(자식)는 자신이 위임받은 부분의 계층을 관리하면 됨
  • DNS에서는 위임에 의해 관리하게 된 범위를 존(zone)이라함 → 계층화와 위임에 의해 존마다 분산 관리를 실현할 수 있음

4.2. 존(zone)을 어떻게 다룰지는 그 존의 관리자가 정할 수 있음

  • 위임된 존(zone)은 위임처에서 관리함
  • 각 존(zone)의 관리 정책을 각 존(zone)의 관리자가 정할 수 있음
  • 예를 들면, KR존에서는 레지스트리인 KISA가 정책을 정하고 있음
  • KR 정책의 예시
    • 등록자는 한국에 주소를 갖는 조직이나 개인일 것
    • 한글 도메인 이름으로 등록 가능한 라벨은 한글, 숫자, 영문자를 사용할 수 있으며 반드시 한글을 포함할 것

4.3. 어떤 존(zone)에 트러블이 발생해도 그 영향 범위를 국소화할 수 있음

  • 어떤 존(zone)에 트러블이 발생했을 때, 그 존(zone)에만 영향이 미치며 다른 존(zone)에는 영향이 미치지 않음
  • 예를 들면, KR의 네임 서버가 응답하지 않아 name resolution를 하지 못하게 되었을 때는 KR과 그 서브 도메인에만 영향을 미치며, KR과 같은 계층에 있는 com이나 net 그리고 그 서브 도메인에는 영향이 미지지 않음

+ Recent posts