DNS란 무엇인가
DNS는 사람이 읽는 도메인 이름을 IP 주소로 바꾸는 체계다. 예를 들어 www.example.com을 입력하면 컴퓨터는 숫자 주소로 바꿔야 통신한다. 쉽게 말해 인터넷의 전화번호부다. DNS는 다섯 가지 요소로 구성된다. 도메인 네임 공간은 루트 아래 TLD, 2…
주요 장면
대본
DNS 정의
DNS는 사람이 읽는 도메인 이름을 IP 주소로 바꾸는 체계다.
예를 들어 www.example.com을 입력하면 컴퓨터는 숫자 주소로 바꿔야 통신한다.
쉽게 말해 인터넷의 전화번호부다.
구성요소
DNS는 다섯 가지 요소로 구성된다.
도메인 네임 공간은 루트 아래 TLD, 2차 도메인이 이어진 역트리 구조다.
리소스 레코드는 도메인 이름 하나의 속성 정보 한 건이다.
리졸버는 질의를 대신 수행하고 결과를 캐싱하는 기능이다.
질의 절차
사용자 질의는 먼저 로컬 캐시에서 확인한다. 없으면 재귀 리졸버에 맡긴다.
재귀 리졸버는 루트 서버에 물어 TLD 서버의 위치를 얻는다.
TLD 서버가 알려 준 권한 네임서버에 물어 최종 레코드를 얻는다.
리졸버는 결과를 TTL 동안 캐싱한 뒤 클라이언트에 응답한다.
재귀와 반복
재귀 질의와 반복 질의는 질의가 오가는 구간이 다르다.
재귀 질의는 클라이언트가 리졸버에 최종 답만 요구하는 방식이다.
반복 질의는 서버가 다음 서버 주소만 알려 주는 방식이다.
아래 문제를 직접 풀어 보자.
보안 취약점
DNS는 응답에 대한 인증 수단이 없어 여러 공격에 노출된다.
가짜 응답이 캐시에 들어가면 잘못된 주소가 저장된다.
대응은 DNSSEC으로 무결성을, DoH·DoT로 질의 암호화를 맡긴다.
DNSSEC은 암호화가 아니라 무결성과 인증 기술이라는 점이 자주 틀린다.
시험 정리
마지막으로 시험에 자주 나오는 핵심을 정리한다.
질의는 리졸버에서 루트, TLD, 권한 서버 순으로 진행된다.
기본 포트는 UDP 53이고, 큰 응답과 영역 전송은 TCP 53을 쓴다.
보안은 DNSSEC, DoH·DoT, RPZ 조합으로 대응한다.
아래 문제를 직접 풀어 보자.