본문 바로가기

KITRI/네트워크 기초

L4 스위치의 가상IP 설정 및 로드밸런싱




1. 로드밸런싱


사용자 삽입 이미지



L4 = 'IP, 포트, 세션' 을 기반으로한 로드 밸런싱


- OSI 7 Layer는 7계의 계층으로 나뉘지만 크게 두 가지 구간으로도 나뉠 수 있음.



@ 1-4 계층 (통신구간)

    

- 통신구간은 각각의 통신단위가 있는데 1계층은 물리적 신호, 2계층은 Frame 3계층은 패킷 4계층은 세그먼트이다.


- 또한 계층마다 통신하는 지표가 있는데 통신구간의 경우 이렇게 나뉘어 있음.


1계층 = 물리적신호 (1 or 0)

2계층 = MAC주소

3계층 = IP 주소

4계층 = PORT


@ 5-7 계층 (단말구간)

- 지표 : 단말 구간 X


@ L4 스위치


- 4계층에서 가장 중요한건 포트(port) 이며 이 포트와 맞물려 로드 밸런싱이라는 개념이 등장 한다.


L4 스위치 = 포트 + 로드밸런싱(물론 IP,세션도 중요함.)


- L4스위치가 로드밸런싱을 수행하는 장비이기 때문에 L4스위치를 다른 말로 로드 밸런서(Load Balancer) 라고도 함.


- 로드밸런싱은, 동일한 역할을 수행하는 서버 그룹을 VIP(가상IP)를 통해 관리하며, 서버로 향하는 트래픽을 일단 VIP를 가진 L4스위치로 수신한 후 분배정책   에 따라 적절한 서버에 분배해 주는 것을 말함.


- VIP는 Virtual IP의 약자로, 서버그룹의 대표 IP라 할 수 있다. 이 VIP를 로드밸런싱을 수행하는 L4 스위치가 가지고 있음. 서버와 통신하고자 하는 클라     이언트는 VIP를 향해 트래픽을 전송하고, L4스위치가 이 트래픽을 받아 적절한 서버에 로드밸런싱 해주는 것이 L4스위치의 역할이다.


- 결론적으로 L4 스위치는 부하분산 장비이며 대부분의 사이트는 서버 한 대로 사용들의 트래픽을 감당하기 어렵기 떄문에 동일한 역할을 수행하는 서버를     여러 대 두어서 사용자들의 트래픽이 많아져도, 유연하고 안정적으로 사이트를 운영하기 위해 L4스위치를 통한 로드밸런싱을 하는걸로 알고 있음.


- L4스위치, 즉 로드밸란서가 없어도 네트워크를 하는데 지장은 없음. 하지만 점점더 고도화된 IT기술이 생기고, 트래픽량은 점점 더 과도해지면서 로드밸런서   없이는 안정적인 네트워크를 구성하는데 확신을 줄 수 없음.



 




- 위 그림에서 보는바와 같이, 클라이언트와 서버 사이에 L4 스위치가 위치하며, L4 스위치가 만든 가상서버가 존재하고, Client 는 알려진 L4 스위치의 가상서   버로 접속하여 트래픽을 받음. 이 후 L4 스위치는 여러대의 Real 서버로 그룹핑 된 적절한 곳에 트래픽을 포워딩하여 로드밸런싱을 수행함.
- 즉, 로드밸런서가 트래픽을 왼쪽 리얼서버 그룹으로 보낼 수도 있고, 오른쪽 서버에 보낼 수 있음.


@ L4 스위치를 사용하는 이유

 


1) 부하분산(로드 밸런싱)


- 사례 : 예를 들어 어느 회사에서 자사의 상품을 온라인으로 판매하기 위한  쇼핑몰 사이트를 구축하였고, 서버를 구매하여, 쇼핑몰을 구축하였는데 생각보다 사   이트를 이용하는 고객의 수가 많아 서버가 가용 할 수 있는 트래픽을 넘어서 서버의 응답 퍼포먼스가 떨어지는 상황이 발생 할 수 있음. 추가적으로 서버를 증설   해야 하지만, 다른 도메인주소와 ip주소를 가지고 있는 사이트를 증설하여 서비스를 제공한다면 이용하는 데 있어서 가용성이 떨어지는 상황이 발생 할 수 있음.   결론 적으로 VIP를 통한 로드 밸런싱을 통해 실제 이용하는 고객들은 기존의 서비스를 이용하듯이 사이트를 이용 할 수 있고 서버 증설을 통한 트래픽 분산으로   인해 빠른 서비스를 제공 할 수 있음.


2) 서버의 가용성을 위함.


- 통신에서 어떠한 통신장비던 서비스를 위해  항상 오픈 되어 있으며, 서버의 노화 등으로 서비스 장애가 날 수 있다. 이런 현상을 대비하기 위해 L4 스위치는       Failover라는 기능을 가지고 있음.

- Failover는 어떠한 서비스를 제공하는 서버가 죽게 되면, 이것을 감지하고 자동으로 미리 준비한 스페어 서버로 트래픽을 돌려주는 역할을 하는 기능이다.

  이 기능을 통해 스탠바이 장비로 넘어가서 정상적으로 서비스를 제공 할 수 있음.







3) 보안적인 기능


- L4 스위치에서는 포트를 조절하는 기능을 하며, 리얼서버로 특정한 포트 외에 다른 통신이 불가능하도록 설정 할 수 있음. 이것은 보통 웹 서버 앞단에 사용됨.


Alteon L4 스위치 기본 설정방법


   - Real 서버가 2대이고 1개의 그룹으로 설정, vitural 서버는 1개 사용


  - metric(분산알고리즘) 미설정 시 default는 leastconnection

  - health 체크 미설정 시 default는 tcp, inter=2(매 2초마다 체크), retry=4(4번 실패 체크 시 down으로 정의)

  - DAM(Direct Access Mode)가 default로 disable (Real IP를 통한 직접 서비스 안됨)

    ※ 즉, 여기서는 Real IP를 이용한 http(80번 포트) 접속 안됨

       (하지만 Load Balance와 무관한 서비스는 각각 가능: ssh, 터미널 접속,... 등)

Main#

Main# /cfg/l3     ; 스위치 IP 설정...

(또는 Main# /cfg/ip)

Layer 3# if 1     ; 스위치 자체 IP 설정...

IP Interface 1# addr 1.2.3.4  ; IP address 할당

IP Interface 1# mask 255.255.255.0  ; subnet mask 할당 (필요시)

IP Interface 1# ena    ; IP address 활성화

IP Interface 1# /cfg/l3/gw   ; default gateway 설정...

Enter default gateway number: (1-255) 1 [Enter] ; gateway 번호 입력 (필요시)

Default gateway 1# addr 1.2.3.1  ; default gateway 할당

Default gateway 1# ena    ; gateway 활성화

Default gateway 1# /cfg/slb/real 1  ; 첫번째 real 서버 설정...

Real server 1# rip 1.2.3.5   ; real 서버 IP address 할당

Real server 1# ena    ; 첫번째 real 서버 활성화

Real server 1# /cfg/slb/real 2   ; 두번째 real 서버 설정...

Real server 2# rip 1.2.3.6   ; real 서버 IP address 할당

Real server 2# ena    ; 두번째 real 서버 활성화

Real server 2# /cfg/slb/group 1   ; real 서버 그룹 설정...

Real server group1# add 1   ; 등록된 real 서버 1번을 그룹에 추가

Real server group1# add 2   ; 등록된 real 서버 2번을 그룹에 추가

Real server group1# /cfg/slb/virt 1  ; virtual 서버 설정...

Virtual server 1# vip 1.2.3.2  ; virtual 서버 IP address 할당

Virtual server 1# ena    ; virtual 서버 활성화

Virtual server 1# service http   ; http 서비스 설정...

Virtual server 1 http Service# group 1  ; http 서비스를 real 서버 그룹에 할당

(필요시 Virtual server 1 http Service# rport 8080 ; http 서비스를 real 서버의 8080 포트에 매핑)

Virtual server 1# /cfg/slb/port 1  ; L4의 물리적인 포트 1번 설정...

SLB port 1# server ena    ; 포트 1번을 서버 포트로 할당

SLB port 1# /cfg/slb/port 2   ; L4의 물리적인 포트 2번 설정...

SLB port 2# server ena    ; 포트 2번을 서버 포트로 할당

SLB port 8# /cfg/slb/port 8   ; L4의 물리적인 포트 8번 설정...

SLB port 8# client ena    ; 포트 8번을 클라이언트 포트로 할당

SLB port 8# /cfg/slb    ; SLB 설정...

Layer 4# on     ; Server Load Balancing 모드 On

Layer 4# apply     ; 변경된 설정값 적용

Layer 4# cur     ; 현재 설정값 확인

Layer 4# save     ; FLASH 메모리에 현재 설정내용 저장

Layer 4# /info/slb/dump    ; SLB 정보 확인


    ------------------------------------------------------

   | ㅁ1 ㅁ2 ㅁ3 ㅁ4   ㅁ3 ㅁ4 ㅁ5 ㅁ6   ㅁ5 ㅁ6 ㅁ7 ㅁ8  |  --> Alteon L4 스위치

    --+---+--------------------------------------+--------

      |   |                                                           |

      |   |                                                           |--> 클라이언트 포트 (외부 연결)

      |   |

      |   |--> 서버 포트 (서버 연결)

      |

      |

      |--> 서버 포트 (서버 연결)





그 외. 로드밸런싱 알고리즘


사용자 삽입 이미지


출저 : http://annehouse.tistory.com/365

  http://jvmblog.tistory.com/201

'KITRI > 네트워크 기초' 카테고리의 다른 글

DHCP 인증 과정  (0) 2017.10.09
SDN  (0) 2017.09.25
Bonding 종류  (0) 2017.09.04
2~ 4계층 헤더 구조  (0) 2017.08.31
스터디 Cacti SNMP 연동 실습 2  (0) 2017.07.31