연결은 한 시간 동안 작동한 뒤 죽고, 클라이언트는 disconnected보다 유용한 것을 아무것도 보고하지 않는다. 바로 그 주기가 단서인데, 갱신 교환에는 최초 핸드셰이크와 다른 점이 있다. 타이머는 언제 그것을 만나는지만 결정한다. 마지막 레이블 대신 그 교환의 메시지를 저장하라.

레이블이 아니라 단계를 읽어라

IKEv2에서 IKE 연결과 CHILD 연결은 별도의 일정으로 갱신된다. 첫 협상에서 받아들여진 제안이 두 번째에도 자동으로 받아들여지는 것은 아니다. 한쪽이 완료되는 동안 다른 쪽이 거부되어, 절반만 존재하는 터널이 만들어진다. 클라이언트 로그 줄이 아니라 그 교환을 소유한 도구로 캡처하라:

swanctl --list-sas
swanctl --log --level 2
ip xfrm state list

OpenVPN의 경우 해당 사건은 버전과 배포 설정이 지배하는 재협상이다. 그 인증 동작에는 고유한 실패 모드가 있다. 중요한 메시지는 실패한 단계를 지목하며, 티켓에 다시 쓰는 대신 그대로 기록해야 한다.

타임스탬프도 적어 두라. 마지막 성공한 협상 이후 고정 간격으로 끊기는 것은 사용 중 무작위로 오는 끊김과 아주 다른 발견이며, 그 간격이 살아남는 유일한 증거인 경우가 많다.

실패하는 제안을 비교하라

거부된 제안은 응답자 쪽에서 분명한 메시지를 낸다. 흔한 원인은 양 끝의 알고리즘, 키 길이, 그룹 또는 수명 차이다. 최초 CHILD 협상이 성공했던 것은 상대가 시작했기 때문일 수 있고, 그것은 상대의 제안 목록을 사용했다는 뜻이다. 무엇이든 바꾸기 전에 양 끝을 보라.

수명 불일치는 특별한 주의를 받을 만한데, 한쪽에서 넉넉해 보인 값이 다른 쪽이 완료할 수 없는 갱신을 시작하게 만들 수 있기 때문이다. 키 재생성 동작 문서는 연결 갱신이 어떻게 촉발되는지, 양 끝이 시간 기대에서 어떻게 달라질 수 있는지 설명한다. 구성 파일이 암시하는 것이 아니라 각 끝이 지원한다고 주장하는 것을 비교하라.

오래된 프로필이나 공급자 템플릿은 현재 릴리스가 더 이상 제공하지 않는 제안을 고정할 수 있다. 불일치는 새로운 협상이 강제될 때만 드러난다.

자격 증명 문제와 도달할 수 없는 피어를 분리하라

인증에서 실패하는 갱신은 클라이언트에서는 비슷해 보이고 서버에서는 완전히 다르게 보인다. 재협상에서 자격 증명을 다시 확인하면, 만료된 인증서, 철회된 계정 또는 변경된 비밀번호가 이전의 모든 연결이 성공했음에도 정확히 갱신 간격에 끊김을 만든다. 도달할 수 없는 피어는 세 번째 가능성이며 아무런 거부도 만들지 않고 패킷은 나가고 아무것도 응답하지 않는다. 그 경우는 보통 타이머가 아니라 네트워크 변화를 따르므로, 실패가 로밍, 유휴 기간 또는 경로 변경 뒤에 오는지 확인하라.

세 가지를 원격 끝이 기록한 것으로 구분하라. 이유가 있는 거부, 인증 실패, 침묵은 서로 다른 세 가지 교정이다. 클라이언트를 재시작하면 그것들이 하나의 쓸모없는 관찰로 뭉개진다.

네트워크를 탓하기 전에 인증서 날짜와 계정 상태를 확인하라. 둘 다 확인하기 싸고 둘 다 클라이언트 자체 메시지에는 보이지 않는다.

갱신을 한 번 강제하고 결과를 읽어라

다음을 한 시간 기다리는 대신 운영자가 지원하는 방법으로 갱신을 한 번 강제하라. 그러는 동안 필요한 실패 정책은 그대로 두라. 검증을 끄거나 수명을 하루로 늘리면 아무것도 고치지 않은 채 로그에서 증상만 사라진다. 다음 사람을 위해 더 긴 장애를 남기기도 한다.

수정이 자리 잡으면 갱신된 터널을 확인하고 애플리케이션에서 새 요청을 하라. 연결이 바뀔 때 살아 있던 애플리케이션 세션은 터널이 다시 건강해져도 자체 복구가 필요할 수 있다. 사용자들은 그것을 VPN이 여전히 고장 났다고 보고할 것이다.

릴리스 버전, 협상된 타이머, 실패한 단계를 기록하라. 그러면 다음 재발을 기억에서 다시 설명하는 대신 이것과 비교할 수 있다.

관련 글