[네트워크] DNS(도메인 네임 시스템)
이번 포스팅에서는 DNS에 대해 공부한 내용을 정리해 보려고 한다.
DNS는 Domain Name System의 약자로서, 인터넷 상에서 접근하는 도메인에 대해 찾아가야 할 IP 주소로 변환해 주는 시스템이다. 스마트폰이나 노트북에서 어떠한 서비스를 제공하는 서버에 이르기 위해서는 웹 브라우저에서 IP 주소라고 부르는 숫자를 입력해야 한다. 하지만 우리가 항상 이 숫자를 기억하기 어려우므로, 이름을 부여하여(ex. www.example.com) 웹 사이트로 갈 수가 있다. DNS는 숫자와 이름을 매핑하여 마치 전화번호부처럼 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어하는 것이다. 이러한 요청을 쿼리라고 부른다.
DNS 서버가 어떻게 동작하는 지 원리는 위의 그림으로 이해할 수 있다. 오른쪽에 보면 Root Server, TLD Server, Authoritative Name Server 가 있는데 위에서부터 순차적으로 요청과 응답을 주고 받으면서 도메인에 대한 IP 주소를 응답해 준다.
- Root Server, Top Level Domain(TLD) Server : com, org, net 등과 같은 상위 레벨 도메인과 모든 국가의 상위 레벨 도메인에 대한 관리를 담당하는 DNS 서버.
- Authoritative DNS Server : DNS 레코드 정보를 저장, 관리한다. 일반적으로 DNS 호스팅 공급자 또는 도메인 등록기관리 / DDNS 서비스 등록 기관등의 DNS 서버와 회사, 기관, 개인이 일반적으로 구축하는 DNS 서버가 여기에 속한다.
- Cache DNS Server : 일반적으로 우리가 사용하는 통신사 등의 서버는 IP 매핑을 위한 도메인 정보도 갖지 않고, 도메인 호스트의 질의에 대해 DNS Cache나 다른 네임 서버가 가진 데이터로 응답만을 제공하는 서버로 로컬 DNS 서버 또는 퍼블릭 도메인 네임 서버로 불리우며 엄격한 계층 구조에 포함되지 않는 서버이다. 실제적으로 authoratative DNS 서버보다 많이 사용되는 서버이다.
DNS 레코드 종류는 다음과 같은 것들이 있다.
- SOA (Start of Authority) : 해당 DNS 서버 자체의 설정 정보를 정의. 도메인에 대한 관리자 정보를 저장.
- A : IPv4 형식의 호스트 주소
- AAAA : IPv6 형식의 호스트 주소
- NS (Name Server) : DNS 서버가 참조하는 다른 DNS 서버.
- CNAME (Canonical Name) : 도메인의 이름을 다른 도메인과 매핑. 하나의 도메인이나 하위 도메인을 다른 도메인으로 전달하며, IP 주소를 제공하지 않음.
- MX 레코드 : 이메일을 이메일 서버로 전송.
DDNS(Dynamic DNS)의 개념도 간단하게 정리해 보려고 한다. 우리가 어떤 IP 주소와 도메인 이름을 DNS 서버에서 매핑한다고 위에서 설명을 했었다. 하지만 경우에 따라서 유동 IP 상에서 운용되는 컴퓨터에서 서버 기능을 가지고 있을 때가 있고, 이러한 경우 고정 도메인 이름을 가지고 있다면 다른 사람들이 이 컴퓨터에 접속하기가 어렵다. 왜냐하면 IP 주소가 계속 바뀌기 때문이다. 이러한 문제점을 해결하기 위해 DDNS가 생겼다.
DDNS를 사용하기 위해 먼저 서비스를 사용하기 위해 컴퓨터의 IP 주소를 DDNS 서버에 알려주어야 한다. 그 후 컴퓨터에 설치된 클라이언트 프로그램이 IP가 바뀔 때 마다 자동적으로 DDNS 서버에 접촉하여 주기적으로 현재 상태를 업데이트 해야 한다. 그러면 이 DDNS 서버는 유동 IP를 도메인 명으로 변환하여 외부 네트워크 상의 사용자들이 도메인 명을 입력하면 그것을 받아 유동 IP 상의 컴퓨터에 접속할 수 있도록 하는 구조이다. 이 때 서버의 IP와 도메인 명 간의 데이터베이스가 정적인 것이 아니라 계속 업데이트 되어야 하기 때문에 DDNS라고 부른다.
참고자료
https://aws.amazon.com/ko/route53/what-is-dns/
https://www.webnic.cc/what-is-a-domain-name-server-dns-and-how-it-works/
https://icarus8050.tistory.com/31
https://webdir.tistory.com/161