day17 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 6μ›” 30일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
17/129
post-thumbnail

[μŠ€ν”„λ§ 핡심 원리 - 기본편] μ„Ήμ…˜ 3 μˆ˜κ°•

+) 22. 07. 01. 01:59
μ„Ήμ…˜ 3. μŠ€ν”„λ§ 핡심 원리 이해2 - 객체 지ν–₯ 원리 적용 μˆ˜κ°• μ™„λ£Œ!!

λ“œλ””μ–΄ μŠ€ν”„λ§ λ„μž…λΆ€μ— λ“€μ–΄κ°”λ‹€.
μž…λ¬Έ κ°•μ˜ λ•ŒλŠ” 이게 뭔지도 λͺ¨λ₯΄κ³  κ·Έλƒ₯ λ”°λΌμ“°κΈ°λ§Œ ν–ˆλ‹€λ©΄, μ§€κΈˆμ€ 이 Bean을 μ™œ μ“°κ³  μ–΄λ–»κ²Œ μ“°λŠ”μ§€ 쑰금 μ•Œ 것 κ°™λ‹€.


μ–΄μ œ λ‹€ λͺ» ν•œ κ±° 끝내고 μ •λ¦¬ν•œ κ±° 올리기!!!


μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ 곡뢀


μ½”ν…Œ 1문제


ν† ν”½ 1개 - λ‘œλ“œ λ°ΈλŸ°μ„œ

+) 22. 07. 01. μΆ”κ°€ μ™„λ£Œ!!

μ„œλ²„λ‚˜ μž₯λΉ„μ˜ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μž₯λΉ„λ₯Ό ν”νžˆ λ‘œλ“œ λ°ΈλŸ°μ„œλΌκ³  λΆ€λ₯Έλ‹€.
λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” λ‹€μ–‘ν•œ ꡬ성 방식과 λ™μž‘ λͺ¨λ“œκ°€ 있으며 각 방식과 λͺ¨λ“œμ— 따라 μ„œλΉ„μŠ€ νλ¦„μ΄λ‚˜ νŒ¨ν‚· λ‚΄μš©μ΄ 달라진닀.
κ°€μž₯ 많이 μ“°μ΄λŠ” λΆ„μ•ΌλŠ” μ›Ή μ„œλ²„μ˜ λΆ€ν•˜ 뢄산이닀.

  • L4 λ‘œλ“œ λ°ΈλŸ°μ‹±
    일반적인 λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ λ™μž‘ν•˜λŠ” 방식.
    TCP, UDP 정보(특히 포트 λ„˜λ²„)λ₯Ό 기반으둜 λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ μˆ˜ν–‰ν•œλ‹€.
  • L7 λ‘œλ“œ λ°ΈλŸ°μ‹±
    HTTP, FTP, SMTP와 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œν† μ½œ 정보λ₯Ό 기반으둜 λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ μˆ˜ν–‰ν•œλ‹€.
    HTTP 헀더 μ •λ³΄λ‚˜ URI와 같은 정보λ₯Ό 기반으둜 ν”„λ‘œν† μ½œμ„ μ΄ν•΄ν•œ ν›„ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•  수 μžˆλ‹€.

λΆ€ν•˜ λΆ„μ‚°μ΄λž€?

단일 μ„œλ²„λ₯Ό κ΅¬μ„±ν•˜κ±°λ‚˜ μ„œλ²„λ₯Ό 이쀑화해 μ„œλΉ„μŠ€ ν˜ΈμΆœμ„ λΆ„λ¦¬ν•œ 경우, μ„œλ²„ μž₯애에 따라 μ„œλΉ„μŠ€ μž₯μ• κ°€ λ°œμƒν•œλ‹€.

이런 λ¬Έμ œμ μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ L4λ‚˜ L7 μŠ€μœ„μΉ˜λΌλŠ” λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ‚¬μš©ν•œλ‹€.

λ‘œλ“œ λ°ΈλŸ°μ„œμ—λŠ” λ™μΌν•œ μ„œλΉ„μŠ€λ₯Ό ν•˜λŠ” λ‹€μˆ˜μ˜ μ„œλ²„κ°€ λ“±λ‘λ˜κ³  μ‚¬μš©μžλ‘œλΆ€ν„° μ„œλΉ„μŠ€ μš”μ²­μ΄ 였면 λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ λ°›μ•„ μ‚¬μš©μžλ³„λ‘œ λ‹€μˆ˜μ˜ μ„œλ²„μ— μ„œλΉ„μŠ€ μš”μ²­μ„ λΆ„μ‚°μ‹œμΌœ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€.

λ‘œλ“œ λ°ΈλŸ°μ„œμ—λŠ” μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ 가상 IPλ₯Ό ν•˜λ‚˜ μ œκ³΅ν•˜κ³  μ‚¬μš©μžλŠ” 각 μ„œλ²„μ˜ κ°œλ³„ IP μ£Όμ†Œκ°€ μ•„λ‹Œ λ™μΌν•œ 가상 IPλ₯Ό 톡해 각 μ„œλ²„λ‘œ μ ‘κ·Όν•œλ‹€.

이 외에도 λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” 각 μ„œλ²„μ˜ μ„œλΉ„μŠ€ μƒνƒœλ₯Ό 체크해 μ„œλΉ„μŠ€κ°€ κ°€λŠ₯ν•œ μ„œλ²„λ‘œλ§Œ μ‚¬μš©μžμ˜ μš”μ²­μ„ λΆ„μ‚°ν•˜λ―€λ‘œ, μ„œλ²„μ—μ„œ μž₯μ• κ°€ λ°œμƒν•˜λ”λΌλ„ κΈ°μ‘΄ μš”μ²­μ„ λΆ„μ‚°ν•˜μ—¬ λ‹€λ₯Έ μ„œλ²„μ—μ„œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•  수 μžˆλ‹€.


λΆ€ν•˜ λΆ„μ‚° 방법

  • 리얼 IP: μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλ²„μ˜ IP
  • VIP(Virtual IP): 가상 IP μ£Όμ†Œ

VIPμ—λŠ” 리얼 IPκ°€ λ°”μΈλ”©λ˜μ–΄ 있고, μ‚¬μš©μžκ°€ VIP둜 μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•˜λ©΄ ν•΄λ‹Ή VIP에 μ—°κ²°λœ 리얼 IP둜 ν•΄λ‹Ή μš”μ²­μ„ μ „λ‹¬ν•œλ‹€.
VIPμ—λŠ” μ‚¬μš©μžμ˜ μ„œλΉ„μŠ€ μš”μ²­μ΄ λ“€μ–΄μ˜¬ λ•Œ, μ–΄λŠ μ„œλ²„λ‘œ μš”μ²­μ„ 전달할 것인지 λΆ€ν•˜ λΆ„μ‚° 그룹을 μ„€μ •ν•œλ‹€.
λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ λΆ€ν•˜ 뢄산을 μœ„ν•œ 그룹을 λ§Œλ“€ λ•ŒλŠ” OSI 3κ³„μΈ΅μ˜ 정보인 IP μ£Όμ†ŒλΏλ§Œ μ•„λ‹ˆλΌ 4계측 정보인 μ„œλΉ„μŠ€ ν¬νŠΈκΉŒμ§€ 지정해 λ§Œλ“ λ‹€.
κ·Έλž˜μ„œ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό L4 μŠ€μœ„μΉ˜λΌκ³ λ„ ν•œλ‹€.
7계측 μ •λ³΄κΉŒμ§€ 확인해 μ²˜λ¦¬ν•˜λŠ” κΈ°λŠ₯이 ν¬ν•¨λ˜λŠ” κ²½μš°λ„ μžˆμ–΄ L7 μŠ€μœ„μΉ˜λΌκ³ λ„ ν•˜μ§€λ§Œ, 보톡 λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό L4 μŠ€μœ„μΉ˜λΌ λΆ€λ₯Έλ‹€.

λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ VIP에 μ„€μ •λœ μ„œλΉ„μŠ€ ν¬νŠΈμ™€ μ‹€μ œ μ„œλ²„μ˜ μ„œλΉ„μŠ€ ν¬νŠΈλŠ” λ°˜λ“œμ‹œ 같을 ν•„μš”κ°€ μ—†λ‹€.


ν—¬μŠ€ 체크

λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œλŠ” λΆ€ν•˜ 뢄산을 ν•˜λŠ” 각 μ„œλ²„μ˜ μ„œλΉ„μŠ€λ₯Ό 주기적으둜 Health Checkν•΄ 정상적인 μ„œλΉ„μŠ€ μͺ½μœΌλ‘œλ§Œ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜κ³ , 비정상적인 μ„œλ²„λŠ” μ„œλΉ„μŠ€ κ·Έλ£Ήμ—μ„œ μ œμ™Έν•΄ νŠΈλž˜ν”½μ„ 보내지 μ•ŠλŠ”λ‹€.

μ„œλΉ„μŠ€ κ·Έλ£Ήμ—μ„œ μ œμ™Έλœ 후에도 ν—¬μŠ€ 체크λ₯Ό 계속 μˆ˜ν–‰ν•΄ λ‹€μ‹œ μ •μƒμœΌλ‘œ ν™•μΈλ˜λ©΄ μ„œλΉ„μŠ€ 그룹에 ν•΄λ‹Ή μž₯λΉ„λ₯Ό λ‹€μ‹œ λ„£μ–΄ νŠΈλž˜ν”½μ΄ μ„œλ²„ μͺ½μœΌλ‘œ 보내지도둝 ν•΄μ€€λ‹€.

ν—¬μŠ€ 체크 방식

  • ICMP(ping): VIP에 μ—°κ²°λœ 리얼 μ„œλ²„μ— λŒ€ν•΄ ICMP(ping)둜 ν—¬μŠ€ 체크λ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법. λ‹¨μˆœνžˆ μ„œλ²„κ°€ μ‚΄μ•„μžˆλŠ”μ§€ μ—¬λΆ€λ§Œ μ²΄ν¬ν•˜λ―€λ‘œ 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

  • TCP μ„œλΉ„μŠ€ 포트: κ°€μž₯ 기본적인 ν—¬μŠ€ 체크 방법. λ‘œλ“œ λ°ΈλŸ°μ„œμ— μ„€μ •λœ μ„œλ²„μ˜ μ„œλΉ„μŠ€ 포트λ₯Ό ν™•μΈν•œλ‹€. μ„œλΉ„μŠ€ 포트λ₯Ό μ΄μš©ν•΄ ν—¬μŠ€ 체크λ₯Ό ν•  λ•ŒλŠ” μ‹€μ œ μ„œλΉ„μŠ€ ν¬νŠΈκ°€ μ•„λ‹Œ λ‹€λ₯Έ μ„œλΉ„μŠ€ ν¬νŠΈλ‘œλ„ κ°€λŠ₯ν•˜λ‹€.

  • TCP μ„œλΉ„μŠ€ 포트 Half Open: 초기의 3λ°©ν–₯ ν•Έλ“œμ…°μ΄ν¬μ™€ λ™μΌν•˜κ²Œ SYN을 보내고 SYN, ACKλ₯Ό λ°›μ§€λ§Œ 이후 ACK λŒ€μ‹  RSTλ₯Ό 보내 μ„Έμ…˜μ„ λŠλŠ”λ‹€.

  • HTTP μƒνƒœ μ½”λ“œ: λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ„œλ²„λ‘œ 3λ°©ν–₯ ν•Έλ“œμ…°μ΄ν¬λ₯Ό κ±°μΉ˜κ³ λ‚˜μ„œ HTTPλ₯Ό μš”μ²­ν•΄ 정상적인 μƒνƒœ μ½”λ“œ(200 OK)λ₯Ό μ‘λ‹΅ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό 체크해 ν—¬μŠ€ 체크λ₯Ό μˆ˜ν–‰ν•  수 μžˆλ‹€.

  • μ½˜ν…μΈ  확인(λ¬Έμžμ—΄ 확인): 보톡 νŠΉμ • μ›ΉνŽ˜μ΄μ§€λ₯Ό ν˜ΈμΆœν•΄ 사전에 μ§€μ •ν•œ λ¬Έμžμ—΄μ΄ ν•΄λ‹Ή μ›ΉνŽ˜μ΄μ§€ 내에 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό μ²΄ν¬ν•˜λŠ” κΈ°λŠ₯. λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ 직접 κ΄€λ¦¬ν•˜λŠ” μ„œλ²„μ˜ μƒνƒœλΏλ§Œ μ•„λ‹ˆλΌ ν•΄λ‹Ή μ„œλ²„μ˜ λ°±μ—”λ“œμ˜ μƒνƒœλ₯Ό ν•΄λ‹Ή μ›ΉνŽ˜μ΄μ§€λ‘œ 체크할 수 μžˆλ‹€. 정상 μ½”λ“œ 값도 μ€‘λ³΅μœΌλ‘œ ν™•μΈν•˜κ±°λ‚˜ λ¬Έμžμ—΄ 자체λ₯Ό 일반적이 μ•„λ‹Œ νŠΉμ • λ¬Έμžμ—΄λ‘œ 지정해 κ²°κ³Όκ°€ 정상일 λ•Œλ§Œ ν—¬μŠ€ 체크가 성곡할 수 μžˆλ„λ‘ ν•΄μ•Ό ν•œλ‹€.

ν—¬μŠ€ 체크 주기와 타이머
ν—¬μŠ€ 체크의 μ£Όμš” 고렀사항인 ν—¬μŠ€ 체크 μ£ΌκΈ°λ₯Ό λ³Ό λ•ŒλŠ” 응닡 μ‹œκ°„, μ‹œλ„ 횟수, νƒ€μž„μ•„μ›ƒ λ“± λ‹€μ–‘ν•œ 타이머λ₯Ό ν•¨κ»˜ κ³ λ €ν•΄μ•Ό ν•œλ‹€.

  • μ£ΌκΈ°(Interval): λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μ„œλ²„λ‘œ ν—¬μŠ€ 체크 νŒ¨ν‚·μ„ λ³΄λ‚΄λŠ” μ£ΌκΈ°.

  • 응닡 μ‹œκ°„(Response): λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μ„œλ²„λ‘œ ν—¬μŠ€ 체크 νŒ¨ν‚·μ„ 보내고 응닡을 κΈ°λ‹€λ¦¬λŠ” μ‹œκ°„. ν•΄λ‹Ή μ‹œκ°„κΉŒμ§€ 응닡이 μ˜€μ§€ μ•ŠμœΌλ©΄ μ‹€νŒ¨λ‘œ κ°„μ£Όν•œλ‹€.

  • μ‹œλ„ 횟수(Retries): λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ ν—¬μŠ€ 체크 μ‹€νŒ¨ μ‹œ μ΅œλŒ€ μ‹œλ„ 횟수.

  • νƒ€μž„μ•„μ›ƒ(Timeout): λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ ν—¬μŠ€ 체크 μ‹€νŒ¨ μ‹œ μ΅œλŒ€ λŒ€κΈ° μ‹œκ°„. ν—¬μŠ€ 체크 νŒ¨ν‚·μ„ μ„œλ²„λ‘œ μ „μ†‘ν•œ ν›„ 이 μ‹œκ°„ 내에 μ„±κ³΅ν•˜μ§€ λͺ»ν•˜λ©΄ ν•΄λ‹Ή μ„œλ²„λŠ” λ‹€μš΄λœλ‹€.

  • μ„œλΉ„μŠ€ λ‹€μš΄ μ‹œμ˜ μ£ΌκΈ°(Dead Interval): μ„œλΉ„μŠ€ λ‹€μš΄ μ‹œμ˜ ν—¬μŠ€ 체크 μ£ΌκΈ°. μ„œλΉ„μŠ€κ°€ 죽은 μƒνƒœμ—μ„œ ν—¬μŠ€ 체크 μ£ΌκΈ°λ₯Ό λ³„λ„λ‘œ 더 늘릴 λ•Œ μ‚¬μš©ν•œλ‹€.


λΆ€ν•˜ λΆ„μ‚° μ•Œκ³ λ¦¬μ¦˜

λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 리얼 μ„œλ²„λ‘œ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•  λ•Œ, λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œλŠ” 사전에 μ„€μ •ν•œ λΆ„μ‚° μ•Œκ³ λ¦¬μ¦˜μ„ 톡해 λΆ€ν•˜ 뢄산이 이루어진닀.

  • λΌμš΄λ“œ 둜빈(Round Robin)
    ν˜„μž¬ κ΅¬μ„±λœ μž₯비에 λΆ€ν•˜λ₯Ό 순차적으둜 λΆ„μ‚°ν•œλ‹€.
    총 λˆ„μ  μ„Έμ…˜ μˆ˜λŠ” λ™μΌν•˜μ§€λ§Œ ν™œμ„±ν™”λœ μ„Έμ…˜ μˆ˜λŠ” λ‹¬λΌμ§ˆ 수 μžˆλ‹€.

  • μ΅œμ†Œ 접속 방식(Least Connection)
    ν˜„μž¬ κ΅¬μ„±λœ μž₯λΉ„ 쀑 κ°€μž₯ ν™œμ„±ν™”λœ μ„Έμ…˜ μˆ˜κ°€ 적은 μž₯λΉ„λ‘œ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€.
    (λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œλŠ” μ„œλΉ„μŠ€ μš”μ²­μ„ 각 μž₯λΉ„λ‘œ 보내쀄 λ•Œλ§ˆλ‹€ μ„Έμ…˜ ν…Œμ΄λΈ”μ΄ μƒμ„±λ˜λ―€λ‘œ 각 μž₯비에 μ—°κ²°λœ ν˜„μž¬ μ„Έμ…˜ 수λ₯Ό μ•Œ 수 μžˆλ‹€.)

  • κ°€μ€‘μΉ˜ 기반 λΌμš΄λ“œ 둜빈(Weighted Round Robin)
    RR 방식과 λ™μΌν•˜μ§€λ§Œ 각 μž₯비에 κ°€μ€‘μΉ˜λ₯Ό 두어 κ°€μ€‘μΉ˜κ°€ 높은 μž₯비에 λΆ€ν•˜λ₯Ό 더 많이 λΆ„μ‚°ν•œλ‹€.
    처리 μš©λŸ‰μ΄ λ‹€λ₯Έ μ„œλ²„μ— λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜κΈ° μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

  • κ°€μ€‘μΉ˜ 기반 μ΅œμ†Œ 접속 방식(Weighted Least Connection)
    μ΅œμ†Œ 접속 방식과 λ™μΌν•˜μ§€λ§Œ 각 μž₯비에 κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•΄ κ°€μ€‘μΉ˜κ°€ 높은 μž₯비에 λΆ€ν•˜λ₯Ό 더 많이 λΆ„μ‚°ν•œλ‹€.
    처리 μš©λŸ‰μ΄ λ‹€λ₯Έ μ„œλ²„μ— λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜κΈ° μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

  • ν•΄μ‹œ(Hash)
    μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό κ³ λ €ν•˜μ§€ μ•Šκ³  ν΄λΌμ΄μ–ΈνŠΈκ°€ 같은 μ„œλ²„μ— μ§€μ†μ μœΌλ‘œ μ ‘μ†ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λΆ€ν•˜ λΆ„μ‚° 방식이닀.
    μ„œλ²„ μƒνƒœλ₯Ό κ³ λ €ν•˜λŠ” 것이 μ•„λ‹ˆλΌ ν•΄μ‹œ μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•΄ 얻은 κ²°κ³Όκ°’μœΌλ‘œ μ–΄λ–€ μž₯λΉ„λ‘œ λΆ€ν•˜λ₯Ό 뢄산할지 κ²°μ •ν•œλ‹€.
    μ•Œκ³ λ¦¬μ¦˜μ— μ˜ν•œ 계산 값에 μ˜ν•΄ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜λ―€λ‘œ 같은 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜λ©΄ 항상 λ™μΌν•œ 결과값을 가지고 μ„œλΉ„μŠ€λ₯Ό λΆ„μ‚°ν•  수 μžˆλ‹€.
    이 λ•Œ μ•Œκ³ λ¦¬μ¦˜ 계산에 μ‚¬μš©λ˜λŠ” 값듀을 지정할 수 μžˆλŠ”λ°, 주둜 μΆœλ°œμ§€ IP μ£Όμ†Œ, λͺ©μ μ§€ IP μ£Όμ†Œ, μΆœλ°œμ§€ μ„œλΉ„μŠ€ 포트, λͺ©μ μ§€ μ„œλΉ„μŠ€ 포트λ₯Ό μ‚¬μš©ν•œλ‹€.
    μ„Έμ…˜μ„ μœ μ§€ν•΄μ•Ό ν•˜λŠ” μ„œλΉ„μŠ€μ— μ ν•©ν•˜λ‹€.


λ‘œλ“œ λ°ΈλŸ°μ„œ ꡬ성 방식

  • 원암(One-Arm) ꡬ성: λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 쀑간 μŠ€μœ„μΉ˜ μ˜†μ— μ—°κ²°λ˜λŠ” ꡬ성.
  • 인라인(Inline) ꡬ성: μ„œλ²„λ‘œ κ°€λŠ” 경둜 상에 λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ—°κ²°λ˜λŠ” ꡬ성.

μ‹€μ§ˆμ μœΌλ‘œ 원암과 인라인의 ꡬ뢄은 μ„œλ²„λ‘œ κ°€λŠ” νŠΈλž˜ν”½μ΄ λͺ¨λ‘ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜λŠ”μ§€, κ²½μœ ν•˜μ§€ μ•Šμ•„λ„ λ˜λŠ”μ§€μ— λŒ€ν•œ νŠΈλž˜ν”½ νλ¦„μœΌλ‘œ κ΅¬λΆ„ν•œλ‹€.

원암 ꡬ성은 λΆ€ν•˜ 뢄산을 μˆ˜ν–‰ν•˜λŠ” νŠΈλž˜ν”½μ— λŒ€ν•΄μ„œλ§Œ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜κ³ , λΆ€ν•˜ 뢄산을 μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ” νŠΈλž˜ν”½μ€ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜μ§€ μ•Šκ³  톡신할 수 μžˆλ‹€.
λ”°λΌμ„œ 원암 κ΅¬μ„±μ—μ„œλŠ” λΆˆν•„μš”ν•œ νŠΈλž˜ν”½μ΄ λ‘œλ“œ λ°ΈλŸ°μ„œμ— μœ μž…λ˜μ§€ μ•Šμ•„ λ‘œλ“œ λ°ΈλŸ°μ„œ λΆ€ν•˜λ₯Ό 쀄일 수 μžˆλ‹€.

반면, 인라인 ꡬ성은 λΆ€ν•˜ 뢄산을 ν¬ν•¨ν•œ λͺ¨λ“  νŠΈλž˜ν”½μ΄ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•œλ‹€.
λͺ¨λ“  νŠΈλž˜ν”½μ΄ λ™μΌν•œ 경둜둜 흐λ₯΄λ―€λ‘œ ꡬ성이 직관적이고 μ΄ν•΄ν•˜κΈ° 쉽닀. λŒ€μ‹  λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ λΆ€ν•˜κ°€ 높아진닀.


λ‘œλ“œ λ°ΈλŸ°μ„œ λ™μž‘ λͺ¨λ“œ

λ‘œλ“œ λ°ΈλŸ°μ„œ λ™μž‘ λͺ¨λ“œμ— 따라 νŒ¨ν‚· 톡신 방식도 달라진닀.

  • 트랜슀패런트(Transparent: TP) λ˜λŠ” λΈŒλ¦Ώμ§€(Bridge)
    λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ OSI 2계측 μŠ€μœ„μΉ˜μ²˜λŸΌ λ™μž‘ν•˜λŠ” ꡬ성.
    즉, λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μ„œλΉ„μŠ€ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” VIP μ£Όμ†Œμ™€ μ‹€μ œ μ„œλ²„κ°€ λ™μΌν•œ λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ” ꡬ성이닀.
    기쑴에 μ‚¬μš©ν•˜λ˜ λ„€νŠΈμ›Œν¬ λŒ€μ—­μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λ―€λ‘œ λ‘œλ“œ λ°ΈλŸ°μ„œ λ„μž…μœΌλ‘œ μΈν•œ IP λ„€νŠΈμ›Œν¬ μž¬μ„€κ³„λ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ•„λ„ 되고, λ„€νŠΈμ›Œν¬μ— L2 μŠ€μœ„μΉ˜λ₯Ό μΆ”κ°€ν•˜λŠ” 것과 λ™μΌν•˜κ²Œ κΈ°μ‘΄ 망의 νŠΈλž˜ν”½ 흐름에 λ―ΈμΉ˜λŠ” 영ν–₯ 없이 λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ†μ‰½κ²Œ ꡬ성할 수 μžˆλ‹€.
    νŠΈλž˜ν”½μ΄ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ§€λ‚˜λ”λΌλ„ λΆ€ν•˜ λΆ„μ‚° μ„œλΉ„μŠ€λ₯Ό λ°›λŠ” νŠΈλž˜ν”½μΈ κ²½μš°μ—λ§Œ 4계측 μ΄μƒμ˜ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λ©°, λΆ€ν•˜ λΆ„μ‚° μ„œλΉ„μŠ€κ°€ μ•„λ‹Œ κ²½μš°μ—λŠ” κΈ°μ‘΄ L2 μŠ€μœ„μΉ˜μ™€ λ™μΌν•œ μŠ€μœ„μΉ­ κΈ°λŠ₯만 μˆ˜ν–‰ν•œλ‹€. (== L2 ꡬ쑰)

  • λΌμš°ν‹°λ“œ(Routed)
    λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ λΌμš°νŒ… 역할을 μˆ˜ν–‰ν•œλ‹€.
    λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κΈ°μ€€μœΌλ‘œ μ‚¬μš©μž λ°©ν–₯(Client Side)κ³Ό μ„œλ²„ λ°©ν–₯(Server Side)이 μ„œλ‘œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬λ‘œ λΆ„λ¦¬λœ ꡬ성이닀.
    λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” μ‚¬μš©μž λ°©ν–₯κ³Ό μ„œλ²„ λ°©ν–₯의 λ„€νŠΈμ›Œν¬λ₯Ό λΌμš°νŒ…μœΌλ‘œ μ—°κ²°ν•œλ‹€.
    원암 ꡬ성과 인라인 κ΅¬μ„±μ—μ„œ λͺ¨λ‘ ꡬ성할 수 μžˆλ‹€.

  • DSR(Direct Server Return)
    μ‚¬μš©μžμ˜ μš”μ²­μ΄ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό 톡해 μ„œλ²„λ‘œ μœ μž…λœ 후에 λ‹€μ‹œ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό ν†΅ν•˜μ§€ μ•Šκ³  μ„œλ²„κ°€ μ‚¬μš©μžμ—κ²Œ 직접 μ‘λ‹΅ν•œλ‹€.
    DSR λͺ¨λ“œλŠ” 응닡할 λ•Œ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ›μ•”μœΌλ‘œ κ΅¬μ„±ν•œλ‹€.

    • L2 DSR: μ‹€μ œ μ„œλ²„μ˜ λ„€νŠΈμ›Œν¬λ₯Ό λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 가진 경우.
    • L3 DSR: μ‹€μ œ μ„œλ²„μ˜ λ„€νŠΈμ›Œν¬ λŒ€μ—­μ„ λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 가지지 μ•Šμ€ 경우.

    β†’ λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μ‹€μ œ μ„œλ²„κΉŒμ§€μ˜ 톡신이 L2 톡신인지, L3 톡신인지에 따라 λ‚˜λ‰œλ‹€.

    λ‘œλ“œ λ°ΈλŸ°μ„œ λΆ€ν•˜ κ°μ†Œ νš¨κ³Όκ°€ μžˆλŠ” λ°˜λ©΄μ—, DSR λͺ¨λ“œμ˜ μ„œλΉ„μŠ€ 응닡이 λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ λ•Œ 문제 확인이 μ–΄λ ΅λ‹€.

    DSR λͺ¨λ“œμ˜ 응닡은 λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 일반 νŒ¨ν‚·κ³Ό μœ μ‚¬ν•˜κ²Œ μ „λ‹¬λœλ‹€.
    λ‹€λ§Œ μΆœλ°œμ§€ IPκ°€ μ„œλ²„μ˜ μΈν„°νŽ˜μ΄μŠ€ IP μ£Όμ†Œκ°€ μ•„λ‹Œ 루프백 μΈν„°νŽ˜μ΄μŠ€μ˜ IP μ£Όμ†Œ, 즉 μ‚¬μš©μžκ°€ μš”μ²­ν–ˆλ˜ VIP μ£Όμ†Œλ‘œ μ„€μ •ν•΄ νŒ¨ν‚·μ„ μ „μ†‘ν•œλ‹€.


λ‘œλ“œ λ°ΈλŸ°μ„œ μœ μ˜μ‚¬ν•­

  1. 원암 κ΅¬μ„±μ˜ 동일 λ„€νŠΈμ›Œν¬ μ‚¬μš© μ‹œ
    이 λ¬Έμ œλŠ” λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ±°μΉ˜λ©΄μ„œ λ³€κ²½λœ IPκ°€ μž¬μ‘λ‹΅ν•  λ•Œ, λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜λ©΄μ„œ μ›λž˜μ˜ IP둜 λ°”κΎΈμ–΄ 응닡해야 ν•˜μ§€λ§Œ 원암 κ΅¬μ‘°μ—μ„œλŠ” 응닡 νŠΈλž˜ν”½μ΄ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό κ²½μœ ν•˜μ§€ μ•Šμ•„ λ°œμƒν•œλ‹€.

    ⬇️ 해결 방법

  • κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό λ‘œλ“œ λ°ΈλŸ°μ„œλ‘œ μ„€μ •
    λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό 톡해 λΆ€ν•˜ 뢄산이 μ΄λ£¨μ–΄μ§€λŠ” μ‹€μ œ μ„œλ²„μ— λŒ€ν•΄μ„œλŠ” κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό λ‘œλ“œ λ°ΈλŸ°μ„œλ‘œ μ„€μ •ν•˜λ©΄ 둜컬 λ„€νŠΈμ›Œν¬κ°€ μ•„λ‹Œ μ™ΈλΆ€ μ‚¬μš©μžμ˜ ν˜ΈμΆœμ— λŒ€ν•œ 응닡이 항상 λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό ν†΅ν•˜λ―€λ‘œ μ •μƒμ μœΌλ‘œ μ‚¬μš©μžμ—κ²Œ 응닡할 수 있게 λœλ‹€.

  • Source NAT μ‚¬μš©
    Destination NAT뿐만 μ•„λ‹ˆλΌ μΆœλ°œμ§€ IP μ£Όμ†Œλ₯Ό λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 가진 IP둜 ν•¨κ»˜ λ³€κ²½ν•œλ‹€.
    그럼 μ„œλ²„μ—μ„œλŠ” μ‚¬μš©μžμ˜ μš”μ²­μ΄ μ•„λ‹ˆλΌ λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ„œλΉ„μŠ€ μš”μ²­μ„ ν•œ κ²ƒμœΌλ‘œ 보이기 λ•Œλ¬Έμ— 응닡을 λ‘œλ“œ λ°ΈλŸ°μ„œλ‘œ λ³΄λ‚΄κ²Œ λœλ‹€.
    λ‹€λ§Œ 이 경우, μ„œλ²„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μž…μž₯μ—μ„œ 보면 μ„œλΉ„μŠ€λ₯Ό ν˜ΈμΆœν•œ IPκ°€ ν•˜λ‚˜μ˜ λ™μΌν•œ IP둜 보이기 λ•Œλ¬Έμ— μ‚¬μš©μž ꡬ뢄이 μ–΄λ ΅λ‹€λŠ” λ¬Έμ œκ°€ μžˆλ‹€.

  • DSR λͺ¨λ“œ
    μ‚¬μš©μžμ˜ μ„œλΉ„μŠ€ μš”μ²­ νŠΈλž˜ν”½μ— λŒ€ν•΄ λ³„λ„μ˜ Destination NATλ₯Ό μˆ˜ν–‰ν•˜μ§€ μ•Šκ³ , μ‹€μ œ μ„œλ²„λ‘œ μ„œλΉ„μŠ€ μš”μ²­ νŒ¨ν‚·μ„ μ „μ†‘ν•œλ‹€.
    각 μ„œλ²„μ—λŠ” μ„œλΉ„μŠ€ IP 정보가 루프백 μΈν„°νŽ˜μ΄μŠ€μ— μ„€μ •λ˜μ–΄ 있으며 μ„œλΉ„μŠ€μ— 응닡할 λ•Œ 루프백에 μ„€μ •λœ μ„œλΉ„μŠ€ IP μ£Όμ†Œλ₯Ό μΆœλ°œμ§€λ‘œ μ‘λ‹΅ν•œλ‹€.

  1. 동일 λ„€νŠΈμ›Œν¬ λ‚΄μ—μ„œ μ„œλΉ„μŠ€ IP(VIP) 호좜
    μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•œ IP μ£Όμ†Œκ°€ μ•„λ‹Œ λ‹€λ₯Έ IP μ£Όμ†Œλ‘œ 응닡이 μ˜€λ―€λ‘œ ν•΄λ‹Ή νŒ¨ν‚·μ€ νκΈ°λ˜λ©΄μ„œ 정상적인 μ„œλΉ„μŠ€κ°€ 이루어지지 μ•Šκ²Œ λœλ‹€.
    이 문제의 ν•΄κ²° 방법도 μ•žμ—μ„œ μ•Œμ•„λ³Έ 문제의 ν•΄κ²° 방법과 거의 κ°™λ‹€.

볡슡

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보