Simulation is ...

Virtual = Real

Flight Sim 자세히보기

> IT (Information Technology)

L4, 알테온, Alteon, 모니터링, 컨피그, 헬쓰체크, Health Check

FlightSim 2023. 7. 4. 13:41
320x100

Alteon Layer 4 Switch Simple Manual

Server Load Balancing /   Firewall Load balancing

 

[Configuration 메뉴]

1. interface 설정하기

>> main #cfg                    [configuration 메뉴로 들어가는 명령어]

>> configuration #ip     [ip관련 설정을 위한 메뉴로 들어가는 명령어]

>> ip # if 1              [interface 설정 -256개의 interface를 설정할수 있음]

>> IP Interface 1# addr192.168.1.2      [스위치의 interface 주소]

>> IP Interface 1# mask255.255.255.0   [주소에 대한 mask ]

>> IP Interface 1# broad192.168.1.255   [주소에 대하 브로드캐스트 address]

>> IP Interface 1#en      [ip와 관련된설정 후에는 반드시 enable 을해주어야함]   

>> IP Interface 1# apply   [apply를하므로서 설정을 활성화 시킴-메모리에 저장됨]

>> IP Interface 1#save    [save를 해야 NVRam에 저장되어 리부팅 후에도사용가능]

 

·약식 구성방법

>> main # cfg/ip/if 1/addr192.168.1.2/mask 255.255.255.0/broad 192.168.1.255/en

 

2. gateway 설정하기

>> main #cfg                    [configuration 메뉴로 들어가는 명령어]

>> configuration #ip                [ip관련 설정을 위한 메뉴로 들어가는 명령어]

>> ip # gw1                         [gateway 를설정 - gateway 4개까지 설정가능]

>> Default gateway 1# addr192.168.1.1  [gateway주소 설정]

>> Default gateway 1#en                [ip 관련구성후 반드시 enable ]

>> Default gateway 1#apply         

>> Default gateway 1# save

 

·약식 구성방법

>> main # cfg/ip/gw 1/addr192.168.1.1/en/apply/save

 

3. 스위치 기능설정하기

· 패스워드 변경하기

>>main # cfg

>>configuration #sys        [system 메뉴로들어감]

>>system #user             [user 메뉴에서원하는 사용자를 선택]

>> User Access Control#admpw    [administrator password를 변경시 선택]

Changing ADMINISTRATOR password

Enter current administratorpassword:      [현재의 로그인패스워드 입력]

 

Enter new administratorpassword:            [변경할새로운 패스워드 입력]

Re-enter new administratorpassword:   [재 입력]

New administrator passwordaccepted.  

>> User AccessControl#apply/save      [반드시 apply save를 해 줍니다.]

 

·약식 구성방법

>>main # cfg/sys/user/admpw

 

·telnet 기능 활성화 반드시콘솔로 접속을 하셔야 메뉴가 보인다.)

>>main # cfg

>>configuration # sys

>>system # tnet en    [telnet 서비스는 os 9.0에서 default disable이므로 활성화 시켜줌]

>>system # apply/save   [반드시 apply save를 해 줍니다.]

 

·vlan 설정하기

>>main # cfg

>>configuration # vlan 2  [default로모든 포트는 vlan 1에 할당되어 있다 ]

>>vlan 2 # add 1/add 2   [vlan 1에서필요한 포트를 빼오는 형식]

C interface vlan 에 할당할때는 ip 설정하는 부분에서 해당하는 vlan을 지정해 주면됨

  ex) >>main # cfg/ip/if2/addr 192.168.1.1/vlan 2/en 

       ip를 설정하고 뒤에 해당 vlan 을지정한다.

 

4. Server Load Balancing

      · SLB 구성 로직

 

Real server : web 문서가 들어있는 서버들

Group : 동일한 서비스를 하는 서버들이 한 그룹에 포함되며로드발란싱 하는 기법

        (leastconnection, roundrobin, hash. Etc)을 적용하는단위이자 Health check

        결정 하는 단위가 된다.

VIP : 리얼 서버 4대를 대표해주는 IP이며 외부 사용자들은웹서버에 access할때 이 ip

       보고 들어오게 된다스위치는  ip real server ip 변경하였다가 되돌린다.

       가상의 대표ip 설정하고 어떤 서비스를 하게 되는지를 결정하고 다시 서비스를 

       대상 그룹을 지정한다

  

· Real server 구성 command

>>main # cfg

>>configuration # slb     [slb 메뉴로 들어감]

>>layer 4 # real1        [real server 1번 지정]  

>>real server 1#rip192.168.1.3  [real server  ip를 설정할때는 rip address이다]

>>real server 1#en     [ip설정후enable를 해준다. ]

>>real server 1# ..     [마침표 두번을 찍으면 상위 메뉴로 간다. ]

 

·약식 구성방법

>> main # c/sl/re 1/rip192.168.1.3/en/../re 2/rip 192.168.1.4/en/  방법으로 계속

 

·그룹 지정하기

>>Layer 4 # group 1

>>Real server group 1 # add 1/add2/add 3/add 4  [Real server 들을 추가한다]

>>Real server group 1 #health    [서버와의health check 하는 기준 선택]

icmp|tcp|http|dns|pop3|smtp|nntp|ftp|imap|radius|sslh

중 하나를 선택할 수 있다.

>>Real server group 1 #metric    [로드발란싱 기법 선택]

leastconns|roundrobin|minmisses|hash|response|bandwidth중 하나를 선택

( metric에대한 설명은 맨 마지막장 참조)

·약식 구성방법

>>main # c/sl/gr 1/add 1/add 2/add3/add 4/met round/heal http

 

>>Real server group 1# ..        [상위 메뉴로]

>>Layer 4 # virt1           [virtual IP설정 메뉴. VIP 256개 까지 사용할 수 있다]

>>Virtual Server 1 # vip192.168.1.10/en  [virtual ip 를 설정하고 enable 하였다]

>>Virtual server 1 # service80           [서비스 포트 지정]

>> Virtual Server 1 http Service#group 1 [서비스를 적용할 그룹 지정]

>> Virtual Server 1 httpService#../../      [상위 메뉴로 두번 올라간다.]

>> Layer 4 #on                          [SLB 전체를 활성화 시켜준다.]

>> Virtual Server 1 http Service#apply / save  [저장하기]

 

· Service port 구성하기

>>Main # cfg

>>Configuration # slb

>>Layer 4 # port 1

>>SLB port 1 # clienten    [client traffic 이 들어오는 포트에 client enable를 해준다]

>>SLB port 1 # ..

>>Layer 4 # port 2

>>SLB port 2 # serveren   [server가 물려있는 포트에 server enable를 해준다]

>>SLB port 2 # apply/save

 

알테온은 client 가 들어오는 포트에client  traffic이 들어오는 포트라는 지정을 해줘야

되고 server가 물려있는 포트는 서버가 있는 포트라는 server enable을 해줘야

정상적으로 서비스를 할수 있다 .

만약 어떤 사용자가 client enable가 되지 않은 다른 포트에 자신의 pc를 물려서

vip ping을 하면 ping이 되지 않는다.

 

· User define port 지정하기(ex, 8080, 8001,12000.....)

  user define port를 알테온에서 설정하는 방법은 3가지가있다.

  1. 사용자의 destination port  80 이고 실제 service port가 다를경우(ex.8001)

  >> Main # cfg/slb/vi 1

>> Virtual Server 1# se 80  [사용자의 트래픽은 80이다]

>> Virtual Server 1 http Service #rport 8001 [real port  8001임을 지정한다]

Current realport:     80               

New pending real port:8001      [서비스 포트가 변경됨을 알려줌]

>> Virtual Server 1 http Service#gr 1   [서비스 하게될 리얼서버그룹 지정]

Current real servergroup:     1

New pending real server group: 1

>> Virtual Server 1 http Service#apply   [apply해서 서비스를 활성화시켜준다]

 

  2. 사용자의 destination port 가실제 service port와 동일한경우

    예를 들어 사용자가http://www.cng.co.kr:8001 이라고 브라우저에 직접 치는 경우

    >> Main #cfg/slb/vi 1

>> Virtual Server 1# se 8001  [사용자의 트래픽은 8001이다]

>> Virtual Server 1 8001 Service #gr 1   [서비스 하게될 리얼서버그룹 지정]

Current real servergroup:     1

New pending real server group: 1

>> Virtual Server 1 http Service#apply   [apply해서 서비스를 활성화시켜준다]

 

   3. 사용자의 destination port 80 이고 실제 service port가 다른 여러개인 경우

     예를 들어 사용자는 실제 서비스 포트를 전혀 모르고 80으로만 쿼리를 보내고

    실제 서버의 서비스는 8080, 8001,12000을 사용한다고할경우  알테온은 사용자의

    쿼리가 어떤 서비스를 요구하는지 전혀 알수 없다.

    따라서 이런 경우 각각의 서비스에 대한 각각의 vip를 설정해야한다.

    설정사항은 1번과 같다.

 

·Filter 설정하기

-Filter : 필터는 cisco router에서 나오는access-list와 동일한것으로 보면된다.

  단지 alteon에서는 allow, deny 외에 redirection 이라는 필터링 기법을지원한다.

  redirection은 특정한 트래픽을 강제로 지정한 방향으로 가도록 만들어주는 필터이다.

  주로 cache redirection에이용되며, WCR(web cache redirection), APR(application

Redirection) 에 쓰는 것이 보통이다.

  filter 1 부터 224 까지 쓸수 있으며 1이 가장 우선순위가 높다.

-설정하기

>>main # cfg

>>configuration # slb

>>layer 4 # fi 100   [filter 번호 지정, 100번부터 지정하는게 보통]

>>filter 100 # sip192.168.1.1/smask 255.255.255.255/dip 10.10.10.1/dmask

255.255.255.255/pro tcp/dpo 80/actdeny/en

>>layer 4 # port 1/add 100/fien     [slb portfilter를 추가하고 filter enable를 해줌]

>>layer 4 #apply/save              [apply/save는 필수]

 source ip 192.168.1.1 host destination ip 10.10.10.1 destination80port

 올경우 deny 시켜라는 filter.

 filter 는 소스 트래픽이 들어오는 포트에 지정.

 

6. Firewall Load Balancing

· 개념  

  알테온의 주 기능중에 SLB가있는데 이 SLB구성은 특정 서버의 IP

  기준으로 로드발란싱을 하는 것인데Firewall Load Balancing 은 그 원리를 이용한

  것이다.

  알테온이 firewall반대편에 있는 알테온의 다른 두개의 Interface IP를서버로드발란싱

  하는 것처럼 Load balacing을하여 그 경로상에 있는 firewall이 자동적으로 load

  balacning 되도록 하는 것이다.

네트웍을 6개로 나누어서하는게 보통이지만 다양한 네트웍으로 구성하여 사용할수 있다.

· 구성로직

 

 

둥근 점선 표시는 네트웍을 의미한다.

 

· 알테온에 구성되는 요소들

  - swtich interface 3 : 각 네트웍으로 통신을하기위해서 각 네트웍마다 하나의

    ip address가 설정되어야한다네트웍이 3개라면 통신을 위한 interface 3개 필요.

  - gateway : default gateway 설정

  - vlan : 각 네트웍을 vlan으로 나누어준다.

  - static route : 로드발란싱될 다른 L4 switch의다른 네트웍으로 가기위한

                 gateway지정

  - real server,group(metric  hash) : 실제 load balancing되는 real serve는반대편

    L4 switch interface이다. slb 설정과 동일하게 group에 추가하고 metric값을

    반드시 hash로 지정한다.

  - filter : firewall 을 거쳐 firewall 안쪽네트웍으로 들어가려는 트래픽을 강제로 그

    네트웍쪽으로 뿌려주도록 만들어준다.

 

· switch  interface 설정하기

  >>main # cfg/ip

  >>ip # if 1/addr192.168.1.1/mask 255.255.255.0/broad 192.168.1.255/vl 1/en

  >>ip interface 1 # ..

  >>ip # if 2/addr192.168.2.1/mask 255.255.255.0/broad 192.168.2.255/vl 2/en

  >>ip interface 2 # ..

  >>ip # if 3/addr192.168.3.1/mask 255.255.255.0/broad 192.168.3.255/vl 3/en

  >>ip interface 3 # ..

· gateway 설정하기

>> ip # gw 1/addr 192.168.1.254/en

  >> Default gateway 1 #apply

  >> Default gateway 1 #/

· Vlan 설정하기

  >> main # cfg/vlan 2

  >> vlan 2 # add 5/add6/en

  >> vlan 2 # ..

  >> configuration #vlan 3

  >> vlan 3 # add 7/add8/en

  >> vlan 3 # /

· Static route 지정하기

  >> main # cfg/ip

  >> IP # route

  >> <st1:Street>

Ip Static Route

</st1:Street> # add

Enter destination IPaddress:   192.168.4.0

Enter destination subnet mask:  255.255.255.0

Enter gateway IPaddress:       192.168.2.254

Enter interface number: (1-256) 2

  * 약식 : /c/ip/route/add192.168.4.0  255.255.255.0  192.168.2.254  2

  각각 필요한 라우팅 정보를 다 넣어준다.(필요한 내부 네트웍 등등)

  >> <st1:Street>

Ip Static Route

</st1:Street> # /

· SLB 설정하기

  >> Main # cfg/slb

· Real server 설정하기

  ; real server firewall 이 아니라 firewall 반대편에있는 switch 의 다른 두개의

interface이다.

  >> Layer 4 # re 1

  >> Real Server 1 # rip192.168.4.1/en

  >> Real Server 1 # ..

  >> Layer 4 # re 2

  >> Real Server 2 # rip192.168.5.1/en

  >> Real sever 2 # ..

· 그룹 설정하기

  >> Layer 4 # gr 1

  >> Real Server Group 1# add  1/add  2/metric hash/heal icmp

  >> Real Server Group 1# ..

     metric 값은 반드시 hash 로 설정해준다사용자의 트래픽이특정 firewall을 거쳐

     내부 네트웍에 있는 특정 서버에 접근했다가 다시source로 돌아갈때 만약 처음

     들어올때 지나갔던 firewall을다시 거치지 않는다면 packet drop될것이다.

     hash라는 알고리즘은 source IP destination IP를 연산하여 특정 라일을 타면

     다음에도 계속 그 라인을 탈수 있도록 해준다.

· Filter 설정하기

  >> Layer 4 # filter100

  >> Filter 100 # dip192.168.6.0

  >> Filter 100 # dmask255.255.255.0

  >> Filter 100 #action  redir

>> Filter 100 # group 1

  >> Filter 100 # en

     내부 네트웍으로 가는 트래픽들을 아래쪽switch로 강제 라우팅을 시키는 필터

  >> Filter 100 # ..

  >> Layer 4 # Filter101

  >> Filter 101 # dip192.168.2.0

  >> Filter 101 # dmask255.255.255.0

  >> Filter 101 # actallow

  >> Filter 101 # en

  >> Filter 101 # apply

  >> Filter 101 # ..

  >> Layer 4 # Filter102

  >> Filter 102 # dip192.168.3.0

  >> Filter 102 # dmask255.255.255.0

  >> Filter 102 # protcp        [101 filter 102 filter firewallmanage

  >> Filter 102 # actallow       할수 있도록 allow filter를 걸어준다만약 allow

  >> Filter 102 #en              filter가 없다면 firewall로 가려는 트래픽도 강제로

  >> Filter 102 #apply           내부 네트웍으로 보내지게 될것이다. ]

  >> Filter 102 # ..

· slb port  filter 추가하기

  >> Layer 4 # po 1

  >> SLB port 1 # add100/add 101/add 102/filt en

  >> <st1:place><st1:PlaceName>SLB</st1:PlaceName> <st1:PlaceType>Port</st1:PlaceType></st1:place> 1# ..

     filter는 사용자의 트래픽이 들어오는 포트에 설정한다.

     위에서 만든 filter slb menu 아래에 있는 port에 추가하여주고 반드시 그 포트에서

     fitler enable를 해주어야한다.

· SLB 활성화 하기

  >> Layer 4 # on

  >> Layer 4 # apply /save

    모든 slb 설정이 끝나면 slb 를 활성화 시켜 주어야 하는데 on을 하면 활성화된다.

    slb on 이 되고나면 진정한 layer 4 기능을 수행한다.

     slb off 되어 있다면 패킷의 header 정보를 까보지 않는다오로지 layer3 스위치

    와 같은 역할 을 할 뿐이다.

    slb on되고 나면 일일이 패킷을 까보면서사용자 트래픽이 destination이 어디인지

    source ip 는 무엇인지어떤 서비스를 원하는지 (service query)등등을 확인하여

    적절한 방향으로 트래픽을 보내주게 된다.

 

 

7. Information

· 구성 정보보기

>>main # in

>>Information #li    [각 양식의 맨 위 양식의 맨 아래 포트에설정된 링크정보를 볼수

있다. ]

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

Port   Speed    Duplex         FlowCtrl         Link

---   -----   --------  --TX-----RX--   ------

  1      100     half           no     no        up

  2     1000     full          yes    yes        down

  3     1000     full          yes    yes        down

  4     1000     full          yes    yes        down

  5     1000     full          yes    yes        down

  6     1000     full          yes    yes        down

  7     1000     full          yes    yes        down

  8     1000     full          yes    yes        down

  9     1000     full          yes    yes        down

>>Information # ip   [switch에 설정된 interface   gateway정보를 볼수 있다.]

>>Information # slb  [구성된 SLB 정보를 볼수 있다만약 slb설정후 on을 하지 않았다면

                      정보는 보이지 않게 된다. ]

>> Server Load BalancingInformation# sess/du [어떤 사용자가 어떤 서버에 접속했는지

                                                알수 있다 ]

>> Server Load BalancingInformation# du [전반적인slb 구성 정보 보기]

 

8. Statistics

· 통계치 보기

>> main # st

>> Statistics # port1     [port 1에 대한 통계치를 보기위해 1번을 선택]

>> Port Statistics #br    [layer 2 의 정보보기]

>> Port Statistics #et    [Ethernet 정보보기]

>> Port Statistics #if     [interface 정보보기]

>> Port Statistics #cpu   [각 포트마다 있는 cpu 부하율 확인하기]

>> main # st

>> Statistics #slb         [slb관련 통계정보를 본다]

 

알테온(Alteon) L4 컨피그 정리

<글로벌 커멘드>
. 현재 메뉴보기
.. 상위 메뉴 이동
/ 최상위 메뉴로 이동, 명령어 분리자로 이용


<로컬 커멘드>
info =show

stat =상태정보
cfg =글로벌모드
oper
boot
maint
diff -현재 설정과 변경될 설정 비교
diff flash -현재 운영된 설정과 flash에 있는 설정 비교
apply -변경된 설정 값 적용
save -플래쉬 메모리에 현재 설정 내용 저장
revert  -실행전 컨피그 rollback 
revert apply  -운영중인 설정을 flash에 저장된 설정으로 rollback
exit

<패스워드 초기화>
admin / forgetMe!


<점검 컨피그>
-software version, uptime, 시간, 장비명, 마지막 부팅시간, sys모든 정보
/info/sys/dump 

-OS버전확인
/boot/cur

-cpu ,mem 확인
/stats/mp/cpu
/stats/mp/mem

-현재 Session 수 및 Table
/info/slb/sess/dump

-트래픽 분산기능 상태
/info/slb/dump                 
   
-그룹별 로드밸런싱 정보보기
/stats/slb/group<number> 

-이중화 구성 확인
/info/l3/ip 
/info/l3/vrrp

-CRC 애러 확인
/stats/port <number>/dump

-Event Log확인
/info/sys/log     /info/log

-링크 상태, 포트 번호, speed, duplex, TX, RX 확인
/info/link

-포트 정보, vlan 확인 
/info/link/port

-포트 상태 확인
/stat/port x/dump

-Interface상태
/info/l3/ip

-vlan 정보 확인
/info/l2/vlan

-STP 확인
/info/l2/dump

-장비 정보
/info/sys/general 
/info/sys/fan
/info/sys/temp
/info/sys/mgmt

-컨피그 설정 내용  (백업)
/cfg/dump

-Gateway상태
/info/l3/ip

-arp 테이블 확인
/info/l3/arp/dump

-라우팅 테이블 확인
/info/route/dump

-Failover상태
/info/l3/vrrp 

-부하분산상태
/info/slb/dump

-Session 상태
/stat/slb/maint

-컨피그 TFTP로 백업 (tftp 실행시키고 서버로 잡고 백업)
/cfg/ptcfg

-초기화
/boot/conf(factory)(reset)(y y)

-기존 설정 config backup
/cfg/dump

-단순 재부팅
/boot/reset

-장비 shutdown (29.0.1 버전부터 기능 추가)
/boot/shutdown

<컨피그 삭제>
# rem ? -삭제방법보기

<여러개의 명령어 컨피그 복붙하기 = 주니퍼(Juniper) load set terminal 명령어와 동일>
MAIN# verbose 0
ctrl + v
MAIN#verbose 2
MAIN#apply
MAIN#save
y


/cfg/dump로 확인

<패스워드 변경>
/cfg/sys/user/admpw (현재 패스워드->변경할 패스워드, 재입력) apply/save

<텔넷 설정> -반드시 콘솔로 접속해야 메뉴가 보인다.
/cfg/sys/tnet/en/apply/save

<포트 ip설정>
ip#if <1> 
interface 1 #addr 192.168.10.1 
interface 1 #mask 255.255.255.0
interface 1 #broad 192.168.10.255
interface 1 #ena  -> IP 설정시 반드시 en
interface 1 #apply  -> 설정을 활성화- 메모리에 저장
interface 1 #save  -> save 해야 nvram에 저장되어 리부팅 후에도 사용가능

예시)
>>main # /cfg/ip/if 1/addr 192.168.10.1/mask 255.255.255.0/broad 192.168.10.255/en/apply/save

<게이트 웨이 설정>
/cfg/ip/gw 1/addr 192.168.1.1/en/apply/save

<vlan 설정>
>>main # cfg
>>configuration # vlan2 엔터 -디폴트는 1
>>vlan2 # 

-vlan을 새로 추가하면 기존 설정이 없어진다.

>>main #cfg/ip/if 2/addr 192.168.0.2/vlan 2/en

def로 사용할 vlan 정의해줘야 한다.

<vrrp 설정>
-컨피그 참고 (/l3는 없을 수도 있음 ex: /cfg/vrrp)
/cfg/l3/vrrp/on  -vrrp 활성화
/cfg/l3/vrrp/vr 1  -vrrp 라우터 1 설정
        ena
        vrid 1
        if 1
        prio 101  -디폴트 우선순위 100
        addr 192.168.10.100
apply save

-vrrp 정보 확인 vrid, VIP, 인터페이스, 우선순위, 마스터,백업확인 
/info/vrrp 

-설정확인
/cfg/vrrp/cur


<SLB Session 확인하기>
Slb구성시 Session이 Real Server에 정확히 붙는지 확인할 경우에 사용하는 명령

>> Session Table Information# /info/slb/sess/du


<telnet 기능 활성화> ( 반드시콘솔로 접속을 하셔야 메뉴가 보인다.)
>>main # cfg
>>configuration # sys
>>system # tnet en    [telnet 서비스는 os 9.0에서 default disable이므로 활성화 시켜줌]
>>system # apply/save   [반드시 apply와 save를 해 줍니다.]

<헬스체크> 
/info/slb/virt 

<SNMP 설정> 
/c/sys/access
        snmp r
/c/sys/ssnmp
        rcomm "aaaaaa"

 

[Configuration 메뉴]

 

1. interface 설정하기

>>main # cfg                    [configuration 메뉴로 들어가는 명령어]

>>configuration # ip     [ip관련 설정을 위한 메뉴로 들어가는 명령어]

>>ip # if 1              [interface 설정 -256개의 interface를 설정할수 있음]

>> IP Interface 1# addr 192.168.1.2      [스위치의 interface 주소]

>> IP Interface 1# mask 255.255.255.0   [주소에 대한 mask ]

>> IP Interface 1# broad 192.168.1.255   [주소에 대하 브로드캐스트 address]

>> IP Interface 1# en      [ip와 관련된설정 후에는 반드시 enable 을 해주어야함]   

>> IP Interface 1# apply   [apply를 하므로서 설정을 활성화 시킴-메모리에 저장됨]

>> IP Interface 1# save    [save를 해야 NVRam에 저장되어 리부팅 후에도 사용가능]

·약식 구성방법

>>main # cfg/ip/if 1/addr 192.168.1.2/mask 255.255.255.0/broad 192.168.1.255/en

 

 

2. gateway 설정하기

 

>>main # cfg                    [configuration 메뉴로 들어가는 명령어]

>>configuration # ip     [ip관련 설정을 위한 메뉴로 들어가는 명령어]

>>ip # gw 1             [gateway 를 설정 - gateway는 4개까지 설정가능]

>> Default gateway 1# addr 192.168.1.1  [gateway 주소 설정]

>> Default gateway 1# en                [ip 관련 구성후 반드시 enable ]

>> Default gateway 1# apply         

>> Default gateway 1# save

·약식 구성방법

>>main # cfg/ip/gw 1/addr 192.168.1.1/en/apply/save

 

 

3. 스위치 기능 설정하기

 

· 패스워드 변경하기

>>main # cfg

>>configuration # sys        [system 메뉴로 들어감]

>>system # user             [user 메뉴에서 원하는 사용자를 선택]

>> User Access Control# admpw    [administrator의 password를 변경시 선택]

Changing ADMINISTRATOR password

Enter current administrator password:      [현재의 로그인 패스워드 입력]

 

Enter new administrator password:            [변경할 새로운 패스워드 입력]

Re-enter new administrator password:   [재 입력]

New administrator password accepted.  

>> User Access Control#apply/save      [반드시 apply와 save를 해 줍니다.]

·약식 구성방법

>>main # cfg/sys/user/admpw

 

 

·telnet 기능 활성화 ( 반드시 콘솔로 접속을 하셔야 메뉴가 보입니다.)

>>main # cfg

>>configuration # sys

>>system # tnet en    [telnet 서비스는 os 9.0에서 default disable이므로 활성화 시켜줌]

>>system # apply/save   [반드시 apply와 save를 해 줍니다.]

 

 

·vlan 설정하기

>>main # cfg

>>configuration # vlan 2  [default로 모든 포트는 vlan 1에 할당되어 있다 ]

>>vlan 2 # add 1/add 2   [vlan 1에서 필요한 포트를 빼오는 형식]

C interface를 vlan 에 할당할때는 ip 설정하는 부분에서 해당하는 vlan을 지정해 주면됨

  ex) >>main # cfg/ip/if 2/addr 192.168.1.1/vlan 2/en 

       ip를 설정하고 뒤에 해당 vlan 을 지정한다.

 

4. Server Load Balancing

 

Real server : web 문서가 들어있는 서버들

Group : 동일한 서비스를 하는 서버들이 한 그룹에 포함되며, 로드발란싱 하는 기법

        (least connection, roundrobin, hash. Etc)을 적용하는 단위이자 Health check

        결정 하는 단위가 된다.

VIP : 리얼 서버 4대를 대표해주는 IP이며 외부 사용자들은 웹서버에 access할때 이 ip를

 

        보고 들어오게 된다. 스위치는 이 ip를 real server의 ip로 변경하였다가 되돌린다.

       가상의 대표ip를 설정하고 어떤 서비스를 하게 되는지를 결정하고 다시 서비스를 할

       대상 그룹을 지정한다



 

 

· Real server 구성 command

>>main # cfg

>>configuration # slb     [slb 메뉴로 들어감]

>>layer 4 # real 1        [real server 1번 지정]  

>>real server 1#rip 192.168.1.3  [real server 의 ip를 설정할때는 rip address이다]

>>real server 1# en     [ip설정후 enable를 해준다. ]

>>real server 1# . .     [마침표 두번을 찍으면 상위 메뉴로 간다. ]

 

 

·약식 구성방법

>> main # c/sl/re 1/rip 192.168.1.3/en/../re 2/rip 192.168.1.4/en/  방법으로 계속

 

 

·그룹 지정하기

>>Layer 4 # group 1

>>Real server group 1 # add 1/add 2/add 3/add 4  [Real server 들을 추가한다]

>>Real server group 1 # health    [서버와의 health check 하는 기준 선택]

icmp|tcp|http|dns|pop3|smtp|nntp|ftp|imap|radius|sslh

중 하나를 선택할 수 있다.

>>Real server group 1 # metric    [로드발란싱 기법 선택]

leastconns|roundrobin|minmisses|hash|response|bandwidth 중 하나를 선택

( metric에대한 설명은 맨 마지막장 참조)

·약식 구성방법

>>main # c/sl/gr 1/add 1/add 2/add 3/add 4/met round/heal http

 

 

>>Real server group 1# . .        [상위 메뉴로]

>>Layer 4 # virt 1           [virtual IP설정 메뉴. VIP는 256개 까지 사용할 수 있다]

>>Virtual Server 1 # vip 192.168.1.10/en  [virtual ip 를 설정하고 enable 하였다]

>>Virtual server 1 # service 80           [서비스 포트 지정]

>> Virtual Server 1 http Service# group 1 [서비스를 적용할 그룹 지정]

>> Virtual Server 1 http Service#../../      [상위 메뉴로 두번 올라간다.]

>> Layer 4 # on                          [SLB 전체를 활성화 시켜준다.]

>> Virtual Server 1 http Service# apply / save  [저장하기]

 

 

· Service port 구성하기

>>Main # cfg

>>Configuration # slb

>>Layer 4 # port 1

>>SLB port 1 # client en    [client traffic 이 들어오는 포트에 client enable를 해준다]

>>SLB port 1 # ..

>>Layer 4 # port 2

>>SLB port 2 # server en   [server가 물려있는 포트에 server enable를 해준다]

>>SLB port 2 # apply/save

 

 

알테온은 client 가 들어오는 포트에 client 의 traffic이 들어오는 포트라는 지정을 해줘야

되고 server가 물려있는 포트는 서버가 있는 포트라는 server enable을 해줘야

정상적으로 서비스를 할수 있다 .

만약 어떤 사용자가 client enable가 되지 않은 다른 포트에 자신의 pc를 물려서

vip로 ping을 하면 ping이 되지 않는다.

 

 

· User define port 지정하기(ex, 8080, 8001, 12000.....)

  user define port를 알테온에서 설정하는 방법은 3가지가 있다.

  1. 사용자의 destination port 가 80 이고 실제 service port가 다를경우(ex.8001)

  >> Main # cfg/slb/vi 1

>> Virtual Server 1# se 80  [ 사용자의 트래픽은 80이다]

>> Virtual Server 1 http Service # rport 8001 [real port 가 8001임을 지정한다]

Current real port:     80               

New pending real port: 8001      [서비스 포트가 변경됨을 알려줌]

>> Virtual Server 1 http Service# gr 1   [서비스 하게될 리얼서버그룹 지정]

Current real server group:     1

New pending real server group: 1

>> Virtual Server 1 http Service# apply   [apply해서 서비스를 활성화시켜준다]

 

 

  2. 사용자의 destination port 가 실제 service port와 동일한경우

    예를 들어 사용자가 http://www.cng.co.kr:8001 이라고 브라우저에 직접 치는 경우

    >> Main # cfg/slb/vi 1

>> Virtual Server 1# se 8001  [ 사용자의 트래픽은 8001이다]

>> Virtual Server 1 8001 Service # gr 1   [서비스 하게될 리얼서버그룹 지정]

Current real server group:     1

New pending real server group: 1

>> Virtual Server 1 http Service# apply   [apply해서 서비스를 활성화시켜준다]

   3. 사용자의 destination port 가 80 이고 실제 service port가 다른 여러개인 경우

     예를 들어 사용자는 실제 서비스 포트를 전혀 모르고 80으로만 쿼리를 보내고

    실제 서버의 서비스는 8080, 8001, 12000을 사용한다고할경우  알테온은 사용자의

    쿼리가 어떤 서비스를 요구하는지 전혀 알수 없다.

    따라서 이런 경우 각각의 서비스에 대한 각각의 vip를 설정해야한다.

    설정사항은 1번과 같다.

·Filter 설정하기

-Filter : 필터는 cisco router에서 나오는 access-list와 동일한것으로 보면된다.

  단지 alteon에서는 allow, deny 외에 redirection 이라는 필터링 기법을 지원한다.

  redirection은 특정한 트래픽을 강제로 지정한 방향으로 가도록 만들어주는 필터이다.

  주로 cache redirection에 이용되며, WCR(web cache redirection), APR(application

Redirection) 에 쓰는 것이 보통이다.

  filter는 1 부터 224 까지 쓸수 있으며 1이 가장 우선순위가 높다.

-설정하기

>>main # cfg

>>configuration # slb

>>layer 4 # fi 100   [filter 번호 지정, 100번부터 지정하는게 보통]

>>filter 100 # sip 192.168.1.1/smask 255.255.255.255/dip 10.10.10.1/dmask

255.255.255.255/pro tcp/dpo 80/act deny/en

>>layer 4 # port 1/add 100/fi en     [slb port에 filter를 추가하고 filter enable를 해줌]

>>layer 4 # apply/save              [apply/save는 필수]

 source ip가 192.168.1.1인 host가 destination ip 10.10.10.1 destination 80port로

 올경우 deny 시켜라는 filter.

 filter 는 소스 트래픽이 들어오는 포트에 지정.

 

 

6. Firewall Load Balancing

 

· 개념  

  알테온의 주 기능중에 SLB가 있는데 이 SLB구성은 특정 서버의 IP를

  기준으로 로드발란싱을 하는 것인데 Firewall Load Balancing 은 그 원리를 이용한

  것이다.

  즉, 알테온이 firewall반대편에 있는 알테온의 다른 두개의 Interface IP를 서버로드발란싱

  하는 것처럼 Load balacing을 하여 그 경로상에 있는 firewall이 자동적으로 load

  balacning 되도록 하는 것이다.

네트웍을 6개로 나누어서 하는게 보통이지만 다양한 네트웍으로 구성하여 사용할수 있다.

· 구성로직

 

 

 

둥근 점선 표시는 네트웍을 의미한다.

 

 

· 알테온에 구성되는 요소들

  - swtich의 interface 3개 : 각 네트웍으로 통신을하기위해서 각 네트웍마다 하나의

    ip address가 설정되어야한다. 네트웍이 3개라면 통신을 위한 interface가 3개 필요.

  - gateway : default gateway 설정

  - vlan : 각 네트웍을 vlan으로 나누어준다.

  - static route : 로드발란싱될 다른 L4 switch의 다른 네트웍으로 가기위한

                 gateway 지정

  - real server, group(metric  hash) : 실제 load balancing되는 real serve는 반대편

    L4 switch의 interface이다. slb 설정과 동일하게 group에 추가하고 metric값을

    반드시 hash로 지정한다.

  - filter : firewall 을 거쳐 firewall 안쪽 네트웍으로 들어가려는 트래픽을 강제로 그

    네트웍쪽으로 뿌려주도록 만들어준다.

 

 

· switch 의 interface 설정하기

  >>main # cfg/ip

  >>ip # if 1/addr 192.168.1.1/mask 255.255.255.0/broad 192.168.1.255/vl 1/en

  >>ip interface 1 # ..

  >>ip # if 2/addr 192.168.2.1/mask 255.255.255.0/broad 192.168.2.255/vl 2/en

  >>ip interface 2 # ..

  >>ip # if 3/addr 192.168.3.1/mask 255.255.255.0/broad 192.168.3.255/vl 3/en

  >>ip interface 3 # ..

· gateway 설정하기

>> ip # gw 1/addr 192.168.1.254/en

  >> Default gateway 1 # apply

  >> Default gateway 1 # /

· Vlan 설정하기

  >> main # cfg/vlan 2

  >> vlan 2 # add 5/add 6/en

  >> vlan 2 # ..

  >> configuration # vlan 3

  >> vlan 3 # add 7/add 8/en

  >> vlan 3 # /

· Static route 지정하기

  >> main # cfg/ip

  >> IP # route

  >> <st1:Street>

Ip Static Route</st1:Street> # add

Enter destination IP address:   192.168.4.0

Enter destination subnet mask:  255.255.255.0

Enter gateway IP address:       192.168.2.254

Enter interface number: (1-256) 2

  * 약식 : /c/ip/route/add 192.168.4.0  255.255.255.0  192.168.2.254  2

  각각 필요한 라우팅 정보를 다 넣어준다. (필요한 내부 네트웍 등등)

  >> <st1:Street>

Ip Static Route</st1:Street> # /

· SLB 설정하기

  >> Main # cfg/slb

· Real server 설정하기

  ; real server는 firewall 이 아니라 firewall 반대편에 있는 switch 의 다른 두개의

interface이다.

  >> Layer 4 # re 1

  >> Real Server 1 # rip 192.168.4.1/en

  >> Real Server 1 # ..

  >> Layer 4 # re 2

  >> Real Server 2 # rip 192.168.5.1/en

  >> Real sever 2 # ..

· 그룹 설정하기

  >> Layer 4 # gr 1

  >> Real Server Group 1 # add  1/add  2/metric hash/heal icmp

  >> Real Server Group 1 # ..

     metric 값은 반드시 hash 로 설정해준다. 사용자의 트래픽이 특정 firewall을 거쳐

     내부 네트웍에 있는 특정 서버에 접근했다가 다시 source로 돌아갈때 만약 처음

 

     들어올때 지나갔던 firewall을 다시 거치지 않는다면 packet은 drop될것이다.

 

     hash라는 알고리즘은 source IP와 destination IP를 연산하여 특정 라일을 타면

 

     다음에도 계속 그 라인을 탈수 있도록 해준다.

· Filter 설정하기

  >> Layer 4 # filter 100

  >> Filter 100 # dip 192.168.6.0

  >> Filter 100 # dmask 255.255.255.0

  >> Filter 100 # action  redir

>> Filter 100 # group 1

  >> Filter 100 # en

     내부 네트웍으로 가는 트래픽들을 아래쪽 switch로 강제 라우팅을 시키는 필터

  >> Filter 100 # ..

  >> Layer 4 # Filter 101

  >> Filter 101 # dip 192.168.2.0

  >> Filter 101 # dmask 255.255.255.0

  >> Filter 101 # act allow

  >> Filter 101 # en

  >> Filter 101 # apply

  >> Filter 101 # ..

  >> Layer 4 # Filter 102

  >> Filter 102 # dip 192.168.3.0

  >> Filter 102 # dmask 255.255.255.0

  >> Filter 102 # pro tcp        [101번 filter와 102번 filter는 firewall을 manage

  >> Filter 102 # act allow       할수 있도록 allow filter를 걸어준다. 만약 allow

  >> Filter 102 # en              filter가 없다면 firewall로 가려는 트래픽도 강제로

  >> Filter 102 # apply           내부 네트웍으로 보내지게 될것이다. ]

  >> Filter 102 # ..

· slb port 에 filter 추가하기

  >> Layer 4 # po 1

  >> SLB port 1 # add 100/add 101/add 102/filt en

  >> <st1:place><st1:PlaceName>SLB</st1:PlaceName> <st1:PlaceType>Port</st1:PlaceType></st1:place> 1 # ..

     filter는 사용자의 트래픽이 들어오는 포트에 설정한다.

     위에서 만든 filter를 slb menu 아래에 있는 port에 추가하여주고 반드시 그 포트에서

 

     fitler enable를 해주어야한다.

· SLB 활성화 하기

  >> Layer 4 # on

  >> Layer 4 # apply / save

    모든 slb 설정이 끝나면 slb 를 활성화 시켜 주어야 하는데 on을 하면 활성화된다.

    slb가 on 이 되고나면 진정한 layer 4 기능을 수행한다.

 

    즉 slb가 off 되어 있다면 패킷의 header 정보를 까보지 않는다. 오로지 layer3 스위치

 

    와 같은 역할 을 할 뿐이다.

 

    slb가 on되고 나면 일일이 패킷을 까보면서 사용자 트래픽이 destination이 어디인지

 

    source ip 는 무엇인지, 어떤 서비스를 원하는지 (service query)등등을 확인하여

 

    적절한 방향으로 트래픽을 보내주게 된다.

 

 

 

 

7. Information

 

· 구성 정보보기

>>main # in

>>Information # li    [각 양식의 맨 위 양식의 맨 아래 포트에 설정된 링크정보를 볼수

있다. ]

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

Port   Speed    Duplex         Flow Ctrl         Link

---   -----   --------  --TX-----RX--   ------

  1      100     half           no     no        up

  2     1000     full          yes    yes        down

  3     1000     full          yes    yes        down

  4     1000     full          yes    yes        down

  5     1000     full          yes    yes        down

  6     1000     full          yes    yes        down

  7     1000     full          yes    yes        down

  8     1000     full          yes    yes        down

  9     1000     full          yes    yes        down

>>Information # ip   [switch에 설정된 interface 및  gateway 정보를 볼수 있다.]

>>Information # slb  [구성된 SLB 정보를 볼수 있다. 만약 slb설정후 on을 하지 않았다면

                      정보는 보이지 않게 된다. ]

 

>> Server Load Balancing Information# sess/du [어떤 사용자가 어떤 서버에 접속했는지

                                                알수 있다 ]

 

>> Server Load Balancing Information# du [전반적인 slb 구성 정보 보기]

 

 

8. Statistics

 

· 통계치 보기

>> main # st

>> Statistics # port 1     [port 1에 대한 통계치를 보기위해 1번을 선택]

>> Port Statistics # br    [layer 2 의 정보보기]

>> Port Statistics # et    [Ethernet 정보보기]

>> Port Statistics # if     [interface 정보보기]

>> Port Statistics # cpu   [각 포트마다 있는 cpu 부하율 확인하기]

>> main # st

>> Statistics # slb         [slb관련 통계정보를 본다]

>> Server Load Balancing Statistics# gr 1  [그룹에 속해 있는 각 서버들에 대하여 current session , highest session, total session, octet 정보를 볼수 있다. ]

>> Server Load Balancing Statistics# port 1   [1번 포트에 물려 있는 서버들에 대한

   위와 동일한 통계정보를 볼수 있음]

>> Server Load Balancing Statistics# vi 1  [vip 1번에 속해 있는 그룹의 서버들에대한

   위와 동일한 통계정보를 볼수 있음]

 

>> Server Load Balancing Statistics#  real 1  [지정한 서버에 대하여 위와 동일한 통계정보를 볼 수 있음]

 

 

9. Maint

 

· arp table 보기

>>main # ma

>>maintenance # arp

>>address resolution protocol # dump

>> Address Resolution Protocol# du

    IP address    Flags    MAC address    VLAN Port Referenced ports

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

  61.33.243.71     P    00:60:cf:43:e8:10    1       1-3 5-9

  61.33.243.128         00:d0:59:2d:a9:b7    1   1   empty

  61.33.243.254         00:d0:58:ad:4a:c3    1   1   empty

>> Address Resolution Protocol# clear    [arp  지우기]

 

 

 

 

 

 

Loadbalancing Metric

 

least connection 

현재 세션이 가장 적은쪽으로 세션을 보내줍니다.

현재 세션수를 고려하기 때문에 약간의 메모리자원을 소비합니다.

default metric 이기때문에 제일 많이 사용되는 메트릭이고 일반적인 서버 로드발란싱의

 

경우에는 대부분 이 옵션을 많이 씁니다.

 

roundrobin

roundrobin은 리얼서버의 마지막 번호를 가진 서버로부터 출발하여

 

순차적으로 세션을 맺도록 해주는 로드밸런싱 기법입니다.

예를 들어 5대의 서버가 있다면.. 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 4, 3, 2, 1........

위와같은 순서로 로드벨런싱 하게 됩니다.

특별한 서비스가 있지 않은 일반적인 웹사이트를 운영하는 곳에서 씁니다.

leastconn 과 roundrobin은 관리자들의 요구에 따라 선택하며

 

가장 단순한 로드발란싱이므로 알테온에 거의 부하를 주지 않습니다.

 

 

minmiss

 

hash 와 비슷한 로드벨런싱 기법입니다. 국내에서는 거의 사용되지 않는걸로 알고 있습니다.

 

hash와 minmiss는 알테온 자체에서 정해진 hashing algorithm을

 

적용시킵니다. 여기서 두가지 기법의 차이는 로드벨런싱이 이루어지다가 특정서버가

down됐을경우 이 서버와 세션을 맺고 있던 사용자들을 어떻게 처리할것인가

 

하는 부분에 약간 차이가 있습니다.

 

hash

hash는 알테온 자체에서 제공하는 hashing algorithm을 사용하여 로드발란싱 하는 기법입니다. 정확한 메커니즘은 공개되지 않아 잘 모릅니다만 원리는 이렇습니다.

 

source ip와 destination ip를 조합을 합니다. 예를 들어 192.168.1.1 이라는 source ip와

 

10.10.10.254 라는 destination ip가 있다고 할경우..

 

그리고 source 가 사용자 이고 destination 이 vip 라고 하겠습니다.

그러면 이 두 아이피를 조합하여 어떤 수를 만들어 냅니다.

그래서 만약 끝자리 아이피.. 1 과 254를 조합하여 255라는 수를 만들어 냅니다.

이 수를 설정된 리얼 서버의 수로 나눔을 합니다.

만약 서버가 3대라면 나머지는 0 이 되겠지요. 그러면 리얼서버 1번으로 접속하게

됩니다.

만약 조합이 124이다.. 그러면 3으로 나눈 나머지는 1이 되죠.. 그러면

2번 리얼서버로 가라.. 라는 식입니다.

 

그러면 다음에 접속을 하더라도 vip와 client ip가 동일 하므로 나머지 값은

항상 동일 하게 되죠.. 그러면 항상 같은 서버로 접속하게 되는 것입니다.

이런 경우는 보통 세션을 유지해야할 필요가 있는 사이트(인증, 보안 등등)에서

주로 사용합니다.

 

bandwidth based loadbalancing

bandwidth 로드발란싱은 말 그대로 알테온과 연결된 서버들과의

 

대역폭을 고려하여 로드발란싱 세션을 어떻게 보낼것인가를 결정하게 되는

그런 방식입니다.

로드발란싱 기법은 작년 10월즈음에 나왔습니다.

예를 들어 서버가 3대정도 있고 한대는 기가로 다른 두대는 10/100으로

물려있다고 할경우 기가 쪽으로 더욱 많은 트레픽을 보내게 됩니다.

아직 이 옵션을 사용하는 사이트는 많이 없습니다.

 response time

response time 은 알테온이 서버와 통신을 하면서 그 응답시간에 대한

 

학습을 통하여 응답시간이 빠른 쪽으로 많은 세션을 보내주고 응답이 느린쪽으로

세션을 적게 보내는 방식 입니다.

국내 유명 부동산 사이트에서 사용하고 있는 방식입니다.

이 사이트의 경우는 처음 leastconnection 방식을 사용하였습니다. 그런데 어느 순간 서버들이 행걸리는 경우가 발생하였다고 하는데 이유를 보니까 어떤 현상에 의해서 서버의 부하가 조금 올라갔고 그러면서 사용자 쿼리에 대한응답을 조금 느리게 해주게 되었고

그러다 보니까 세션이 줄어들게 되고 세션이 줄어들면 알테온은 또 세션을 보내게 됩니다. 그러면 또 서버의 부하가 늘어나고 이렇게 악순환이 되다보니 서버에 행이 걸린경우 였습니다. 그래서 응답시간으로 로드 발란싱 해 보니 응답이 바로 오지 않는곳으로는 트래픽을

보내지 않아서 서버가 안정화되었던 겁니다.

 

[TIP]

- L4 초기화 명령어 : forgetMe!

- 취소명령어 : revert

- IP설정시에는 mask값부터 입력 그러면 브로드캐스트값이 자동 입력됨

- SLB  health check는 tcp

   FLB  health check는 icmp

- 서비스포트만큼 그룹을 생성해야 함. 동일그룹에 여러서비스포트 생성하지 말것

 

 

1. Load Balancing

L4/L7 스위치가 Load Balancing 목적으로 지원하며 동일한 목적을 하는 서버에 부하를 일정하게 분산하기 위하여 사용합니다.
L4는 Transport 계층까지 확인할 수 있으며 L7는 Application 계층까지 확인 가능합니다.
Client는 실제 Load Balancer IP로 접속하게 되어 통신하며 뒷단의 Server IP를 알 수 없습니다. (Reverse Proxy 역할)
LB는 뒷단의 Server Health Check를 하여 문제가 있다면 Load Balancing 대상에서 제외시킵니다.
(하드웨어/소프트웨어 방식이 있으며 본 게시글은 하드웨어 기준이며 장비는 F5를 가장 많이 사용하고 그 다음으로는 Alteon?!)

2. L4/L7 Load Balancer

L4 Load Balancer : Transport 계층 ~ Network 계층 정보를 가지고 Load Balancing
- Client <-> LB, LB <-> Server 별도로 Session을 맺음

인라인, one arm 구성의 경우 위와 같이 세션을 맺고 DSR 구성의 경우 Server -&amp;gt; Client로 응답

L7 Load Balancer : Application 계층 ~ Network 계층의 정보를 가지고 Load Balancing
- HTTP 헤더(URL, 쿠키, 컨텐츠, 브라우저 정보 등)까지 볼 수 있기 때문에 클라이언트 더 많은 정보를 확인 가능하여 섬세한 Load Balancing 가능

- 서버들의 상태를 더 섬세하게 체크할 수 있기 때문에 문제가 있는 서버가 있을 경우 빠르게 제외할 수 있음
- Client <-> LB, LB <-> Server(Client에서 요청이 있을 경우 세션 맺기 시작) 별도로 Session을 맺음
- 그 외 캐싱, 비정상적인 세션(DDoS 공격 등)을 체크하고 사전에 필터링, Qos 가능
(물론 🤔 L7이 좋은 점만 있지만 가격이 비싸기 때문에 목적에 따라 L4 or L7 선택)

3. 구성

Inline
- 단순한 구성으로 모든 Server와 통신하기 위해서 LB를 거쳐야해서 LB 장애 시 통신이 불가능합니다.
- LB가 필요없는 불필요한 스위칭을 해줘야 합니다.
- LB가 Src NAT를 해주기 때문에 Server는 Client IP를 알 수 없어 LB가 별도 DB에 Client IP를 저장 or 헤더에 Client IP가 기록되도록 개발&운영해야합니다.


One Arm
- L4에 문제가 생겨도 BB <-> Server는 통신 가능합니다.
- LB 서비스를 사용하지 않는 Server는 LB를 거치지않고 Server와 통신할 수 있습니다.
- LB가 Src NAT를 해주기 때문에 Server는 Client IP를 알 수 없어 LB가 별도 DB에 Client IP를 저장 or 헤더에 Client IP가 기록되도록 개발&운영해야합니다.
- Server에 따라 트래픽 플로우가 달라 트러블슈팅시 고려해야합니다.


DSR(Direct Server Return)
- 트래픽이 들어올 때는 LB를 거치지만 나갈 때는 LB를 거치지않고 통신합니다.
- LB는 Src/Dst NAT 없이 Server로 트래픽을 전달하며 Server는 처리(Loopback IP와 LB IP가 동일하기 때문에 Server가 처리 가능) 후 LB를 거치지않고 Client로 트래픽을 보낼 수 있습니다.
- Server에는 Loopback IP에 LB IP를 넣고 GARP와 ARP Response를 비활성화하여 LB가 동일한 IP가 있음을 알지 못하게 합니다.
- LB는 SYN 받은 후 SYN+ACK 받은 기록 없이 ACK를 받게 되는데 LB 쪽에서 SYN+ACK 없이 세션이 맺어질 수 있도록 설정이 필요합니다.
- LB가 Src NAT를 해주지 않기 때문에 Server는 Client IP를 직접 알 수 있습니다.

4. Load Balancing 알고리즘

라운드 로빈(Default, Round Robin)
- 요청을 순서대로 각 서버에 균등하게 분배하는 방식
- 서버 커넥션 수나 응답시간에 상관없이 현재 서버들에 돌아가며 트래픽을 분배
- 가장 빠름

IP 해시(IP Hash)
- 클라이언트의 IP 주소를 특정 서버로 매핑하여 분배하는 방식
- 사용자의 IP(+ Port 등 원하는대로 해싱 대상을 지정할 수 있음)를 해싱해 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장

최소 접속(Least Connection)
- 서버에 연결되어 있는 Connection 개수만 갖고 단순 비교하여 가장 적은곳에 분배하는 방식
- 신규 서버가 들어올 경우 가장 균등하게 분배할 수 있음

그 외 가중치 최소 접속(Weighted Least Connections), 응답 시간(Fastest Response Time) 등

5. Health Check

ICMP
- Netwrok 계층에서 확인하며 IP를 통해 상태 체크할 수 있습니다.


TCP
- Transport 계층에서 확인하며 세션을 통해 상태 체크할 수 있습니다.
- LB는 Interval에 따라 Health Check를 계속 하기 때문에 Server가 해당 세션을 가지고 있지 않도록 LB가 RST로 세션을 종료해줘야 합니다.


HTTP
- Application 계층에서 확인하며 웹 서비스를 통해 상태 체크할 수 있습니다.
- LB는 Interval에 따라 Health Check를 계속 하기 때문에 Server가 해당 세션을 가지고 있지 않도록 LB가 RST로 세션을 종료해줘야 합니다.

6. SSL Offload

- SSL은 Transport 계층 Security로 LB가 SSL 인증서를 가지고 TLS Handshaking을 대신해줄 수 있습니다.
- Client <-> LB는 HTTPS(Default 443 Port), LB <-> Server는 HTTP(Default 80 Port) 통신을 하기 때문에 LB는 Port NAT를 해줘야합니다.
- 하지만? 이렇게 외부에서 LB 통해 Client가 접속하는 Server는 DMZ이기 때문에 LB <-> Server가 HTTP 통신을 하는 건 보안 목적으로 허용하지 않을 수 있습니다. 🤔


참고(도움이 매우 많이 되었습니다) :
https://aws-hyoh.tistory.com/entry/L4-Switch-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0?category=767420

<원본 문서>

https://skynarciss.tistory.com/70

https://ciscoking.tistory.com/29

 

https://namsancha.tistory.com/21

https://eunhyee.tistory.com/229

320x100
반응형