TCP dump VRRP

홍성현·2023년 4월 10일
0

실습목표

3-Tier 구조에서 keepalived vrrp가 정상적으로 작동하는지 확인한다.

keepalived란?

keepalived는 C로 짜인 Routing software이다.
프로젝트의 주요한 목표는 Linux system과 기반 infrasturcture의 loadbalancing과 고가용성을 위한 simple하고 robust한 기능을 제공하는 것이다. Keepalived는 server의 health에따라 loadbalancing하는 서버들을 check하여 동적으로 유지하고 관리한다. 고가용성은 VRRP 프로토콜에의하여 이루어진다.

https://www.keepalived.org

Vrrp란?

VRRP는 Virtual Redundancy Routing Protocol라는 이름을 가진 protocol이다. 가상 라우터 다중화 프로토콜이라고 불리기도 한다. 두 대 이상의 게이트웨이를 운용하여 한 게이트웨이가 장애가 발생했을 때 자동으로 남아있는 여분의 게이트웨이가 역할을 하게되는 기능이며 프로토콜이다.Redundance는 여분이라는 뜻이다. 이름의 뜻대로 남아있는 여분의 게이트웨이를 사용한다.

https://ja-gamma.tistory.com/entry/VRRP게이트웨이이중화

확인 실습

keepalived.conf 설정

실습을 위하여 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
  • i: tcpdump로 살펴볼 네트워크인터페이스
  • n: 모든 주소들을 번역하지 않음(ip그대로 볼 수 있음)
  • host:host 뒤 ip로 접속요청한 패킷
  • and: and 조건적용
  • vrrp: vrrp protocol의 패킷
  1. Master(demo14)가 살아있을 때


    demo14에만 로그가 뜨는 것을 확인할 수 있다. demo 14의 priority값인 200이 뜨는 것을 확인할 수 있다.
  1. Master(demo14)가 죽고 BACKUP(demo21)만 살아있을 때


    BACKUP(demo21)에서 로그가 올라오는 것을 확인할 수 있다. Master(demo14)에서 로그가 올라오지 않는 것을 볼 수 있다.

Reference

profile
System Engineer 기록일지

0개의 댓글