상태 확인 문제해결

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

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

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

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

VM에서 상태 확인 및 기존 상태 확인 프로브가 실패하도록 하려면 다음 예시와 같이 iptables 명령어를 실행합니다. 이 때 [HEALTH_CHECK_PORT]를 적절한 TCP 포트 번호로 바꿉니다. 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
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...