아무것도 작동하지 않는데 VPN이 연결된 것처럼 보이는 이유
‘연결됨’은 사용 가능한 경로가 아니라 프로세스, 인터페이스 또는 연결을 가리킬 수 있습니다. 새 요청을 하나 보내고 트래픽이 움직였다는 증거를 읽어 보세요.
클라이언트는 연결됨을 보고하고 인터페이스는 올라와 있으며 브라우저는 시간 초과가 됩니다. 이 세 문장 중 어느 것도 거짓이 아닙니다. 연결됨은 요청한 페이지와 아무 관계가 없는 계층을 설명합니다. 어느 계층이 보고하는지 판단하려면 새 요청 하나와 트래픽이 움직였다는 증거가 될 카운터를 한 번 보는 것으로 충분합니다. 재시작은 그 증거를 버리고 관찰하려던 조건을 다시 만들어 냅니다.
연결됨이라 불리는 세 가지 다른 것
가장 아래에서는 연결됨이 클라이언트 프로세스가 실행 중이며 상대를 향한 소켓을 쥐고 있다는 뜻일 수 있습니다. 그 위에서는 주소가 있는 인터페이스가 존재한다는 뜻일 수 있으며, 영구 장치나 복구 루틴이 그 뒤에 살아 있는 세션 없이도 만들 수 있습니다. 제어 계층에서는 연관이 협상되었다는 뜻일 수 있지만, 그 아래로 패킷 하나라도 지나갔는지는 말해 주지 않습니다. 각각은 다른 것들이 견디지 못하는 장애를 견디며, 클라이언트는 보통 주장할 수 있는 가장 강한 것을 표시합니다.
그래서 초록 아이콘과 죽은 터널은 모순이 아니라 양립합니다. 둘은 서로 다른 대상을 보고합니다. 이 고장이 클라이언트 버그로 계속 오진되는 이유가 바로 여기에 있습니다.
데몬을 건드리기 전에 정말 필요한 목적지로 무해한 요청을 하나 보내고, 작업하는 동안 필요한 직접 트래픽 차단을 그대로 두세요. 재시작은 사건의 순서를 지우고 나서 원인을 감출 만큼 가까운 조건을 다시 만들어 냅니다. 그래서 같은 티켓이 일주일 뒤에 새로울 것 없이 돌아옵니다. 요청 하나, 카운터 판독 한 번, 고장을 일으킨 방아쇠 하나가 최소한의 증거입니다.
어떤 카운터가 패킷이 움직였다는 것을 증명하는가
IPsec에서 IKE 연관과 CHILD 연관은 별개의 대상이고, 이 질문에 답하는 카운터는 child만 가지고 있습니다. child를 나열하고 패킷이 양방향으로 늘어나는지 지켜보고, 애플리케이션이 하려는 일과 비교하세요. 제로로 설치된 연관은 애플리케이션이 계속 실패하는 가운데 증가하는 연관과 다른 발견입니다. 전자는 트래픽이 선택되지 않음을, 후자는 트래픽이 움직이고 고장이 더 앞에 있음을 뜻합니다. 카운터는 몇 초 간격을 두고 두 번 읽으세요. 한 번의 표본으로는 추세를 보여 줄 수 없습니다.
swanctl --list-sas ip xfrm state list ip -s link show dev tun0
제로 카운터는 선택을 가리킵니다. 라우팅, 정책, 패킷이 나온 이름 공간, 또는 클라이언트가 한 번도 묶지 않은 인터페이스입니다. 증가하는 카운터는 터널에서 멀어지는 쪽을 가리키므로, 먼 쪽의 전달, 이름 해석, 돌아오는 경로, 목적지 서비스 순서로 이어 가세요. 별도 child 객체가 없는 프로토콜도 같은 증거를 자기 용어로 드러내므로, IPsec 어휘를 빌리는 대신 상대 상태와 패킷 수에 관해 보고하는 내용을 쓰세요. 판독의 모양이 그것을 만들어 낸 도구보다 중요합니다.
카운터가 움직인 뒤 고장은 어디에 있는가
게이트웨이가 자기 관리 주소에서 응답한다는 것은 게이트웨이가 실행 중임을 증명할 뿐, 그 뒤의 무언가가 요청을 처리한다는 뜻은 아닙니다. 그래서 가운데 상자가 아니라 먼 쪽을 시험하세요. 이름 해석은 고장을 가장 잘 감춥니다. 터널로 닿을 수 없는 리졸버는 죽은 연결과 똑같이 시간 초과가 됩니다. 두 번의 조회가 그 경우를 갈라놓고, 둘 다 비용이 적습니다. 먼저 터널이 밀어 넣는 리졸버에게 묻고, 다음에 같은 이름을 공용 리졸버에게 물으세요.
dig +short host.example dig +short @10.20.0.1 host.example ping -c 2 10.20.0.25
공용 리졸버로는 해석되지만 터널 리졸버로는 해석되지 않는 이름은 DNS 경로가 끊겼음을 뜻하고, 둘 다로 해석되어도 브라우저에서 시간 초과가 되는 이름은 돌아오는 경로나 서비스를 가리킵니다. 주소로 한 ping이 성공하는데 애플리케이션이 계속 거부한다면, 네트워크는 요청을 전달했고 서비스가 그것을 거부한 것이며, 이는 훨씬 뒤의 단계입니다.
방아쇠를 기록하고, 그다음 한 가지만 바꾸세요
고장 앞에 무엇이 있었는지 기록하세요. 한동안의 무활동, 네트워크 변경, 키 갱신, 다시 이어 붙인 노트북, 또는 복원된 시스템입니다. 이들은 서로 다른 메커니즘을 만들고, 보통 복원된 시스템만 스스로 고칩니다. 그것이 바로 아무것도 가르쳐 주지 않는 경우입니다. 재시작은 사건의 순서를 없애고 나서 원인을 감출 만큼 가까운 조건을 다시 만듭니다. 방아쇠가 아직 재현되는 동안 적어 두세요.
그다음 근거 있는 수정을 하나 하고 원래 요청을 고장을 일으킨 방아쇠와 함께 반복하세요. 무활동은 재현하기 가장 쉬운 방아쇠이므로, 수정이 증상이 아니라 메커니즘을 다뤘다는 가장 빠른 확인입니다.
보고하려는 것은 보내려던 트래픽이 도달하려던 서비스에 도달했다는 증거입니다. 초록으로 바뀌는 아이콘, 로드되는 캐시된 페이지, 움직이는 카운터는 모두 의도한 목적지에 대한 완료된 요청 하나보다 못합니다. 요청, 카운터 판독, 방아쇠를 함께 두어 다음 사람이 수정과 우연을 구별할 수 있게 하세요.