참고한 것들
Split-brain Scenario
- VRRP 와 같은 HA 구성에서, Active 와 Standby 간 통신이 원활하지 못해 Standby 가 Active 가 사라진 것으로 판단해 Active 가 되는 상황을 말한다.
- 즉, Active 가 여럿이 되는 셈.
실습해보기
Normal (No split-brained)
- Active 노드 - VIP 가 올라와 있음
- Standby 노드 - VIP 가 없음
- Active, standby 모두
60001/tcp
를 열고 대기
- Client 에서 접근하면 Active 쪽에 연결됨
Abnormal (Split-brained)
- Split-brain scenario 를 만들기 위해 방화벽을 킨다 (Active-standby 간의 통신 막기)
- 그럼 Active 와 Standby 모두 스스로를 Active 라 생각해 VIP 가 생성된다.
60001/tcp
를 열고 대기
- 반복적으로 ARP 캐시를 지우고 TCP 커넥션을 맺어보자.
while true; do
sudo arp -d $VIRTUAL_IP # Clear ARP cache
ncat -z $VIRTUAL_IP 60001 # Use -z option to connect only (not sending data)
done
- 결과: 둘 다 연결된다.
Why?
- Split-brain scenario 에서는 Active 와 Standby 모두 스스로를 Active 라 생각하기 때문에 VIP 를 생성하고, ARP 에 응답한다.
- 따라서 ARP 를 Active, Standby 모두 랜덤하게 응답하고
- 결과적으로 Active 와 Standby 모두에게 TCP 가 연결된다.