상태 확인 문제해결

IP 주소 범위를 차단하여 상태 확인 문제해결

일부 상황에서는 의도적으로 상태 확인에 실패하는 것이 좋습니다. 문제 해결 활동의 일부로 특정 VM이 상태 확인에 실패하도록 만들거나 종료 절차의 일부로 상태 확인에 실패하도록 만들 수 있습니다.

상태 확인 IP 범위에 대한 액세스를 일시적으로 차단하여 상태 확인 또는 이전 상태 확인을 강제로 실패시킬 수 있습니다. 이 예시에서는 Linux VM에서 실행되는 iptables 방화벽 소프트웨어를 사용하여 상태 확인에 실패하는 방법을 보여줍니다.

또한 새 상태 확인 및 기존 상태 확인 프로브를 차단하면 다른 새로운 수신 연결도 차단할 수 있습니다. 상태 확인이 서비스와 동일한 포트를 사용하고 연결이 동일한 상태 확인 IP 범위에서 제공되는 경우가 이에 해당합니다.

VM이 상태 확인 및 기존 상태 확인 프로브를 실패하게 하려면 VM에 연결하고 다음 예시와 같이 [HEALTH_CHECK_PORT]를 적절한 TCP 포트 번호로 바꾼 iptables 명령어를 실행합니다. VM이 종료될 때 의도적으로 프로브가 실패하도록 하려면 종료 스크립트에 다음과 같은 iptables 명령어를 추가한 후 상태 확인 간격과 비정상 임곗값에 따라 적절한 지연을 추가하면 됩니다.

$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 35.191.0.0/16 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 130.211.0.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 209.85.152.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 209.85.204.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset

iptables 규칙을 삭제하려면 다음 명령어를 실행합니다. 여기서 [HEALTH_CHECK_PORT]는 상태 확인 시 사용하는 TCP 포트로 바꿉니다.

$ sudo iptables -D INPUT -m state --state NEW \
-s 35.191.0.0/16 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 130.211.0.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 209.85.152.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 209.85.204.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset