DNS 설명: 브라우저가 웹사이트 주소를 해석하는 방법
www.google.com을 입력하고 Enter 키를 누릅니다. 페이지가 즉시 로드됩니다.
브라우저는 Google이 어디에 있는지 알지 못합니다. 반드시 물어봐야 합니다. 밀리초 단위로 빠른 일련의 조회 과정이 일어납니다. 이 시스템이 바로 도메인 네임 시스템(DNS)입니다.
DNS를 인터넷 전화번호부라고 생각하면 쉽습니다. www.google.com과 같은 이름을 142.250.80.46과 같은 IP 주소로 변환해 줍니다. DNS가 없다면 모든 웹사이트의 숫자를 외워야 할 것입니다.
조회 방식:
도메인 구조:
- 서브도메인(Subdomain): 사이트의 특정 섹션 (예: www)
- 2단계 도메인(Second-Level Domain): 브랜드 이름 (예: google)
- 최상위 도메인(TLD): 카테고리 또는 국가 (예: .com)
웹을 검색하기 전에 컴퓨터는 다음 두 곳을 확인합니다:
- 브라우저 캐시: 최근에 해당 사이트를 방문했다면 IP가 이미 저장되어 있습니다.
- Hosts 파일: 수동 매핑을 위해 컴퓨터에 저장된 로컬 파일입니다.
이 단계에서 찾지 못하면 재귀적 리졸버(Recursive Resolver)가 작동합니다. 이는 보통 ISP(인터넷 서비스 제공업체)에서 제공합니다. Google(8.8.8.8)이나 Cloudflare(1.1.1.1)와 같은 더 빠른 옵션을 사용할 수도 있습니다.
리졸버는 다음과 같은 계층 구조를 따릅니다:
- 루트 서버(Root Server): 리졸버를 올바른 TLD 서버로 안내합니다.
- TLD 서버: 리졸버를 특정 권한 있는 네임 서버(Authoritative Name Server)로 안내합니다.
- 권한 있는 네임 서버(Authoritative Name Server): 실제 IP 주소를 보유하고 있으며 이를 다시 전달합니다.
그 후 리졸버는 이 답변을 일정 시간 동안 저장합니다. 이 시간을 TTL(Time To Live)이라고 합니다. TTL이 높으면 재조회 속도가 빨라집니다. TTL이 낮으면 서버를 빠르게 변경해야 할 때 유리합니다.
일반적인 DNS 레코드 유형:
- A: 도메인을 IPv4 주소에 매핑합니다.
- AAAA: 도메인을 IPv6 주소에 매핑합니다.
- CNAME: 다른 도메인의 별칭(alias)을 생성합니다.
- MX: 이메일을 올바른 서버로 안내합니다.
- TXT: 인증 또는 보안을 위한 텍스트를 보유합니다.
DNS 쿼리는 보통 평문(plain text)으로 전송됩니다. 즉, ISP가 이를 볼 수 있다는 의미입니다. 더 나은 개인정보 보호를 위해 DNS over HTTPS(DoH) 또는 DNS over TLS(DoT)를 사용하여 이 데이터를 암호화할 수 있습니다.
DNS는 웹의 보이지 않는 기반입니다. DNS를 이해하면 배포 지연이나 서버 이전 시 발생하는 문제를 디버깅하는 데 도움이 됩니다.
출처: https://dev.to/jinkrish/dns-explained-how-your-browser-decodes-website-addresses-2bcm
