3-Tier 구조에서 keepalived vrrp가 정상적으로 작동하는지 확인한다.
keepalived는 C로 짜인 Routing software이다.
프로젝트의 주요한 목표는 Linux system과 기반 infrasturcture의 loadbalancing과 고가용성을 위한 simple하고 robust한 기능을 제공하는 것이다. Keepalived는 server의 health에따라 loadbalancing하는 서버들을 check하여 동적으로 유지하고 관리한다. 고가용성은 VRRP 프로토콜에의하여 이루어진다.
VRRP는 Virtual Redundancy Routing Protocol라는 이름을 가진 protocol이다. 가상 라우터 다중화 프로토콜이라고 불리기도 한다. 두 대 이상의 게이트웨이를 운용하여 한 게이트웨이가 장애가 발생했을 때 자동으로 남아있는 여분의 게이트웨이가 역할을 하게되는 기능이며 프로토콜이다.Redundance는 여분이라는 뜻이다. 이름의 뜻대로 남아있는 여분의 게이트웨이를 사용한다.
실습을 위하여 Master와 Backup에 keepalived.conf를 작성한다.
! Configuration File for keepalived
global_defs {
router_id 11 # router의 id 설정
}
vrrp_script haha {
script "/usr/sbin/pidof haproxy"
interval 10 # interval로 health check을 하고 script 값이 0이 되면 state가 FAULT로 바뀜
}
vrrp_instance VI_1 {
state MASTER #사용할 instance의상태정보(MASTER와 BACKUP입력 가능함)
interface ens192 # instance가 돌아갈 networkinterface
virtual_router_id 12 # instance가 속한 VRRP router의 id Master와 Backup 같이 설정해줘야함.
priority 200 # VRRP router가 처리할 우선순위 높을수록 우선순위 높음
advert_int 1 # advertisement의 interval 초단위
authentication {
auth_type PASS # 사용할 authentication의 종류 (PASS, AH입력가능)
auth_pass 1111 # 사용할 password
}
virtual_ipaddress {
192.168.50.207 #사용할 VIP
}
track_script {
haha
}
! Configuration File for keepalived
global_defs {
router_id 1
}
vrrp_script haha {
script "usr/sbin/pidof haproxy"
interval 10
}
vrrp_instance VI_2 {
state BACKUP
interface ens192
virtual_router_id 12
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.50.207
}
track_script {
haha
}
https://www.keepalived.org/pdf/UserGuide.pdf
https://tobru.ch/keepalived-check-and-notify-scripts/
# tcpdump 명령어
tcpdump -i ens192 -n host 192.168.50.204 and vrrp
Reference