Como solucionar problemas de verificações de integridade bloqueando intervalos de endereços IP
Em determinadas circunstâncias, é importante que haja falha proposital nas verificações de integridade. Talvez seja necessário forçar uma determinada VM a falhar nas verificações de integridade como parte de uma atividade de solução de problemas ou fazer com que ela falhe nas verificações de integridade como parte do procedimento de encerramento.
É possível forçar a falha em verificações de integridade ou verificações de integridade legada, bloqueando temporariamente o acesso aos intervalos de IP da verificação. Neste exemplo, mostramos como fazer a verificação de integridade usando o software de firewall iptables
em execução em uma VM do Linux.
O bloqueio de novas sondagens de verificação de integridade e de verificação de integridade legada também pode bloquear outras novas conexões de entrada. Isso acontecerá se a verificação de integridade usar a mesma porta do serviço e se as conexões forem provenientes dos mesmos intervalos de IP da verificação de integridade.
Para fazer com que uma VM falhe nas sondagens da verificação de integridade e da verificação de integridade legada, conecte-se a elas e execute um comando iptables
como no seguinte exemplo, substituindo [HEALTH_CHECK_PORT]
pelo número de porta TCP apropriada. Se precisar que uma VM falhe propositalmente nos testes enquanto está sendo encerrada, adicione comandos iptables
como esses a um script de encerramento seguido por um atraso apropriado com base no intervalo de verificação e no limite não íntegro da verificação de integridade.
$ 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
Para remover as regras iptables
, execute os seguintes comandos, substituindo [HEALTH_CHECK_PORT]
pela porta TCP da verificação de integridade.
$ 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