[TCP/IP Protocol #19] Part 4 | Chapter 19. 도메인 네임 시스템(DNS)
DNS(Domain Name System)
1. 정의
다른 응용 프로그램을 지원하는 데 사용되는 클라이언트/서버 응용 프로그램
응용 계층에서의 호스트 이름을 망 계층에서의 IP 주소로 매핑하는 데 사용
2. 배경
TCP/IP 프로토콜은 개체를 구분하기 위해, 인터넷에서 호스트 연결을 유일하게 식별하는 IP 주소를 사용한다.
하지만 사람들은 주소보다는 이름을 사용하고자 하는 경향이 있다.
그래서 이름을 주소로 바꿔주고, 주소를 이름으로 주는 시스템이 필요해지게 된다.
인터넷이 작은 규모일 경우는 호스트 파일(host file, 항목: 이름, 주소)을 사용하여 매핑 수행
but, 모든 호스트에 대한 호스트 파일을 저장하기에는 크기가 너무 큼, 변화가 있을 때마다 갱신하는 것도 불가능
해결책: 전체 호스트 파일을 단일 컴퓨터에 저장하여 매핑을 요구하는 모든 컴퓨터에게 이 정보를 접근해 가져갈 수 있도록 함 ⭢ 인터넷에 수많은 트래픽이 발생
⭢ (현재) 정보를 작은 부분으로 나누어 서로 다른 컴퓨터에 각 부분을 나누어 저장하는 것
⭢ 각 호스트들은 매핑이 필요할 경우 이 정보를 가지는 가장 가까운 컴퓨터와 통신하게 됨
⭢ 이 방법이 도메인 네임 시스템에 의해 사용됨
사용자는 원격 호스트에 동작하는 파일 전송 서버에 접속하여 파일을 클라이언트로 전송하고자 한다.
사용자는 파일 전송 서버 이름(xxx.com)만 알고 있다.
TCP/IP 집합은 연결을 설정하기 위해 파일 전송 서버의 IP 주소를 알아야 함
3. 서버 분류
DNS를 통해 서비스를 수행할 경우 DNS 서버가 필요하다.
네임 서버의 4가지 유형: DNS 해석기, 루트 네임 서버, TLD 네임 서버, 권한 있는 네임 서버
DNS 해석기(DNS Resolver)
클라이언트와 네임 서버의 중계자 역할
DNS 요청을 네임 서버로, DNS 응답을 클라이언트에게 전달
루트 네임 서버(Root Name Server)
DNS 서버의 최상위 네임 서버로 DNS 해석부터 발생한 DNS 요청에 대해 적절한 TLD 네임 서버 정보를 반환한다.
TLD 네임 서버(Top Level Domain Name Server)
.com, .net과 같은 최상위 도메인에 대한 네임 서버로 해당 영역에 포함되는 모든 도메인 이름의 정보를 유지한다.
DNS 요청에 대해 TLD 네임 서버에서 권한 있는 네임 서버를 지정하여 반환한다.
권한 있는 네임 서버(Authoritative Name Server)
DNS 해석기가 TLD 네임 서버로부터 응답을 받으면, 확인자는 해당 응답을 권한 있는 네임 서버로 보낸다.
요청하는 도메인 주소에 대한 IP 주소를 확인하는 마지막 단계
4. DNS의 동작 원리
1) 사용자가 웹 브라우저 주소 표시줄에 www.amazon.com을 입력하고 Enter를 누른다.
2) www.amazon.com에 대한 요청은 일반적으로 케이블 인터넷 공급 업체, DSL 광대역 공급업체 또는 기업 네트워크와 같은 인터넷 서비스 제공 업체(ISP)가 관리하는 DNS 해석기로 전달된다.
* DSL: 도메인 특화 언어(Domain Specific Language), 특정 도메인에 특화된 비교적 작고 간단한 프로그래밍 언어
3) ISP의 DNS 해석기는 www.amazon.com에 대한 요청을 DNS 루트 이름 서버에 전달된다.
4) ISP의 DNS 해석기는 www.amazon.com에 대한 요청을 .com 도메인의 TLD 이름 서버 중 하나에 다시 전달한다. .com 도메인의 이름 서버는 amazon.com 도메인과 연관된 4개의 Amazon Route 53 이름 서버의 이름을 사용하여 요청에 응답한다.
5) ISP의 DNS 해석기는 Amazon Route 53 이름 서버 하나를 선택해 www.amazon.com에 대한 요청을 해당 이름 서버에 전달한다.
6) Amazon Route 53 이름 서버는 amazon.com 호스팅 영역에서 www.amazon.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환한다.
7) ISP의 DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 된다. 해석기는 이 값을 웹 브라우저로 반환한다. 또한 DNS 해석기는 다음에 누군가가 amazon.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 동안 amazon.com의 IP 주소를 캐싱(저장)한다.(TTL(Time to Live) 참조)
8) 웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.amazon.com에 대한 요청을 전송한다. 여기가 콘텐츠(Contents)가 있는 곳으로, 웹 사이트 엔드 포인트(End-point)로 구성된 Amazon S3 버킷 또는 Amazon EC2 인스턴스에서 실행되는 웹 서버이다.
9) 192.0.2.44에 있는 웹 서버 또는 그 박의 리소스는 www.amazon.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시한다.
[호스트 이름을 IP 주소로 매핑하는 절차]
1. 사용자: 호스트 이름을 파일 전송 클라이언트에 전달
2. 파일 전송 클라이언트는 호스트 이름을 DNS 클라이언트에 전달
3. 부팅된 후 컴퓨터들이 DNS 서버의 주소를 앎 - DNS 클라이언트는 DNS 서버의 알려진 주소를 사용하여 파일 전송 서버의 이름을 질의하는 메시지를 DNS 서버에 보냄
4. DNS 서버는 원하는 파일 전송 서버의 IP 주소를 응답
5. DNS 클라이언트는 IP 주소를 파일 전송 클라이언트에 전달
6. 파일 전송 클라이언트는 수신한 IP 주소를 사용하여 파일 전송 서버에 접속
-
사람이 읽을 수 있는 도메인 이름(sarahee.tistory.com)을 머신이 읽을 수 있는 IP 주소(211.231.99.250)로 변환
IP 주소: 인터넷상의 모든 컴퓨터라는 숫자를 사용해서 통신하는 숫자
DNS 서비스(e.g., Amazon Route 53)
쿼리: DNS 서버에서 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어/요청
재귀적 DNS: DNS 레코드를 소유하고 있지 않지만 사용자를 대신해서 DNS 정보를 가져올 수 있는 중간자의 역할을 함
- 사용자가 웹 브라우저를 열어 주소 표시줄에 www.example.com을 입력하고 Enter 키를 누릅니다.
- www.example.com에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS 해석기로 라우팅됩니다.
- ISP의 DNS 해석기는 www.example.com에 대한 요청을 DNS 루트 이름 서버에 전달합니다.
- ISP의 DNS 해석기는 www.example.com에 대한 요청을 이번에는 .com 도메인의 TLD 네임 서버 중 하나에 다시 전달합니다. .com 도메인의 이름 서버는 example.com 도메인과 연관된 4개의 Amazon Route 53 이름 서버의 이름을 사용하여 요청에 응답합니다.
- ISP의 DNS 해석기는 Amazon Route 53 이름 서버 하나를 선택해 www.example.com에 대한 요청을 해당 이름 서버에 전달합니다.
- Amazon Route 53 이름 서버는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환합니다.
- ISP의 DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 됩니다. 해석기는 이 값을 웹 브라우저로 반환합니다. 또한, DNS 해석기는 다음에 누군가가 example.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 example.com의 IP 주소를 캐싱(저장)합니다. 자세한 내용은 Time to Live(TTL)를 참조하세요.
- 웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.example.com에 대한 요청을 전송합니다. 여기가 콘텐츠가 있는 곳으로, 예를 들어 웹 사이트 엔드포인트로 구성된 Amazon S3 버킷 또는 Amazon EC2 인스턴스에서 실행되는 웹 서버입니다.
- 192.0.2.44에 있는 웹 서버 또는 그 밖의 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시합니다.
* DSL 광대역 공급업체: Domain Specific Language
* DNS 해석기: (resolver, 재귀적 DNS)
* TLS name server
Reference
https://aws.amazon.com/ko/route53/what-is-dns/
Behrouz A. Forouzan (2009), TCP/IP 프로토콜(Protoccol Suite), 4th Edition
김원일, 서종호, 따라하며 배우는 AWS 네트워크 입문, enBergen, BOOKK
권영환, 아마존 웹 서비스(AWS Discovery Book), 정보문화사
'Networking > Network' 카테고리의 다른 글
DHCP: 호스트 설정 - 배경, 동작 절차, 기능, 상태 천이, 이슈 (1) | 2024.01.30 |
---|---|
[TCP/IP Protocol #17] Part 4 | Chapter 17. 응용 계층 개요 (0) | 2024.01.29 |
[TCP/IP Protocol #7] Part 2 | Chapter 7. IPv4 (1) | 2024.01.25 |
[TCP/IP #6] Part 2 | Chapter 6. IP 패킷의 전달과 포워딩 - 라우터 구조 (0) | 2024.01.25 |
[TCP/IP #4] Part 2 | Chapter 4. 네트워크 계층의 소개 - 오류/흐름/혼잡 제어 (1) | 2024.01.25 |