DNS Round Robin

OnniΒ·2022λ…„ 2μ›” 17일
0

πŸ“Œ DNS

βœ… DNSλž€?

  • www.xxxx.com κ³Ό 같이 μ‚¬λžŒμ΄ 읽을 수 μžˆλŠ” 이름을 192.0.0.1κ³Ό 같은 숫자 IPμ£Όμ†Œλ‘œ λ³€ν™˜ν•˜μ—¬ 컴퓨터가 μ„œλ‘œ 톡신 ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ„œλ²„μ΄λ‹€.
  • DNS μ‹œμŠ€ν…œμ€ 이름을 숫자둜 λ§€ν•‘ν•˜μ—¬ 마치 μ „ν™”λ²ˆν˜ΈλΆ€μ™€ 같은 κΈ°λŠ₯을 ν•œλ‹€.
  • DNS μ„œλ²„λŠ” 이름에 λŒ€ν•œ μš”μ²­μ„ IPμ£Όμ†Œλ‘œ λ³€ν™˜ν•˜μ—¬ μ΅œμ’… μ‚¬μš©μžκ°€ 도메인 이름을 μ›Ή λΈŒλΌμš°μ €μ— μž…λ ₯ν•  λ•Œ ν•΄λ‹Ή μ‚¬μš©μžλ₯Ό μ–΄λ–€ μ„œλ²„μ— μ—°κ²°ν•  κ²ƒμΈμ§€λŠ” μ œμ–΄ν•œλ‹€. 이 μš”μ²­μ„ 쿼리 라고 ν•œλ‹€.

βœ… Domain ꡬ쑰

  • 도메인은 μ „ μ…°κ³„μ μœΌλ‘œ κ³ μœ ν•˜κ²Œ μ‘΄μž¬ν•˜λŠ” 이름이닀.
    • 정해진 κ·œμΉ™μ— 따라야 ν•˜λ©° μž„μ˜λ‘œ λ³€κ²½,생성할 수 μ—†λ‹€.
  • λͺ¨λ“  도메인은 "." (λ‹·) λ˜λŠ” 루트라 λΆˆλ¦¬λŠ” 도메인 μ•„λž˜μ— κ·Έλ¦Όκ³Ό 같이 μ—­νŠΈλ¦¬ ꡬ쑰둜 κ³„μΈ΅μ μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
  • 루트 μ•„λž˜ 단계λ₯Ό μ΅œμƒμœ„ 도메인(TLD: Top Level Domain)이라고 λΆ€λ₯΄λ©°, κ·Έ λ‹€μŒ λ‹¨κ³„λŠ” 도메인(SLD : Second Level Domain) 이라고 ν•œλ‹€.
  • 일반 μ΅œμƒμœ„ 도메인과 κ΅­κ°€ μ΅œμƒμœ„λ„λ©”μΈμœΌλ‘œ κ΅¬λΆ„ν•˜λ©° 일반 μ΅œμƒμœ„ 도메인은 μŠ€ν°μ„œ 도메인과 μ–ΈμŠ€ν°μ„œ λ„λ©”μΈμœΌλ‘œ κ΅¬λΆ„λœλ‹€.

βœ… DNS λ™μž‘μ›λ¦¬

  1. μ‚¬μš©μžκ°€ www.naver.com 을 λΈŒλΌμš°μ €μ— μž…λ ₯ν•œλ‹€.
  2. Local DNSμ—κ²Œ IP μ£Όμ†Œλ₯Ό μ§ˆμ˜ν•˜μ—¬ μΊμ‹œλœ 것에 μ—†μœΌλ©΄ λ‹€λ₯Έ DNS μ„œλ²„μ— 전달 (Root DNS)
  3. ROOT 둜 λΆ€ν„° com 도메인을 κ΄€λ¦¬ν•˜λŠ” TLD이름 μ„œλ²„ 정보 전달 λ°›λŠ”λ‹€.
  4. COM DNS둜 질의 ν•œλ‹€.
  5. naver.com DNS 정보λ₯Ό 전달 λ°›λŠ”λ‹€.
  6. www.naver.com ν˜ΈμŠ€νŠΈλ„€μž„μ— λŒ€ν•œ IP μ£Όμ†Œλ₯Ό 질의 ν•œλ‹€.
  7. IP 정보λ₯Ό μ „λ‹¬λ°›λŠ”λ‹€.
  8. Local DNSλŠ” www.nvaer.com에 λŒ€ν•œ IP μ£Όμ†Œλ₯Ό 캐싱을 ν•˜κ³  IP μ£Όμ†Œ 정보λ₯Ό μ „λ‹¬ν•œλ‹€.

β€» ROOT -> COM -> xxx.com μ„œλ²„λ₯Ό μ°¨λ‘€λŒ€λ‘œ μ§ˆμ˜ν•΄μ„œ 닡을 μ°ΎλŠ” 과정을 Recursive Query라고 ν•œλ‹€.

πŸ“Œ DNS ROUND ROBIN

  • λ³„λ„μ˜ SW,HWλ‘œλ“œλ²¨λŸ°μ‹± μž₯λΉ„ 없이 였직 DNSλ§Œμ„ μ΄μš©ν•˜μ—¬ 도메인 λ ˆμ½”λ“œ 정보λ₯Ό μ‘°νšŒν•˜λŠ” μ‹œμ μ—μ„œ νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•˜λŠ” 기법이닀.
  • μ›Ή 뿐만 μ•„λ‹ˆλΌ, 도메인을 μ‚¬μš©ν•˜λŠ” λͺ¨λ“  μ„œλΉ„μŠ€(FTP,SMTP λ“±)에 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

βœ… λΌμš΄λ“œ 둜빈 원리

  • μ›Ή μ„œλΉ„μŠ€λ₯Ό λ‹΄λ‹Ήν•  μ—¬λŸ¬ λŒ€μ˜ μ›Ή μ„œλ²„λŠ” μžμ‹ μ˜ 곡인 IPλ₯Ό 각각 가지고 μžˆλ‹€.
  • μ‚¬μ΄νŠΈ 접속을 μœ„ν•΄ μ‚¬μš©μžκ°€ ν•΄λ‹Ή 도메인 μ£Όμ†Œλ₯Ό λΈŒλΌμš°μ €μ— μž…λ ₯ν•˜λ©΄ DNSλŠ” λ„λ©”μΈμ˜ 정보λ₯Ό μ‘°νšŒν•˜λŠ”λ° 이떄 IPμ£Όμ†Œλ₯Ό μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„ IP리슀트 μ€‘μ—μ„œ λΌμš΄λ“œ 둜빈 ν˜•νƒœλ‘œ λžœλ€ν•˜κ²Œ ν•˜λ‚˜ ν˜Ήμ€ μ—¬λŸ¬κ°œλ₯Ό μ„ νƒν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ€€λ‹€.
  • 결과적으둜 μ›Ή μ‚¬μ΄νŠΈμ— μ ‘μ†ν•˜λŠ” λ‹€μˆ˜μ˜ μ‚¬μš©μžλŠ” μ‹€μ œλ‘œλŠ” 볡수의 μ›Ή μ„œλ²„μ— λ‚˜λ‰˜μ–΄ μ ‘μ†ν•˜λ„ λ˜λ©΄μ„œ μžμ—°μŠ€λŸ½κ²Œ μ„œλ²„μ˜ λΆ€ν•˜κ°€ λΆ„μ‚°λ˜λŠ” 방식이닀.

λΌμš΄λ“œ 둜빈 DNSλŠ” μ—¬λŸ¬κ°œμ˜ IPμ£Όμ†Œλ₯Ό 결과둜 λŒλ €μ€€λ‹€.

μ‚¬μš©μžμ˜ OS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 따라 λ™μž‘μ΄ λ‹€λ₯΄λ‹€.
μ—¬λŸ¬κ°œμ˜ IP 쀑 μ œμΌλ¨Όμ € 쑰회된 IPλ₯Ό 선택, λ¬΄μž‘μœ„λ‘œ IPλ₯Ό μ„ νƒν•œλ‹€.
λ˜λŠ” 선택 IP 접속이 μ•ˆλ˜λ©΄ κ·Έλ‹€μŒ 쑰회된 IPμ ‘μ†ν•˜λ„λ‘ ν˜Έμ§μ„ μΆ”κ°€ν•  수 μžˆλ‹€.

βœ… 단점

  • μ§€λ¦¬μ μœΌλ‘œ 볡수의 μ›Ήμ„œλ²„κ°€ 멀리 λ–¨μ–΄μ Έ μžˆμ–΄ μ‹€μ‹œκ°„ ν—¬μŠ€ 체크가 μ–΄λ ΅λ‹€.
    • μ„œλ²„κ°€ λ¬Έμ œκ°€ 생겨 μ„œλΉ„μŠ€κ°€ λΆˆκ°€ν•œ μƒνƒœλΌλ„ DNSλŠ” 이λ₯Ό 인지 λͺ»ν•˜κ³  도메인 쑰회 결과에 ν¬ν•¨μ‹œν‚¨λ‹€.
    • κ·Έλž˜μ„œ HA(High- Abaliability)μš©λ„λ‘œ μ ν•©ν•˜μ§€ λͺ»ν•œλ‹€.
  • DNS 쑰회 μ •λ³΄μ˜ 캐싱
    • λͺ¨λ°”일 μ‚¬μ΄νŠΈ λ“±μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.
      • 슀마트폰의 접속은 캐리어 κ²Œμ΄νŠΈμ›¨μ΄ 라고 ν•˜λŠ” ν”„λ‘μ‹œ μ„œλ²„λ₯Ό κ²½μœ ν•œλ‹€.
      • ν”„λ‘μ‹œ μ„œλ²„μ—μ„œλŠ” μ΄λ¦„λ³€ν™˜ κ²°κ³Όκ°€ 일정 μ‹œκ°„ λ™μ•ˆ μΊμ‹±λ˜λ―€λ‘œ 같은 ν”„λ‘μ‹œ μ„œλ²„λ₯Ό 경유 ν•˜λŠ” 접속은 항상 같은 μ„œλ²„λ‘œ μ ‘μ†λœλ‹€.
      • PC용 μ›Ή λΈŒλΌμš°μ €λ„ DNS 질의 κ²°κ³Όλ₯Ό μΊμ‹±ν•˜κΈ° λ•Œλ¬Έμ— κ· λ“±ν•˜κ²Œ λΆ€ν•˜ λΆ„μ‚°λ˜μ§€ μ•ŠλŠ”λ‹€.
      • DNS λ ˆμ½”λ“œμ˜ Time To Live(TTL)값을 짧게 μ„€μ •ν•¨μœΌλ‘œμ¨ μ–΄λŠ 정도 ν•΄μ†Œκ°€ λ˜μ§€λ§Œ TTL에 따라 μΊμ‹œλ₯Ό ν•΄μ œν•˜λŠ” 것은 μ•„λ‹ˆλ―€λ‘œ λ°˜λ“œμ‹œ μ£Όμ˜κ°€ ν•„μš”ν•˜λ‹€.
        • μ›Ή νŽ˜μ΄μ§€, 슀트림 된 μ˜μƒ, λ°μ΄ν„°λ² μ΄μŠ€ 쿼리 결과만 캐싱 ν•˜λŠ” 것이 μ•„λ‹Œ, DNSκ°€ μ‘°νšŒν•œ λ„λ©”μΈμ˜ IP 정보도 λ„€νŠΈμ›Œν¬ μƒμ—μ„œ μΊμ‹±ν•œλ‹€λŠ” 것❗❗
    • 도메인 μ„€μ • μž‘μ—…μ„ ν• λ•Œμ—λŠ” 캐싱 μ£ΌκΈ° 섀정을 κ³ λ―Όν•΄μ•Ό ν•œλ‹€.
      • 캐싱을 무쑰건 길게 ν•˜λ©΄ κ΄€λ¦¬μžκ°€ κΈ‰ν•˜κ²Œ DNS 정보λ₯Ό 바꿔도 μΈν„°λ„·μƒμ—μ„œ 적용되렀면 ν•΄λ‹Ή μ‹œκ°„ μ΄μƒμœΌλ‘œ κΈ°λ‹€λ €μ•Ό ν•œλ‹€.
      • 바뀐 DNS 정보가 μΈν„°λ„·μƒμ˜ λ„€μž„ μ„œλ²„μ— μ „νŒŒ λ˜λŠ” 데 였랜 μ‹œκ°„μ΄ 걸리기 λ•Œλ¬Έμ΄λ‹€.
      • 반배둜 캐싱 μ£ΌκΈ°λ₯Ό 짧게 ν•˜λ©΄ λΉ λ₯Έ μ—…λ°μ΄νŠΈ λ°˜μ˜μ€ κ°€λŠ₯ν•˜μ§€λ§Œ, 도메인 μ‘°νšŒκ°€λΉˆλ²ˆν•΄μ§€λ©΄μ„œ μ‚¬μš©μžκ°€ μ›Ή μ‚¬μ΄νŠΈμ— μ ‘μ†ν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ΄ μ¦κ°€ν•œλ‹€.

λΌμš΄λ“œ 둜빈 DNSλŠ” κ°€μš©μ„±μ„ μ œκ³΅ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, 무쀑단 μ„œλΉ„μŠ€κ°€ ν•„μš”ν•œ μ‹œμŠ€ν…œμ—λŠ” μ–΄μšΈλ¦¬μ§€ μ•ŠλŠ”λ‹€.

λ‹¨μˆœνžˆ μ—¬λŸ¬ λŒ€μ˜ μ›Ή μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ λΆ€ν•˜ λΆ„μ‚°ν•  λ•Œ κ°€μž₯ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” μ˜΅μ…˜μ΄λ‹€.

κ°€μš©μ„±μ΄ ν•„μš”ν•œ μ‹œμŠ€ν…œμ˜ 경우, Health CheckκΈ°λŠ₯이 ν¬ν•¨λœ DNS μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€.

AWS Route53, Dyn DNS μ„œλΉ„μŠ€κ°€ 쒋은 μ˜ˆλ‹€.

βœ… λΌμš΄λ“œ 둜빈 DNS 단점 보완

  • GSLB(Global Server Load Balancing) DNS μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ 도메인 쑰회 μ‹œ, λ‘œλ“œ λ°ΈλŸ°μ‹±κ³Ό λ™μ‹œμ— Health check κΈ°λŠ₯을 μ‚¬μš©ν•œ HAꡬ성이 λͺ¨λ‘ κ°€λŠ₯ν•˜λ„λ‘ κ΅¬μ„±ν•˜λŠ” 것 λ˜ν•œ μ•ˆμ „ν•œ 방법이닀.
  • λ‘œλ“œλ²¨λŸ°μ„œ λ˜ν•œ SPOF(Single Point Of Faliure)κ°€ 될 수 μžˆμœΌλ―€λ‘œ, 2 λŒ€ μ΄μƒμ˜ λ‘œλ“œλ°ΈλŸ°μ„œμ™€ 각각의 곡인 IPλ₯Ό μ€€λΉ„ν•˜κ³ , GSLB둜 νŠΈλž˜ν”½μ„ λ‘œλ“œλ°ΈλŸ°μ„œμ— λ‚˜λˆ„λŠ” 방법도 많이 μ‚¬μš©ν•œλ‹€.
  • 둜그인 μ„Έμ…˜ λ“± μ„Έμ…˜μ˜ μœ μ§€ μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈ 간에 ν•„μš”ν•œ 경우, 접속 μ€‘μ΄λ˜ ν΄λΌμ΄μ–ΈνŠΈκ°€ DNS에 μ˜ν•΄ λ‹€λ₯Έ μ„œλ²„IPλ₯Ό ν• λ‹Ήλ°›μ•„ λ‹€λ₯Έ μ„œλ²„μ— 접속이 되면 κΈ°μ‘΄ μ„Έμ…˜μ΄ λŠμ–΄μ§ˆ 수 μžˆλ‹€.
    • 이런 경우 μ›Ή μ„œλ²„λΌλ¦¬ μ„Έμ…˜μ„ κ³΅μœ ν•  수 μžˆλ„λ‘ μ„Έμ…˜ ν΄λŸ¬μŠ€ν„°λ§ 섀정을 ν•˜κ±°λ‚˜, λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ IPλ‚˜ Cookie 값을 μ‚¬μš©ν•˜μ—¬ λ™μΌν•œ μ„œλ²„λ‘œ μ ‘μ†λ˜λ„λ‘ stickness 섀정을 ν•΄μ•Ό ν•˜λŠ”λ°, 이 뢀뢄은 L7 μŠ€μœ„μΉ˜λ‘œ ν•΄κ²°ν•  수 μžˆλ‹€.

βœ… λΌμš΄λ“œ 둜빈 상식 기반 단점을 ν•΄μ†Œν•˜λŠ” DNS μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜(일뢀)

βœ” Weighted round robin (WRR)

각각의 μ›Ή μ„œλ²„μ— κ°€μ€‘μΉ˜λ₯Ό κ°€λ―Έν•΄μ„œ λΆ„μ‚° λΉ„μœ¨μ„ λ³€κ²½ν•œλ‹€. λ¬Όλ‘  κ°€μ€‘μΉ˜κ°€ 큰 μ„œλ²„μΌμˆ˜λ‘ λΉˆλ²ˆν•˜κ²Œ μ„ νƒλ˜λ―€λ‘œ 처리λŠ₯λ ₯이 높은 μ„œλ²„λŠ” κ°€μ€‘μΉ˜λ₯Ό λ†’κ²Œ μ„€μ •ν•˜λŠ” 것이 μ’‹λ‹€.

βœ” Least connection

접속 ν΄λΌμ΄μ–ΈνŠΈ μˆ˜κ°€ κ°€μž₯ 적은 μ„œλ²„λ₯Ό μ„ νƒν•œλ‹€. λ‘œλ“œλ°ΈλŸ°μ„œμ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ connection 수λ₯Ό κ΄€λ¦¬ν•˜κ±°λ‚˜ 각 μ„œλ²„μ—μ„œ 주기적으둜 μ•Œλ €μ£ΌλŠ” 것이 ν•„μš”ν•˜λ‹€.

🧩 Reference

profile
꿈꿈

0개의 λŒ“κΈ€