- 이용자의 요구에 따라 도메인 이름에 대응하는 IP 주소를 찾아내는 것을 name resolution이라고 함
- name resolution이라는 구조는 DNS의 중요한 기본 기능
1. 질의와 응답
- name resolution의 기본은 질의와 응답
- 질의와 응답을 통한 주고받는 정보를 알고 싶은 사람과 정보를 제공하는 사람 사이에서 발생
1.1. 질의와 응답에 대한 3가지 약속이 있음
- 질의와 응답은 항상 1대 1로 대응함
- 질의에 대응하지 않는 응답이 오거나, 한 개의 질의에 두 개의 응답이 오는 일은 없음
- DNS에 www.foo.bar 도메인에 대한 IP 질의
- 정보를 알고 싶은 사람은 알고 싶은 정보의 이름(도메인 이름)과 종류(타입)를 지정
- 'www.foo.bar'의 IP 주소와 같이 이름과 종류 양쪽을 지정해야 함
- 현재 www.foo.bar의 정보를 DNS에서 확인
- 정보를 제공하는 사람은 받은 질의에 대해 자신이 알고 있는 정보를 응답
- www.foo.bar에 IP는 1.2.3.5으로 질의한 클라이언트에 응답
2. name resolution의 작동
2.1. name resolution의 네 가지 포인트
- A가 보내는 질의는 항상 같은 내용임
- A가 보낸 질의를 받은 네임 서버는 자신이 알고 있는 정보를 응답
- 네임 서버가 도메인 이름을 다른 네임 서버에게 위임하고 있을 때는 위임처(자식)의 네임 서버 정보를 응답함
- 네임 서버가 도메인 이름의 정보를 가지고 있을 때는 가지고 있는 정보를 응답
- A는 응답이 네임 서버 정보에 관한 것인지 원하는 응답인지에 따라 행동을 변경
- 네임 서버 정보를 받았을 때, A는 정보에 적힌 네임 서버에게 질의함
2.2. name resolution의 작동 예시
- 클라이언트가 www.foo.bar에 접속 시도
- 클라이언트는 www.foo.bar의 IP 주소를 알 수 없기에 DNS 확인 필요
- 루트(root) 질의 및 응답
- A는 계층 구조의 정점인 루트의 네임서버로 알고 싶은 정보의 이름과 종류(www.foo.bar의 IP)를 질의함
- 루트는 bar을 위임하고 있기 때문에 위임처인 bar의 네임 서버 정보(ns.bar.)를 응답
.bar. 질의 및 응답
- 루트로 부터 받은 응답에서 아래 두 가지를 알 수 있음
- 루트는 bar를 위임하고 있음
- 위임처의 네임 서버는 ns.bar.임
- 루트로 부터 받은 정보를 사용해 bar의 네임 서버로 이름과 종류(www.foo.bar의 IP)를 질의함
- bar은 foo.bar을 위임하고 있기 때문에 위임처인 foo.bar의 네임 서버 정보(ns.foo.bar,)를 응답
- 루트로 부터 받은 응답에서 아래 두 가지를 알 수 있음
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이 종료됨
- bar.로 부터 받은 응답에서 아래 두 가지를 알 수 있음
- 클라이언트에 www.foo.bar의 IP 응답
- 클라이언트는 www.foo.bar의 IP 주소(1.2.3.4)에 접속
- 클라이언트는 www.foo.bar의 IP 주소(1.2.3.4)에 접속
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 그리고 그 서브 도메인에는 영향이 미지지 않음
'GTM과 DNS' 카테고리의 다른 글
도메인 주소에서 생명 주기(Life Cycle)란 (0) | 2022.07.25 |
---|---|
도메인 이름 등록 과정 (2) | 2022.07.25 |
DNS RR(Domain Name System Resource Records) → DNS 자원 레코드 (0) | 2022.07.25 |
코모도(comodo) CA의 AddTrust External 루트 인증서 만료 -> 섹티코(Sectigo) CA로 변경 (0) | 2022.06.30 |
WHOIS 서버란 (0) | 2022.06.30 |