본문 바로가기
infra/etc

[L4] 알테온 L4 이용하여 로드밸런싱 하기

by hjhello423 2019. 12. 16.

이전에 L4 장비를 이용해서 로드밸런싱 작업을 하고 고가용성을 향상했던 경험을 떠올려보겠다.

L4 장비는 alteon 장비를 사용했는데 다른 회사에서는 sisco장비를 많이 사용하는 걸로 보인다.

 

alteon장비를 사용했었기 때문에 이를 이용해서 설정했던 부분에 대해 간략하게 기억을 떠올려 보겠다.

현재 기준으로 정확한 옵션명이 가물가물 하기도 하고 회사 보안사항이기 때문에 옵션 설정을 블로그에 그대로 옮길 수도 없어서 서술형으로 어떤 부분을 확인해야 하는지를 정리해 보겠다.

 

일단 전체적인 흐름은 아래와 같다.

1. domain에 할당할 IP를 VIP(Virtual IP)로 지정한다. (10.0.0.10)

2. 웹서버 2대에 RIP(Real IP)를 지정한다. (10.0.0.11, 10.0.0.12)

3. RIP를 지정한 2개의 서버를 그룹으로 묶고 로드밸런싱 metric을 지정한다. (group 10번)

(hash, 라운드 로빈, least connection, weighted)

4. VIP로 들어오는 패킷 중 443 포트에 대한 접근을 group10번으로 보낸다.

이렇게 설정하게 되면 10.0.0.10의 443 포트로 접근하는 패킷을 로드밸런싱하게 된다.

 

알테온에서 설정했던 정보를 하나씩 짚어보겠다.

VIP를 10.0.0.10

VIP에 묶인 2개의 로드밸런싱 대상 서버의 IP를 10.0.0.11, 10.0.0.12로 작성해 보겠다.

 


 

NTP(Network Time Protocol) 서버 사용 유무와 ntp의 ip를 지정한다.

203.254.163.74는 time.kriss.re.kr의 IP이다

/c/sys/ntp
        on
        prisrv 203.254.163.74
        
        

 

 

L4 장비에 lan선을 연결하는 포트가 여러 개 있었는데

이 port에는 각각의 번호가 있었고 이에 대해서 enable 여부를 설정해 주었다.

port의 사용 여부를 disable로 지정하면 해당 port에 랜선을 연결해도 동작하지 않는다.

enable 설정은 client와 server각각 설정해야 하며 각각은 input과 output의 동작 여부를 뜻한다.

10번 포트의 동작 여부를 설정한다.

/c/slb/port "10"
        client ena
        server ena

/c/slb/port "20"
        client ena
        server ena
        proxy ena

 

 

hprompt 라는 값을 enable로 설정해줬는데 이게 뭐였는지 기억이 안 난다...

/c/sys
        hprompt ena

 

 

access 설정에서 각 서비스의 사용 여부를 설정한다.

http, https, sshd 등을 enable로 설정하였다.

/c/sys/access
        http ena
/c/sys/access/sshd/ena
/c/sys/access/sshd/on

 

 

syslog를 전달할 host의 IP를 지정한다.

뒤의 숫자의 의미는 무엇일까? syslog의 level을 지정하는 듯하다.

/c/sys/syslog
        hst1 10.0.0.x 7 7
        hst2 10.0.0.x 7 7
        hst3 10.0.0.x 7 7

 

 

이건 무엇이었을까?...

/c/l3/if 1
        ena
        ipver v4
        addr 10.0.0.10
        mask 255.255.255.224
        broad 10.0.10.1

 

 

gateway를 지정한다.

/c/l3/gw 1
        ena
        ipver v4
        addr 10.0.0.1

 

 

vrrp의 사용 여부를 설정한다.

/c/l3/vrrp/on

 

 

vrrp의 번호를 지정하고 사용 여부와 id, ip값 등을 지정한다.

이름값은 name16이고 vrrp의 id값을 16으로 지정했다.

/c/l3/vrrp/vr name16
        ena
        ipver v4
        vrid 16
        if 1
        prio 101
        addr 10.0.0.10
        share dis

 

 

server load balancing 사용으로 설정한다.

/c/slb
        on

 

 

/c/slb/adv
        direct ena

 

 

로드밸런싱 대상이 되는 서버의 Real IP를 지정한다.

/c/slb/real 11
        ena
        ipver v4
        rip 10.0.0.11
        name "test active"
/c/slb/real 12
        ena
        ipver v4
        rip 10.0.0.12
        name "test standby"

 

 

11번 Real IP로 지정을 backup(standby)로 지정하고

10번 Real IP를 Active로 지정한다.

로드밸런싱 알고리즘은 hash를 사용한다.

/c/slb/group 10
        ipver v4
        metric hash
        backup r11
        add 100
        name "test"

 

 

100번 VIP(Virtual IP)를 지정한다.

/c/slb/virt 100
        ena
        ipver v4
        vip 10.0.0.10
        vname "test"

 

 

VIP 100번의 443 포트 접근 시 로드밸런싱할 grop번호를 지정한다.

VIP 200번에는 80 포트로 그룹 xx번을 지정한다.

/c/slb/virt 100/service 443 https
        group 10
        rport 443
/c/slb/virt 200/service 80 http
        group xx
        rport 80

 

 

Active와 Standby의 상태 체크는 어떻게 할까?

- 주기적으로 tcp 패킷을 보내서 상태를 체크한다.

 

Active가 down 되었다고 판단하고 fail over 하는 조건의 설정은 어떻게 할까?

- 정확한 설정값의 위치는 기억나지 않지만 tcp로 체크하도록 하였고, intern=2(2초마다), retry=3(3번 체크)로 지정하였다.

 

그밖에 여러 블로그를 참조하다가 DAM(Direct Access Mode)을 지정했던 것도 기억이 났다.

DAM을 enable로 지정하게 되면 RIP를 이용해 직접 서비스 서버로 접근이 가능해진다.

 

 

 

 

 


참고

참고 : https://m.blog.naver.com/PostView.nhn?blogId=l77jk&logNo=220706248869&proxyReferer=https%3A%2F%2Fwww.google.com%2F

metric 알고리즘 : https://post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903

 

반응형

댓글