/* DNS (도메인 네임 서버) */
인터넷에서 모든 장치는 고유 IP주소를 가지고 있다. 하지만 우리는 정작 웹사이트에 접속을 할 때 IP주소를 이용하지 않고 도메인 이름을 사용한다. 이유는 도메인 이름을 더 쉽게 기억할 수 있기 때문이다. 따라서, 도메인을 실제 처리를 하기 위해서는 IP주소로 바꿔야 하는데 이를 가능하게 하는 시스템을 DNS라고 한다.
/* DNS 프로세스 과정 */
1. 기지국 DNS 서버 (Local DNS Server)
URL에 도메인 이름을 검색하면 해당 IP를 찾기위해 가장 먼저 찾는 DNS 서버입니다.
컴퓨터의 LAN 선을 통해 인터넷이 연결되면, 인터넷을 사용할 수 있게 IP를 할당해주는 통신사 (KT, SKT, LG ..)에 해당하는 각 통신사의 DNS서버가 등록됩니다.
"naver.com" 의 도메인에 접속을 하려고 할 때,
찾는 도메인 주소가 기지국의 DNS에 존재한다면 IP주소를 바로 받을 수 있습니다.
찾는 도메인 주소가 기지국의 DNS에 존재하지 않는다면 기지국 DNS 서버는 Root DNS 서버에 물어봅니다
여기서 도메인 네임에 대한 정보를 갖고 있으며, 해당 도메인 네임에 대한 IP주소를 갖고 있는 서버를
Autoritative DNS Server라고 한다
두개 중에 하나만 알고 있는 서버를 Non-Autoritative DNS Server라고 한다.
/* Root DNS Server*/
Root DNS는 naver.com의 IP주소를 알아내기 위해 root node를 시작으로 하위 계층에 속한 node dns 서버로 차례로 물어보게 됩니다.
처음에는 Root Node에 IP 주소를 물어봅니다. (물어보는 것을 쿼리라고 합니다) 하지만, Rood DNS Server에도 해당 도메인의 IP가 없을 수 있습니다.
대신, 한 가지 정보를 실어서 전달해줍니다.
"naver.com의 IP주소는 모르지만 .com 의 주소를 알고 있으니 com dns server에 물어봐."
그러면 Local DNS Server는 com DNS Server에 물어봅니다.
그 다음은 naver.com에서 www.naver.com을 얻게 됩니다.
이런 도메인들을 최상위 도메인 (TLD : Top-Level Domain) 이라고 부릅니다.
예를들어
naver.co.kr이라는 도메인을 보면
naver. co. kr.
이렇게 나눌 수 있는데
kr은 TLD
co는 2차 도메인
naver는 3차 도메인
이라는 것을 알 수 있다.
/* 쿼리 */
Root DNS Server에서 IP를 찾을 때 Root DNS Server에서 다 알아서 찾아 주는 것이 아니라
1. Root DNS Server에서 TLD 주소를 Local DNS Server에 전달한다.
2. Local DNS Server는 받은 TLD주소를 이용해 TLD Server에게 물어본다.
3. TLD Server는 2차 DNS 주소를 Local DNS Server에 전달한다.
...
이를 Iterative Query 라고 한다. (Recursive Query도 존재한다.)
/* DNS의 특성*/
Root DNS Server에 하위 도메인들이 있는 걸 보면 Tree 계층과 비슷하다는 것을 알 수 있다.
1. DNS는 hierarchy, distrubuted 한 특성을 가진다. (계층적, 분산적)
2. DNS 복제가 가능하다.
- 하나의 도메인에 대해 여러 네임 서버가 동일한 정보를 가지도록 하는 방식이다.
- 네임 서버가 여러 개라면 네임 서버 중 하나가 장애를 겪더라도 다른 네임 서버가 도메인에 대한 요청을 처리할 수 있다.
3. Identication이 가능하다.
- 질의와 응답의 연관성 유지가 가능하다.
- ex)
- 클라이언트가 www.example.com에 대한 IP 주소를 요청하면서, DNS 메시지 헤더의 Identification 필드에 12345라는 값을 설정합니다.
- DNS 서버는 이 질의를 처리한 후 응답 메시지를 보내는데, 그 메시지의 Identification 필드 값도 12345로 설정합니다.
- 클라이언트는 응답을 받을 때, 응답 메시지의 Identification 필드 값을 확인하여 이 응답이 자신이 보낸 www.example.com에 대한 질의의 결과임을 알 수 있습니다.
4. Authoritative DNS Server 가 존재한다.
'서버' 카테고리의 다른 글
[HTTP] OSI 7계층 (1) | 2024.09.02 |
---|---|
[Node.js] 이벤트 루프 (0) | 2024.07.07 |
[Node.js] 무엇인가 (0) | 2024.07.07 |
[서버] RESTful API (0) | 2024.03.30 |
[HTTP] 멱등성 (0) | 2024.02.03 |