[Reference] DNS(Domain Name System)
DNS
DNS(Domain Name System)는 범국제적 단위로 웹사이트의 IP 주소와 도메인 주소를 이어주는 환경/시스템이다.
- 웹사이트에 접속할 때 어려운 IP 주소 대신 도메인 이름을 사용한다.
- 도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고, 해당 IP 주소로 접속하는 과정이 필요하다.
- 이러한 과정, 전체 시스템을 DNS라고 한다.
- 상위 기관에서 인증된 기관에게 도메인을 생성하거나, IP 주소로 변경할 수 있는 권한을 부여한다.
구성 요소
- Domain Name Space
- Name Server = 권한 있는 DNS 서버
- Resolver = 권한 없는 DNS 서버
- 우선 도메인 이름과 IP 주소를 연결해주는 ‘텍스트’를 저장하는 DB가 필요하다.
- 분산된 데이터가 어디 저장되어 있는지 찾을 프로그램들이 필요하고, 찾았으면 해당 IP 주소로 이동할 프로그램(브라우저 등)이 필요하다.
- Domain Name Space라는 규칙(방법)으로 도메인 이름 저장을 분산한다.
- Name Server(== DNS 서버)가 해당 도메인 이름의 IP 주소를 찾는다.
- Resolver가 DNS 클라이언트 요청을 네임 서버로 전달하고, 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다.
- 어떤 네임 서버에서 찾아야 하는지, 이미 캐시 되어있는지 등 찾아서 클라이언트에게 처리 결과를 전달하는 역할을 한다.
- Resolver는 단말에 구현하는 것은 무리여서, Resolver가 구현된 네임 서버의 IP 주소만을 파악한다.
- 대표적으로 KT/LG/SKT와 같은 통신사 DNS와 브라우저 우회 용도로 많이 사용하는 구글 DNS, 클라우드 플레어와 같은 Public DNS 서버가 있다.
동작 방식
- 내 컴퓨터에서
www.naver.com
에 접속하려고 한다. - 브라우저는 PC에 설정된 Local DNS Server에 해당 도메인과 IP를 갖고 있는지 알아본다.
- 이미 주소의 정보가 캐싱되어 있다면 바로 반환을 해주고, 없다면 Local DNS Server는 Root DNS Server에 이 주소에 해당하는 IP를 어디서 찾을 수 있는지 알아본다.
- Root DNS Server는
.com
으로 끝나는 도메인들을 담당하는 서버의 IP 주소를 반환해준다. - Local DNS Server가 이 주소로 찾아가면,
.com
담당 서버는naver.com
의 도메인 정보를 가진 DNS Server의 IP주소를 반환해준다. - 그 주소를 통해 찾아가면
naver.com
의 여러 호스트 네임별 IP 주소들이 있다.- Ex)
www.naver.com
,mail.naver.com
,blog.naver.com
등
- Ex)
www
에 해당하는 IP 주소를 얻어낸 다음 브라우저에게 반환하게 되면, 비로소www.naver.com
의 서버로 접속하게 된다.
Domain Name Space
- Domain Name Space는 DNS가 저장, 관리하는 계층적 구조를 의미한다.
- Domain Name Space는 최상위 Root DNS 서버가 존재하고, 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조로 되어있다.
- 폴더 구조와 비슷하다.
Name Server = DNS Server
- 문자열로 표현된 도메인 이름을 실제 컴퓨터가 통신할 때 사용하는 IP 주소로 변환시키기 위해서는 Domain Name Space의 트리 구조에 대한 정보가 필요한데, 이러한 정보를 가지고 있는 서버를 Name Server라고 한다.
- DB 역할(저장, 관리), 찾아주는 역할, 요청 처리 응답 구현
- 전 세계에 13개의 Root DNS 서버가 구축되어 있다.
- 그리고, DNS 서버를 복사하여 같은 기능을 담당하는 미러 서버가 있다고 한다.
1.Root DNS Server
- TLD DNS Server IP 주소를 저장하고 안내하는 역할을 한다.
2.Top-Level Domain(TLD) DNS Server
- 도메인 등록 기관이 관리하는 서버.
- SLD DNS Server의 주소를 저장하고 안내하는 역할을 한다.
- 도메인 판매 업체(가비아 등)의 DNS 설정이 변경되면, 도메인 등록 기관으로 전달되기 때문에 어떤 도메인이 어떤 판매업체에서 구매했는지 알 수 있는 것이다.
3.Second-Level Domain(SLD) DNS Server
- 실제 개인 도메인과 IP 주소의 관계가 기록(저장, 변경)되는 서버.
- 일반적으로 도메인/호스팅 업체의 네임서버를 말한다.
4.권한 없는 DNS 서버(Resolver Server)
- DNS 서버는 Domain Name Space를 위한 권한 있는 DNS 서버와 권한이 없는 DNS 서버로 구분된다.
- 위 1,2,3은 권한이 있는 DNS 서버이다.
- Name Space를 위한 권한 있는 DNS 서버는 IP 주소와 도메인 이름을 매핑한다.
- Name Space를 위한 권한 없는 DNS 서버는 질의를 통해 IP 주소를 알아내거나 캐싱한다.
Resolver
- Resolver는 웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로 전달하고 네임 서버로부터 정보(도메인 이름, IP 주소)를 받아 클라이언트에게 제공하는 기능을 수행한다.
- Resolver는 하나의 네임 서버에게 DNS 요청을 전달하고, 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받아온다.
- 이렇듯 Resolver는 수 많은 네임 서버에 접근하여 사용자로부터 요청 받은 도메인의 IP 정보를 조회하는 기능을 수행한다.
- 하지만, Resolver 기능을 단말에 구현하는 것은 자원의 한계가 있기 때문에, 대부분 기능을 DNS 서버에 구현하고, 클라이언트 호스트는 Resolver의 단순한 기능만을 지닌 Resolver 루틴을 구현하는 옵션이 제시되어 있다.
- 이런 Resolver를 Stub Resolver라고 하며, Stub Resolver는 수 많은 네임 서버의 구조를 파악할 필요 없이, Resolver가 구현된 DNS 서버의 IP 주소만 파악하면 된다.
- 도메인에 대한 질의를 받은 Stub Resolver는 설정된 DNS 서버로 DNS Query를 전달하고, DNS 서버로부터 최종 결과를 응답 받아 웹 브라우저로 전달하는 인터페이스 기능만을 수행한다.
댓글남기기