터널은 밤새 열려 있었고 아무것도 스트리밍하지 않았는데 사용량 그래프는 움직였다. 이는 정상인데, VPN은 회선의 일부를 예약하는 대신 대화를 열어 두므로 예약된 몫은 영이고 바이트는 작지만 실제다. 두 개념은 끊임없이 뒤바뀌기 때문에 유휴 VPN이 대역폭을 쓰는지라는 질문에는 양방향 모두 형편없는 답이 나온다. 설명할 수 있는 구간에서 올바른 카운터를 측정하면 한나절이면 정리된다.

유휴 터널이 여전히 바이트를 움직이는 이유

터널은 수명이 있는 매핑이고, 그 매핑을 살려 두는 무언가가 필요하다. 핸드셰이크는 만료되고 NAT 장비는 유휴 변환을 버리며, 충분히 오래 침묵하는 피어는 양쪽 끝에서 아무것도 실패하지 않은 채 도달 불가능해질 수 있다. 프로토콜은 보낼 것이 없을 때 무엇을 보내는지에서 다르며, WireGuard는 핸드셰이크가 자리 잡은 뒤 기본적으로 아무것도 전송하지 않고, 선택적 설정인 PersistentKeepalive는 주기적 패킷을 더해 변환 뒤의 피어가 도달 가능하게 유지된다. 의도적으로 켜면 그 간격이 카운터에 드러난다.

OpenVPN의 keepalive 도우미는 다르게 동작하는데, 핑 방식 점검을 정의해 양쪽 끝이 살아 있는 세션과 죽은 세션을 구분하게 하고, 자체 전송을 함께 쓰는 클라이언트에는 다른 이름의 동등한 타이머가 있다. 이 중 어느 것도 애플리케이션 창에는 나타나지 않으므로 빈 화면은 회선 위에 무엇이 있는지 아무것도 말해 주지 않는다.

유휴 애플리케이션은 유휴 장치가 아니다

열린 터널은 연결된 모든 클라이언트를 처리하고, 클라이언트는 좀처럼 멈추지 않는다. 사진 동기화, 리졸버 질의, 업데이트 확인, 모니터링 에이전트는 기본인 경로를 따르고, 전체 터널 프로필에서는 그 경로가 터널 자체다. 주머니 속에서 잠든 휴대전화도 계속 폴링하고, 백업 작업은 아무도 영상을 보지 않는다는 것을 개의치 않는다. 터널이 유휴하다는 것은 장치가 쓰는 동안 당신이 쓰지 않는다는 뜻이다.

브리지 및 라우티드 프로필은 서로 다른 트래픽을 나르므로 같은 관찰이 각각 다른 답을 낼 수 있다. 측정 전에 누가 연결돼 있었는지 적어 두라, 동기화 클라이언트 하나가 그 구간의 모든 keepalive보다 클 수 있다.

카운터 하나를 골라 무엇을 세는지 말하라

합계는 세 가지이고 각각 다른 질문에 답하는데, 터널을 지난 것, 물리 링크를 지난 것, 그리고 제공자가 청구하기로 정한 것이다. 업링크에서 세면 터널에 들어오지 않은 것까지 세게 되는데, ARP의 흔들림부터 이웃의 스트리밍까지다. 터널 인터페이스에서 세면 바깥 헤더, 핸드셰이크 재시도, 변환을 열어 두는 keepalive를 놓친다. 둘 다 읽는 것은 저렴하고, 바이트가 터널의 어느 쪽에서 세어졌는지 보는 유일한 방법이다.

ip -s link show wg0
ip -s link show eth0

둘 중 어느 쪽을 인용하기 전에 질문이 무엇에 관한 것인지 정하라, 둘을 더하면 관련 작업을 두 번 세게 되기 때문이다. 제공자 회계는 측정한 기간보다 늦은 기간에 마감될 수 있으므로 청구서와 맞지 않는 합계가 자동으로 틀린 것은 아니다. 발표하는 숫자에는 인터페이스와 방향, 구간을 붙여라.

짧은 감독 측정을 실행하라

터널과 그 보호를 평소처럼 그대로 두고, 선택적 전송은 건너뛰고, 누가 연결된 채 남았는지 기록하라. 카운터를 읽고, 읽을 가치가 있는 만큼 기다렸다가 다시 읽고, 경과 시간을 차이 옆에 두라. 큰 속도 테스트는 다른 질문에 답하는데, 링크를 포화시킬 뿐 유휴 비용에 대해서는 아무것도 말하지 않는다.

첫 결과가 불가능해 보이면 구간을 한 번 더 반복하라, 표본 하나는 예약된 작업을 중간에 붙잡을 수 있다. 일치하는 두 구간은 증거이고, 한 구간은 단위가 붙은 일화일 뿐이다.

더 나쁜 터널로 더 깨끗한 영을 사지 마라

그래프를 정리하려고 keepalive나 생존 점검을 끄면 측정 대상 배포가 바뀌고, 다음 유휴 기간 뒤에 터널이 돌아오지 않을 수 있다. 만지기 전에 그 메커니즘이 도달성인지 유지보수인지 물어보고, 그렇다면 켜 둔 채로 측정하라, 그것이 당신이 지원할 구성이기 때문이다. 끊어진 복구 경로를 숨기는 더 깨끗한 영은 이 실습에서 가장 비싼 결과다.

숫자가 정말 클 때는 프로토콜이 회선을 채운다고 가정하지 말고 그것을 만든 프로세스나 클라이언트를 찾아라. 바이트가 어느 쪽에 있는지 보려고 안쪽과 바깥 카운터를 비교한 뒤, 당신이 가졌다고 생각하는 용량이 아니라 그 기간의 사용량을 보고하라.

관련 글