πŸ’» DEV/Network

[Network] DNS κ°œμš”μ™€ λ™μž‘ 방식

vodkassi 2021. 10. 28. 18:32
728x90

✨  DNS κ°œμš”

DNS λŠ” Domain Name System 의 μ•½μžμ΄λ‹€. λͺ¨λ“  μ„œλ²„μ—λŠ” 고유의 IP μ£Όμ†Œκ°€ ν• λ‹Ήλ˜λŠ”λ°, μ‚¬μš©μžλ“€μ΄ νŠΉμ • μ‚¬μ΄νŠΈμ— 접속할 λ•Œλ§ˆλ‹€ 이 μ£Όμ†Œλ₯Ό μ™Έμ›Œμ„œ λ“€μ–΄κ°€λŠ” 것은 νž˜λ“  일이닀. λ•Œλ¬Έμ— 각 IP μ£Όμ†Œμ— λ¬Έμžμ—΄λ‘œ κ΅¬μ„±λœ 도메인 (domain) 을 연결지어 ν™œμš©ν•œλ‹€.

예λ₯Ό λ“€μ–΄ μ‚¬μš©μžμ˜ 둜컬 IP μ£Όμ†ŒλŠ” 127.0.0.1 인데, 맀번 이 일련의 숫자λ₯Ό λΈŒλΌμš°μ €μ— 치고 λ“€μ–΄κ°€λŠ” 것보닀 localhost.com μ΄λΌλŠ” 직관적인 도메인 μ£Όμ†Œλ₯Ό μ°Ύμ•„ λ“€μ–΄κ°€λŠ” 것이 훨씬 νŽΈν•  것이닀. 이것이 도메인이 ν•„μš”ν•œ μ΄μœ μ΄λ‹€.

DNS λŠ” 이처럼 컴퓨터듀이 λ¬Έμžμ—΄ 도메인을 ν†΅ν•΄μ„œλ„ μ΅œμ’… λͺ©μ μ§€κΉŒμ§€ 도달할 수 μžˆλ„λ‘ IP μ£Όμ†Œμ™€ 도메인을 맀핑해놓은 μ£Όμ†Œ 체계이닀.

 

보톡 'url' 을 ν•˜λ©΄ http://www.google.com 와 같은 ν˜•μ‹μ˜ 링크λ₯Ό λ– μ˜¬λ¦¬λŠ”λ°, 사싀 이 url 은 μ„ΈλΆ€ λΆ€λΆ„μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. 

- scheme: http:// λ˜λŠ” https:// κ³Ό 같이 맨 μ•žμ— λΆ™λŠ” λΆ€λΆ„μœΌλ‘œ, 톡신할 λ•Œ μ‚¬μš©λ˜λŠ” 톡신 ν”„λ‘œν† μ½œμ΄λ‹€.
- subdomain (third-level domain) : www 에 ν•΄λ‹Ήν•˜λŠ” 뢀뢄이닀.

- domain name (second-level domain): google κ³Ό 같이, 도메인 μ£Όμ†Œλ₯Ό κ΅¬μ„±ν•˜λŠ” 이름이닀.

- top-level domain (TLD): com κ³Ό 같이 μ΅œμƒμœ„ 계측을 κ΅¬μ„±ν•˜λŠ” 뢀뢄이닀. 

 

πŸ’‘ 도메인은 domain name κ³Ό subdomain, TLD둜 κ΅¬μ„±λœ host λ₯Ό μ˜λ―Έν•œλ‹€.
www (subdomain) + google (domain name) + com (TLD) = www.google.com

 

πŸ“ TLD λŠ” 일반적으둜 6가지 μ’…λ₯˜λ‘œ λΆ„λ₯˜λ  수 μžˆλ‹€. 

Generic(gTLD) : 일반적인 TLD (ex  .com, .edu, .gov), 3κΈ€μž μ΄μƒμœΌλ‘œ ꡬ성
country-code(ccTLD) : 두 κΈ€μžμ˜ κ΅­κ°€ μ½”λ“œ μ‚¬μš© (ex  .kr)
sponsored(sTLD) : μ „λ¬Έκ°€ 집단, μœ„μΉ˜ λ“± νŠΉμ • λͺ©μ μ„ μœ„ν•œ μŠ€ν°μ„œλ₯Ό λ‘  (ex  .asia, .edu)
infrastructure : μ€‘μš”ν•œ 인프라 μ‹λ³„μž 곡간 지원을 μœ„ν•œ μ „μš© 도메인 (ex  .arpa)
generic-restricted(grTLD) : νŠΉμ • 기쀀을 μΆ©μ‘±ν•˜λŠ” μ‚¬λžŒμ΄λ‚˜ 단체 μ‚¬μš© κ°€λŠ₯ (ex  .biz, .name)
test(tTLD) : 개발 ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν…ŒμŠ€νŠΈ λͺ©μ μœΌλ‘œ μ‚¬μš© (ex  .test)

 

 

✨  DNS λ™μž‘ 방식

μ‚¬μš©μžκ°€ 도메인 μ£Όμ†Œλ₯Ό λΈŒλΌμš°μ € 창에 μž…λ ₯ν•˜μ—¬ μš”μ²­μ„ 보낼 λ•Œ, 사싀 λ°”λ‘œ ν•΄λ‹Ή μ£Όμ†Œλ‘œ μ΄λ™ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€. 이 μš”μ²­μ€ λ¨Όμ € μ—¬λŸ¬ domain μ£Όμ†Œμ™€ IP μ£Όμ†Œλ₯Ό λ§€μΉ­μ‹œμΌœ 놓은 DNS μ„œλ²„μ— μ „λ‹¬λ˜μ–΄, μ›ν•˜λŠ” domain 의 IP μ£Όμ†Œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ λ¬»λŠ” 쿼리λ₯Ό 보낸닀. μ‘λ‹΅κ°’μœΌλ‘œ μš”μ²­ν•œ IP μ£Όμ†Œλ₯Ό λ°›κ²Œ 되면, κ·Έ 이후에야 ν•΄λ‹Ή IP μ£Όμ†Œλ‘œ νŒ¨ν‚·μ„ 보낸닀. 


πŸ“ 도메인은 계측 ꡬ쑰이기 λ•Œλ¬Έμ— μƒμœ„ 도메인뢀터 ν•˜μœ„ λ‹¨κ³„μ˜ μˆœμ„œλŒ€λ‘œ μ£Όμ†Œλ₯Ό μ°Ύμ•„κ°„λ‹€. 즉 .com -> .google -> www 순으둜 μ£Όμ†Œ 검색이 μ§„ν–‰λ˜λ©°, 이 μˆœμ„œλŒ€λ‘œ 도메인 μ—°κ²° 뢀뢄이 ν•˜λ‚˜μ”© λŠ˜μ–΄λ‚˜λ©° μ΅œμ’… 도메인 μ£Όμ†Œλ₯Ό κ΅¬μ„±ν•˜κ²Œ λœλ‹€. 도메인 계측은 μ΅œλŒ€ 128 κ³„μΈ΅κΉŒμ§€ ꡬ성 κ°€λŠ₯ν•˜λ©° 계측별 κΈΈμ΄λŠ” μ΅œλŒ€ 63λ°”μ΄νŠΈκΉŒμ§€ μ‚¬μš©ν•  수 μžˆλ‹€. λ¬ΈμžλŠ” μ•ŒνŒŒλ²³, 숫자, 그리고 - 만 μ‚¬μš©ν•  수 μžˆλ‹€.


1. "." : zero-level domain 
2. ".com" : first-level domain (TLD)
3. "google.com" : second-level domain
4. "www.google.com": third-level domain

 

1λ²ˆμ„ 보면 λ§ˆμΉ¨ν‘œλ„ 도메인 μ£Όμ†Œλ₯Ό κ΅¬μ„±ν•˜λŠ” λΆ€λΆ„μž„μ„ μ•Œ 수 μžˆλ‹€. μ›λž˜λŠ” μ΅œμƒμœ„ 도메인 끝에 . 이 ν•˜λ‚˜ 더 λΆ™λŠ”λ°, 이λ₯Ό root domain 이라고 ν•œλ‹€. 인터넷 λ„λ©”μΈμ˜ μ²΄κ³„μ—μ„œ μ΅œμƒμœ„λŠ” 루트(root)둜써 인터넷 λ„λ©”μΈμ˜ μ‹œμž‘μ μ΄ λœλ‹€. 

 


❗ root domain 은 subdomain 이 μ—†λŠ” domain 을 μ˜λ―Έν•˜κΈ°λ„ ν•œλ‹€. Ex) google.com

DNS 체계λ₯Ό 톡해 IP μ£Όμ†Œλ₯Ό μ°Ύμ•„μ˜€λŠ” 과정은 λ‹€μŒκ³Ό κ°™λ‹€. 

1. μ›Ή λΈŒλΌμš°μ € 창에 도메인 μ£Όμ†Œ μž…λ ₯ -> 둜컬 μ»΄ν“¨ν„°μ˜ μΊμ‹œμ— ν•΄λ‹Ή λ„λ©”μΈμ˜ IP κ°€ μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€ 확인 

1-1. μžˆλŠ” 경우 λ°”λ‘œ ν•΄λ‹Ή IP μ£Όμ†Œλ‘œ νŒ¨ν‚· 전솑, μ—†λŠ” 경우 둜컬 DNS μ„œλ²„λ‘œ 쿼리 

2. DNS μ„œλ²„μ˜ μΊμ‹œ 및 μ£Όμ†Œλ‘μ—μ„œ IP μ£Όμ†Œ 검색

2-1. μžˆλŠ” 경우 λ°”λ‘œ ν•΄λ‹Ή IP μ£Όμ†Œλ‘œ νŒ¨ν‚· 전솑, μ—†λŠ” 경우 μ—°κ²°λœ Root DNS μ„œλ²„λ‘œ 쿼리 

3. Root DNS μ„œλ²„ (μ΅œμƒμœ„ 도메인에 λŒ€ν•œ κΆŒν•œμ΄ μžˆλŠ” λ„€μž„ μ„œλ²„ λͺ©λ‘μ„ λ°˜ν™˜ν•˜λŠ” 도메인 λ„€μž„ μ„œλ²„μ΄λ©°, μ „ 세계에 13λŒ€λ°–μ— μ—†λ‹€.) μ—μ„œ λ„λ©”μΈμ˜ TLD 정보λ₯Ό 가지고 μžˆλŠ” ν•˜μœ„ DNS μ„œλ²„ IP μš”μ²­ (".com" )

4. ν•˜μœ„ DNS μ„œλ²„μ—μ„œ λ‹€μŒ κ³„μΈ΅μ˜ μ£Όμ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” 도메인 μ£Όμ†Œμ˜ 정보λ₯Ό 가지고 μžˆλŠ” ν•˜μœ„ DNS μ„œλ²„ IP μš”μ²­ ("google.com")

5. 같은 λ°©μ‹μœΌλ‘œ 계측 ν•˜λ‚˜μ”© μ΄λ™ν•˜λ©° μ΅œμ’… domain 의 IP μ£Όμ†Œλ₯Ό 받을 λ•ŒκΉŒμ§€ 쿼리 반볡 

6. λ§ˆμ§€λ§‰μœΌλ‘œ IP μ£Όμ†Œλ₯Ό 둜컬 DNS 와 λΈŒλΌμš°μ € PC 에 μΊμ‹±ν•œ λ’€ νŒ¨ν‚· 전솑 

 


πŸ’‘ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 둜컬 DNS μ„œλ²„λ‘œ λ³΄λ‚΄λŠ” μš”μ²­μ„ μž¬κ·€μ  (recursive) 쿼리 라고 ν•œλ‹€. 
πŸ’‘ 둜컬 DNS μ—μ„œ root DNS μ„œλ²„ & ν•˜μœ„ DNS μ„œλ²„μ— λ³΄λ‚΄λŠ” μš”μ²­μ„ 반볡적 (iterative) 쿼리 라고 ν•œλ‹€. 

 

✨ 참고자료

  • What is a root domain?
  • IT μ—”μ§€λ‹ˆμ–΄λ₯Ό μœ„ν•œ λ„€νŠΈμ›Œν¬ μž…λ¬Έ (κΈΈλ²—)