네트워크 엔지니어 & 개발자 로엘이

지난 포스팅에서 4회에 걸쳐 L4/L7 스위치의 다양한 NAT방식(DANT, FNAT, DSR, L3 DSR)에 대해 알아보았습니다. 이번 포스팅에선 L4/L7 스위치가 서버의 상태를 점검하기 위해 사용하는 다양한 헬스체크에 대해 알아보겠습니다.

로드밸런싱을 수행하는 L4/L7 스위치에 대한 전반적인 내용을 순차적으로 소개하고 있다.

소개될 포스트팅은 다양한 L4/L7 스위치 중 PumpkinNetworks의 장비를 기준으로 기술하기에

F5 Networks, Cirtix, A10 Networks, Alteon(Radware), Brocade, Piolink

장비와 다소 개념이 다르거나 용어가 다를 수 있다.

Health Check

헬스체크는 로드밸런싱 서비스를 제공하는 다수의 서버의 상태를 점검하기 위해 사용되는 기술로, 서버의 상태를 주기적으로 체크하여 서버의 상태가 통신이 불가능할 경우 서버를 서비스에서 제외하여 서비스를 원활하게 제공하기 위해 이용되는 방법이다. 서버의 상태를 주기적으로 점검하는 방법으로는 Link, ARP, ICMP, TCP, Script 방식이 있으며, 헬스체크에서는 서버로 일정 시간 간격으로 서비스에 대하여 Open과 Close를 반복적으로 진행하여 서비스 제공 가능 유무를 점검한다.

헬스체크를 위해 사용되는 패킷의 종류, 패킷을 전송하는 주기와 서버의 응답을 기다리는 시간, 응답이 수신되지 않았을 때 다시 패킷을 보내주는 횟수는 사용자의 설정에 따라 동작한다. 설정할 때 고려되어할 사항은 전송 주기와 재전송 횟수다. 전송 주기는 장애를 판단하기 위해 패킷을 전송하는 주기로 전송 주기가 짧을수록 서버의 장애 여부를 정확하게 파악할 수 있다. 하지만 헬스체크 패킷이 네트워크의 부하가 될 수 있으므로 네트워크 상태에 따라 적절한 값이 설정되어야 한다. 재전송 횟수는 장애를 판단하기 위한 헬스체크 패킷 재전송 횟수로 응답을 보내지 못한 서버의 상태를 보다 확실하게 확인하기 위해 추가로 헬스체크를 시도하는 횟수다.

Link Health Check

Link 헬스체크는 인터페이스의 상태를 이용하여 서버의 상태를 점검하는 1 계층 헬스체크 기능이다. 서버와 연결된 인터페이스의 UP/DOWN 상태에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.

ARP Health Check

ARP 헬스체크는 ARP를 이용하여 서버의 상태를 검사하는 2 계층 헬스체크 기능이며 ARP 테이블과 ARP 테이블 갱신을 통하여 점검한다. 이 기능은 L4/L7 스위치의 ARP 테이블에 서버의 MAC Address의 존재 여부와 ARP를 이용하여 ARP Request 메시지 전송과 ARP Reply 메시지 수신 여부에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.

ICMP Health Check

ICMP 헬스체크는 ICMP를 이용하여 서버의 상태를 검사하는 3 계층 헬스체크 기능으로, ICMP의 특성을 이용하여 서버의 IP Address 활성화를 확인하여 점검한다. 이 기능은 서버의 IP Address에 ICMP를 이용하여 ICMP Echo Request 메시지를 전송한 후 ICMP Echo Reply 메시지 수신 여부에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.

TCP Health Check

TCP 헬스체크는 TCP에서 제공되는 서비스 포트를 이용하여 서버의 상태를 검사하는 4 계층 헬스체크 기능이며, 이미 지정된 포트를 사용하는 FTP, HTTP, Telnet 등과 개발자가 가용할 수 있는 영역에 있는 포트 번호를 이용하여 서비스 제공 가능 유무를 점검한다. 이 기능은 서비스를 위한 포트의 상태를 TCP의 초기화에서 사용되는 3 way handshake를 이용하여 서버의 서비스 포트로 TCP_SYN을 전송하고 그에 따른 SYN_ACK로 응답 유무에 따라서 서비스 서버의 서비스 가능 유무를 판단한다. 이후 서버의 소켓 낭비를 막기 위해 SYN_ACK 응답 수신 시 바로 RST 패킷을 전송하여 세션을 종료하는 Half-Open 방식과 ACK 패킷을 전송하는 TCP Open 방식으로 나뉜다.

Script Health Check

스크립트 헬스체크는 Script를 이용하여 Application Demon을 점검하는 7 계층 헬스체크 기능이며, Script로 작성된 순서에 의하여 서버로 메시지를 전송하고 그에 따른 응답 메시지 유무에 따라서 서버의 서비스 가능 유무를 판단한다. 기본적으로는 서버와 TCP 세션을 맺고 Request 메시지 전송을 통해 응답 코드 확인한다.

결론

L4/L7 스위치에서는 Link Health Check, ARP Health Check, ICMP Health Check, TCP Health Check, Script Health Check 다양한 헬스체크를 지원한다. 

 

이번 포스팅에서는 L4/L7 스위치에서 제공하는 헬스체크가 무었이며 어떠한 방식으로 동작하는지 알아보았습니다. 다음 포스팅에서는 해당 패킷이 서비스 대상인지 확인하기 위한 필터(Filter)대하여 알아보겠습니다.

 

- 끝 -

728x90
반응형
250x250

공유하기

facebook twitter kakaoTalk kakaostory naver band