DNS

@WonyuΒ· February 26, 2025 Β· 6 min read

πŸ“Œ κ°œμš”

DNS ν•„μš”μ„±

βœ… DNSλŠ” μ‚¬λžŒμ΄ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ 도메인(www.google.com)을 IP μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜λŠ” μ—­ν• 
βœ… DNSκ°€ 없을 땐, IP μ£Όμ†Œμ™€ 도메인 이름을 λ§€ν•‘ν•œ νŒŒμΌμ„ 관리

πŸ”Ή μ£Όμ†Œ λ³€ν™˜ λͺ…λ Ή

nslookup google.com
Server:		182.172.255.180
Address:	182.172.255.180#53

Non-authoritative answer:
Name:	google.com
Address: 142.251.42.142

DNSλ₯Ό μ΄μš©ν•˜λ©΄ μœ„μ²˜λŸΌ 도메인 μ΄λ¦„μœΌλ‘œ IP μ£Όμ†Œλ₯Ό 얻을 수 μžˆλ‹€.

DNS의 ꡬ성 μš”μ†Œ

πŸ”Ή λ„€μž„ 슀페이슀

  • 트리 ꡬ쑰의 λ„€μž„ 슀페이슀λ₯Ό λΉ„λ‘―ν•΄ 데이터에 λŒ€ν•œ 이름 κ΄€λ ¨ κ·œμΉ™ μ •μ˜
  • λ„€μž„ 슀페이슀의 νŠΈλ¦¬μ— μ—°κ²°λœ ν˜ΈμŠ€νŠΈλŠ” μžμ› λ ˆμ½”λ“œλΌλŠ” 정보 μ§‘ν•©μ²΄λ‘œ ν‘œν˜„

πŸ”Ή λ„€μž„ μ„œλ²„

  • λ„€μž„ 슀페이슀의 트리 ꡬ쑰와 νŠΈλ¦¬μ— λ³΄κ΄€λœ 정보 집합체λ₯Ό 관리

πŸ”Ή 해석기(Resolver)

  • λ„€μž„ μ„œλ²„λ‘œλΆ€ν„° ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­ 정보λ₯Ό μ–»μ–΄ λ‚΄λŠ” ν”„λ‘œκ·Έλž¨

πŸ“Œ λ„€μž„ 슀페이슀

λ„€μž„ 슀페이슀의 ꡬ쑰

βœ… DNS λ„€μž„ μŠ€νŽ˜μ΄μŠ€λŠ” 계측적인 트리 ꡬ쑰
βœ… μƒμœ„ λ„λ©”μΈμ—μ„œ ν•˜μœ„ λ„λ©”μΈμœΌλ‘œ λ‚΄λ €κ°€λŠ” 계측적 ꡬ쑰λ₯Ό κ°€μ§€κ³  μžˆμ–΄ 효율적으둜 관리

. (루트 도메인)
β”œβ”€β”€ com
β”‚   β”œβ”€β”€ google.com
β”‚   β”‚   β”œβ”€β”€ www.google.com
β”‚   β”‚   β”œβ”€β”€ mail.google.com
β”œβ”€β”€ org
β”‚   β”œβ”€β”€ wikipedia.org
β”‚   β”œβ”€β”€ openai.org

πŸ”Ή TLD(Top Level Domain)
μ΅œμƒμœ„ 도메인을 λœ»ν•˜λ©°, μœ„μ—μ„  com, orgκ°€ TLD

λ°μ΄ν„°λ² μ΄μŠ€ μ„œλΉ„μŠ€

βœ… DNS μ„œλ²„λŠ” λΆ„μ‚°λœ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμœΌλ‘œ, νŠΉμ • 도메인 정보λ₯Ό μ €μž₯ν•˜κ³  관리
βœ… 계측 ꡬ쑰둜 κ΄€λ¦¬ν•¨μœΌλ‘œμ¨, ν•˜μœ„ 도메인 관리 κΆŒν•œ μœ„μž„μ„ ν•˜λΆ€ ꡬ쑰 전체에 λŒ€ν•΄ μž¬κ·€μ μœΌλ‘œ 적용

πŸ”Ή μ‘΄(Zone)
μž„μ˜μ˜ λ„€μž„ μ„œλ²„κ°€ κ΄€λ¦¬ν•˜λŠ” μ˜μ—­

πŸ”Ή 도메인과 μ‘΄
νŠΉμ • λ„€μž„ μ„œλ²„ ν•˜λΆ€μ— μƒˆλ‘œμš΄ 도메인 λ„€μž„ μ„œλ²„κ°€ μΆ”κ°€λ˜λ©΄, 도메인과 μ‘΄ μ˜μ—­μ΄ 달라진닀.

μžμ› λ ˆμ½”λ“œ

βœ… DNSλŠ” λ‹€μ–‘ν•œ 정보(도메인 이름, IP μ£Όμ†Œ λ“±)λ₯Ό μžμ› λ ˆμ½”λ“œ(Resource Record) ν˜•νƒœλ‘œ μ €μž₯

πŸ”Ή μžμ› λ ˆμ½”λ“œ ν•„λ“œ

  • Name: 찾고자 ν•˜λŠ” κ°€λ³€ 길이의 도메인 이름
  • Type: λ ˆμ½”λ“œμ˜ μ’…λ₯˜
  • Class: ν”„λ‘œν† μ½” νŒ¨λ°€λ¦¬, μΈν„°λ„·μ—μ„œλŠ” IN κ°’ μ‚¬μš©
  • TTL(Time To Live): μžμ› λ ˆμ½”λ“œμ˜ μœ νš¨μ‹œκ°„μ„ ν‘œμ‹œ, μΊμ‹œμ˜ 만료 μ‹œκ°„μ„ μ •ν•œλ‹€.
  • RD Length: μžμ› λ°μ΄ν„°μ˜ 길이
  • RD(Resource Data): μžμ› 데이터, μžμ› λ ˆμ½”λ“œμ˜ μœ ν˜• 값에 따라 λ‚΄μš©μ˜ ꡬ성과 크기가 달라진닀.

πŸ”Ή μžμ› λ ˆμ½”λ“œ μ’…λ₯˜

λ ˆμ½”λ“œ νƒ€μž… μ„€λͺ…
A 도메인 β†’ IPv4 μ£Όμ†Œ λ³€ν™˜
AAAA 도메인 β†’ IPv6 μ£Όμ†Œ λ³€ν™˜
CNAME 도메인 β†’ 별칭(alias) μ„€μ •
MX 메일 μ„œλ²„ 정보
NS νŠΉμ • λ„λ©”μΈμ˜ λ„€μž„ μ„œλ²„ 정보

πŸ“Œ λ„€μž„ μ„œλ²„μ™€ 해석기

해석기 (Resolver)

βœ… ν•΄μ„κΈ°λŠ” μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 도메인 이름을 IP μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜λŠ” κ³Όμ •μ˜ μ‹œμž‘μ 

πŸ”Ή 인증 데이터와 μΊμ‹œ 데이터

  • 인증 데이터: ν•΄λ‹Ή 데이터λ₯Ό 직접 κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„λ‘œλΆ€ν„° 받은 정보
  • μΊμ‹œ 데이터: 이전 μš”μ²­μ— μ˜ν•΄ ν˜ΈμŠ€νŠΈκ°€ λ³΄κ΄€ν•˜λ˜ 데이터

μš”μ²­μ˜ 처리

βœ… DNS μ§ˆμ˜λŠ” 두 κ°€μ§€ λ°©μ‹μœΌλ‘œ μˆ˜ν–‰

πŸ”Ή μž¬κ·€μ  질의

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ 둜컬 λ„€μž„ μ„œλ²„μ— μ§ˆμ˜ν•˜λ©΄, 둜컬 λ„€μž„ μ„œλ²„κ°€ 슀슀둜 μ΅œμ’… 응닡을 μ°Ύμ•„μ„œ λ°˜ν™˜
  • ν΄λΌμ΄μ–ΈνŠΈλŠ” 쀑간 과정을 μ•Œ ν•„μš” 없이 μ΅œμ’… 결과만 λ°›μŒ

    Resolver <-> Local Name Server <-> Name Server1 
                               <-> Name Server2 
                               <-> Target Name Server (μ΅œμ’… 응닡 λ°˜ν™˜)

πŸ”Ή 반볡적 질의

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ 직접 μ—¬λŸ¬ 개의 λ„€μž„ μ„œλ²„μ— 질의
  • λ„€μž„ μ„œλ²„λŠ” μ΅œμ’… IP μ£Όμ†Œλ₯Ό μ£ΌλŠ” 것이 μ•„λ‹ˆλΌ, λ‹€μŒ μ§ˆμ˜ν•  λ„€μž„ μ„œλ²„λ₯Ό μ•ˆλ‚΄

    Resolver <-> Local Name Server 
         <-> Name Server1 
         <-> Name Server2 
         <-> Target Name Server (μ΅œμ’… 응닡 λ°˜ν™˜)

πŸ“Œ DNS ν”„λ‘œν† μ½œ

DNS λ©”μ‹œμ§€

βœ… UDP 53번 포트λ₯Ό μ‚¬μš©ν•˜λ©°, λ©”μ‹œμ§€λŠ” μš”μ²­(Request)κ³Ό 응닡(Response)으둜 ꡬ성

πŸ”Ή DNS λ©”μ‹œμ§€ ꡬ쑰

| Header | Question | Answer | Authority | Additional |
  • Header: μš”μ²­ ID, ν”Œλž˜κ·Έ, 질의 수 λ“± 포함
  • Question: ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ 도메인 정보
  • Answer: μ§ˆμ˜μ— λŒ€ν•œ 응닡 (IP μ£Όμ†Œ λ“±)
  • Authority: κΆŒν•œ μžˆλŠ” λ„€μž„ μ„œλ²„ 정보
  • Additional: μΆ”κ°€ 정보 (예: CNAME λ ˆμ½”λ“œ)
@Wonyu
Hello :) I'm Wonyu