DNS 쑰회 κ³Όμ •

DNS μ‘°νšŒκ°€ μ΄λ£¨μ–΄μ§€λŠ” 과정에 λŒ€ν•΄ μ•Œμ•„λ΄…λ‹ˆλ‹€.

DNSλž€?

DNS(Domain Name System)은 μ „ν™”λ²ˆν˜ΈλΆ€μ™€ 같은 역할을 ν•©λ‹ˆλ‹€.

λͺ¨λ“  ν˜ΈμŠ€νŠΈλŠ” IP μ£Όμ†Œλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ IP μ£Όμ†ŒλŠ” 32λΉ„νŠΈ ν˜Ήμ€ 128λΉ„νŠΈμ˜ 숫자둜 이루어져 μžˆμ–΄ κΈ°μ–΅ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
κ·Έλž˜μ„œ 호슀트의 IP μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•˜κΈ° μ‰¬μš΄ μ΄λ¦„μœΌλ‘œ λŒ€μ²΄ν•  수 μžˆλ„λ‘ 도메인 λ„€μž„μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

일일히 μ£Όμ†Œμ°½μ— 142.251.222.46을 μž…λ ₯ν•˜λŠ” 것보닀 google.com을 μž…λ ₯ν•˜λŠ” 것이 νŽΈλ¦¬ν•˜κ² μ£ ?

이처럼 도메인 λ„€μž„μ„ 톡해 IP μ£Όμ†Œλ‘œ μ ‘μ†ν•˜λŠ” 과정을 DNS라고 ν•©λ‹ˆλ‹€.
DNSλž€ μ „ν™”λ²ˆν˜ΈλΆ€μ—μ„œ 도메인은 μ΄λ¦„μœΌλ‘œ, IP μ£Όμ†ŒλŠ” μ „ν™”λ²ˆν˜Έλ‘œ λΉ„μœ ν•  수 μžˆκ² λ„€μš”.

DNS μ„œλ²„

DNS μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ„œλ²„λ₯Ό DNS μ„œλ²„λΌκ³  ν•©λ‹ˆλ‹€.

DNS μ„œλ²„λŠ” DNS ν™•μΈμž, 루트 μ„œλ²„, TLD μ„œλ²„, κΆŒν•œ μ„œλ²„λ‘œ λΆ„λ₯˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DNS Resolver

DNS Resolver

DNS Recursive Resolver, DNS Recursor, DNS Resolver, μž¬κ·€ DNS, μˆœν™˜ DNS, DNS ν™•μΈμž λ“± λ‹€μ–‘ν•œ μ΄λ¦„μœΌλ‘œ λΆˆλ¦½λ‹ˆλ‹€.
이 κΈ€μ—μ„œλŠ” DNS ν™•μΈμžλ‘œ ν‘œκΈ°ν•˜κ² μŠ΅λ‹ˆλ‹€.

DNS ν™•μΈμžλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ DNS μ„œλ²„ μ‚¬μ΄μ˜ μ€‘κ°œμžμž…λ‹ˆλ‹€.

ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° 쿼리λ₯Ό 받은 ν›„ ν•΄λ‹Ή λ„λ©”μΈμ˜ IP μ£Όμ†Œλ₯Ό μ°ΎκΈ° μœ„ν•΄ λ‹€λ₯Έ DNS μ„œλ²„μ— 쿼리λ₯Ό 보내고,
μ΅œμ’…μ μœΌλ‘œ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ IP μ£Όμ†Œλ‘œ μ‘λ‹΅ν•©λ‹ˆλ‹€.

DNS 쿼리

DNS μ‘°νšŒλŠ” 쿼리λ₯Ό λ°œμƒν•¨μ— 따라 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

Recursive Query(μž¬κ·€μ  질의): ν΄λΌμ΄μ–ΈνŠΈμ™€ DNS ν™•μΈμž κ°„ 톡신에 μ‚¬μš©λ˜λŠ” μΏΌλ¦¬μž…λ‹ˆλ‹€.
Iterative Query(반볡적 질의): DNS ν™•μΈμžμ™€ λ‹€λ₯Έ DNS μ„œλ²„ κ°„ 톡신에 μ‚¬μš©λ˜λŠ” μΏΌλ¦¬μž…λ‹ˆλ‹€.

ν•œνŽΈ DNS ν™•μΈμžλŠ” DNS μΊμ‹œλ₯Ό μ €μž₯ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

즉, DNS ν™•μΈμžλŠ” κΆŒν•œ DNSλ‘œλΆ€ν„° μ œκ³΅λ°›μ€ DNS λ ˆμ½”λ“œλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

덕뢄에 λ™μΌν•œ λ ˆμ½”λ“œλ₯Ό μš”μ²­λ°›μ„ λ•Œ, λ‹€λ₯Έ DNS μ„œλ²„λ“€μ— μ£Όμ†Œλ₯Ό μš”μ²­ν•˜λŠ” 과정을 κ±΄λ„ˆλ›°μ–΄ λΉ λ₯΄κ²Œ IP μ£Όμ†Œλ₯Ό 응닡할 수 μžˆμ„ 뿐 μ•„λ‹ˆλΌ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½λ„ μ ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΆŒν•œ DNS에 λŒ€ν•΄μ„œλŠ” μ•„λž˜μ—μ„œ μžμ„Ένžˆ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€.

λŒ€λΆ€λΆ„μ˜ 경우 ISPκ°€ μ œκ³΅ν•˜λŠ” 둜컬 DNSλ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ,
Google, Cloudflare, Cisco λ“±μ—μ„œ μ œκ³΅ν•˜λŠ” 곡용 DNS μ„œλ²„λ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

Root Server

Root Server

DNSλŠ” 계측적인 DNS Zone 트리 ꡬ쑰둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
μ΄λ•Œ 루트 DNS μ„œλ²„λŠ” 말 κ·ΈλŒ€λ‘œ DNS Zone 트리의 루트(Root Zone)에 μœ„μΉ˜ν•œ DNS μ„œλ²„μž…λ‹ˆλ‹€.

DNS Zone Tree

루트 DNS μ„œλ²„λŠ” 도메인 이름 쀑 μ΅œμƒμœ„ 도메인(TLD, Top-Level Domain)에 λŒ€ν•œ μ •λ³΄λ§Œμ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€λ©΄ DNS ν™•μΈμžκ°€ google.com을 μ§ˆμ˜ν•˜λ©΄ 루트 DNS μ„œλ²„λŠ” .com μ„œλ²„μ˜ IP μ£Όμ†Œλ₯Ό DNS ν™•μΈμžμ—κ²Œ 보내 μ‘λ‹΅ν•©λ‹ˆλ‹€.

루트 DNS μ„œλ²„λŠ” μ „ 세계에 13κ°œκ°€ 있으며, ICANN에 μ˜ν•΄ κ΄€λ¦¬λ©λ‹ˆλ‹€.

TLD Server

TLD Server

TLDλŠ” μ΅œμƒμœ„ 도메인(Top-Level Domain)을 μ˜λ―Έν•©λ‹ˆλ‹€.
예λ₯Ό λ“€λ©΄ .com, .org, .kr 등이 μžˆκ² λ„€μš”.

TLD μ„œλ²„λŠ” μ΄λŸ¬ν•œ TLD에 μ†ν•˜λŠ” λͺ¨λ“  ν•˜μœ„ 도메인 λ„€μž„ μ„œλ²„μ˜ IP μ£Όμ†Œλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€.

DNS ν™•μΈμžλŠ” TLD μ„œλ²„μ—κ²Œ ν•΄λ‹Ή λ„λ©”μΈμ˜ κΆŒν•œμ΄ μžˆλŠ” λ„€μž„ μ„œλ²„μ˜ IP μ£Όμ†Œλ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.

Authoritative Server

Authoritative Server

κΆŒν•œ DNS μ„œλ²„λŠ” νŠΉμ • 도메인에 λŒ€ν•œ IP μ£Όμ†Œλ₯Ό 가지고 μžˆλŠ” DNS μ„œλ²„μž…λ‹ˆλ‹€.

IP μ£Όμ†ŒλŠ” DNS λ ˆμ½”λ“œλ₯Ό 톡해 응닡받을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ„λ©”μΈμ˜ IPv4 μ£Όμ†Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 경우 A λ ˆμ½”λ“œλ₯Ό,
λ„λ©”μΈμ˜ IPv6 μ£Όμ†Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 경우 AAAA λ ˆμ½”λ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

DNS 쑰회 κ³Όμ •

DNS Flow

DNS 쑰회의 전체적인 과정을 λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. μ›Ή λΈŒλΌμš°μ €μ— 도메인 λ„€μž„μ„ μž…λ ₯ν•˜λ©΄ DNS ν™•μΈμžκ°€ 도메인 λ„€μž„μ˜ μΊμ‹œλœ IP μ£Όμ†Œλ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
  2. μΊμ‹œλœ IP μ£Όμ†Œκ°€ μ—†λ‹€λ©΄ DNS ν™•μΈμžλŠ” 루트 DNS μ„œλ²„λ₯Ό μΏΌλ¦¬ν•©λ‹ˆλ‹€.
  3. 루트 DNS μ„œλ²„λŠ” DNS ν™•μΈμžμ—κ²Œ TLD μ„œλ²„μ˜ IP μ£Όμ†Œλ‘œ μ‘λ‹΅ν•©λ‹ˆλ‹€.
  4. DNS ν™•μΈμžλŠ” TLD μ„œλ²„μ—κ²Œ κΆŒν•œ μ„œλ²„μ˜ IP μ£Όμ†Œλ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.
  5. TLD μ„œλ²„λŠ” DNS ν™•μΈμžμ—κ²Œ κΆŒν•œ μ„œλ²„μ˜ IP μ£Όμ†Œλ‘œ μ‘λ‹΅ν•©λ‹ˆλ‹€.
  6. DNS ν™•μΈμžλŠ” λ„€μž„ μ„œλ²„μ—κ²Œ 도메인 λ„€μž„μ˜ IP μ£Όμ†Œλ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.
  7. λ„€μž„ μ„œλ²„λŠ” DNS ν™•μΈμžμ—κ²Œ 도메인 λ„€μž„μ˜ IP μ£Όμ†Œλ‘œ μ‘λ‹΅ν•©λ‹ˆλ‹€.
  8. DNS ν™•μΈμžλŠ” 도메인 λ„€μž„μ˜ IP μ£Όμ†Œλ₯Ό μΊμ‹œν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ‘λ‹΅ν•©λ‹ˆλ‹€.
  9. λΈŒλΌμš°μ €κ°€ IP μ£Όμ†Œμ— ν•΄λ‹Ήν•˜λŠ” μ„œλ²„μ—κ²Œ HTTP μš”μ²­μ„ λ³΄λƒ…λ‹ˆλ‹€.
  10. μ„œλ²„λŠ” λΈŒλΌμš°μ €μ—κ²Œ HTTP 응닡을 λ³΄λƒ…λ‹ˆλ‹€.

μ°Έκ³