노트북 한 대가 사무실 라우터를 통해 작동하는 터널을 유지하고 있다. 같은 방의 두 번째 노트북이 연결되면 첫 번째가 끊긴다. 증상이 이것뿐이라면 아직 세 가지 다른 원인이 남아 있고, 어떤 해결책이 맞는지는 아직 측정하지 않은 것에 달려 있다. 공유 라우터는 관련이 있지만 자동으로 범인은 아니며 프로토콜도 마찬가지다.

소파에서 보면 똑같아 보이는 세 가지 원인

첫 번째 후보는 라우터의 IPsec 처리 방식이다. 저렴한 소비자용 라우터는 패스스루를 광고하면서 한 번에 한 클라이언트만 지원하는 경우가 많은데, 이는 그 메커니즘이 피어 하나만 추적하고 같은 공인 주소 뒤의 노트북 두 대를 분리할 수 없기 때문이다. 증상은 예상한 그대로로, 더 새로운 세션이 이긴다.

두 번째는 계정이다. 많은 VPN 서버가 ID당 세션 하나만 허용하고 같은 자격 증명이 다시 인증되면 이전 세션을 끊는데, 이는 게이트웨이의 정책 결정이며 당신의 라우터와는 아무 관계가 없다. 하드웨어를 사기 전에 서버 로그에서 그 명시적인 메시지를 찾아라.

세 번째는 단순한 설정 오류로, 두 프로필이 같은 ID를 가리키고 그중 하나가 오래된 사전 공유 키나 게이트웨이가 더 이상 받지 않는 인증서를 쓰고 있다. 이것은 보통 첫 번째가 끊기는 대신 두 번째 연결이 실패하는 형태로 나타나므로, 실패의 모양이 이미 뭔가를 알려 주고 있다.

L2TP/IPsec이 실제로 라우터를 통해 보내는 것

IKE는 UDP 500 위에서 동작한다. 데이터 경로는 ESP이며, 이는 IP 프로토콜 50이고 TCP나 UDP 포트를 전혀 갖지 않는다. 그래서 포트만 이해하는 라우터에는 잡을 것이 없고, 패스스루 메커니즘이 존재하는 이유가 바로 여기에 있다.

NAT 통과를 쓰면 ESP가 UDP 4500 안에 캡슐화된다. 이제 라우터에는 매핑할 출발 포트가 생기고 각 노트북이 자기 변환을 받으므로, 게이트웨이가 두 흐름을 구분할 수 있다. 한 주소 뒤의 여러 클라이언트가 아예 작동할 수 있게 하는 메커니즘이 이것이다.

이 차이는 라우터의 기능 목록을 읽을 때 중요하다. IPsec 패스스루라고 적힌 라벨은 제조사에 어떤 메커니즘이 있다는 것만 알려 줄 뿐, 그 메커니즘이 여러 클라이언트를 지원하는지, 두 번째가 왔을 때 어떻게 동작하는지는 알려 주지 않는다.

strongSwan의 NAT 통과 문서는 캡슐화 자체를 설명하며, 이것이 마케팅 페이지가 아니라 패킷 캡처로 검증할 수 있는 부분이다.

실제로 어느 원인인지 알아내는 방법

네 가지 관찰을 하고 각 결과를 적어라. 각 노트북을 혼자 쓸 때: 작동하는가, 얼마나 오래? 둘을 동시에: 어느 쪽이 살아남는가? 두 번째 노트북을 휴대폰 핫스폿에 둘 때: 첫 번째가 버티는가? 그리고 게이트웨이에서: 서버 로그가 새 세션이 옛 세션을 대체한다고 보여 주는가, 아니면 한 클라이언트가 그저 조용해진다고 보여 주는가?

그 답들이 후보를 깔끔하게 갈라 놓는다. 서버 로그의 대체 메시지는 ID 정책을 가리킨다. 라우터가 새 변환을 보여 주는 동안 클라이언트가 트래픽 수신을 멈추는 것은 라우터를 가리킨다. 둘 다 IKE를 완료하지 못하는 두 클라이언트는 설정이나 자격 증명을 가리킨다.

처음부터 끝까지 같은 프로필을 유지하라. 테스트 사이에 프로필을 바꾸면 두 변수를 동시에 측정하는 것이고, 결론은 알아채기 매우 어려운 방식으로 틀린다.

라우터가 지원하면 그곳에서 캡처하라, 또는 다른 하나가 연결하는 동안 한 노트북에서 캡처하라. 첫 번째 클라이언트의 패킷이 멈추는 동안 두 번째의 패킷이 나타나는 것을 보는 것이 어떤 연결 아이콘보다 강한 증거다.

라우터가 제약이라면

제조사가 문서화한 다중 클라이언트 설정이 있으면 그것을 쓰고, 없으면 필요한 것을 문서가 말해 주는 기기로 교체하라. 매력 없는 답이지만 펌웨어 업데이트를 견디는 유일한 답이다.

작동하지 않는 것은 서로 다른 두 노트북을 향해 똑같은 인바운드 포워드를 둘 추가하는 것이다. 포워드는 들어오는 트래픽을 어디로 보낼지 라우터에 알려 줄 뿐, 패킷이 두 활성 흐름 중 어디에 속하는지는 알려 주지 않으며, 그 모호함이 버그다.

라우터를 교체할 수 없다면 한 클라이언트를 다른 경로 뒤에 두어라. 휴대폰 핫스폿은 나쁜 영구 해결책이고 아주 좋은 진단책이다.

게이트웨이가 제약이라면

서로 다른 사람에게 서로 다른 ID를 마련하라. 노트북 두 대가 쓰는 하나의 공유 계정이 바로 단일 세션용으로 설정된 서버에서 이 증상을 만드는 구성이며, 어떤 로컬 설정도 반대편에서 내린 결정을 고치지 못한다.

게이트웨이 소유자에게 계정당 세션 하나인지, 인증서당 하나인지, 아니면 제한이 없는지 어떤 정책이 적용되는지 물어라. 그 답이 새 자격 증명이 필요한지 새 라우터가 필요한지를 결정한다.

검증은 사람들이 건너뛰는 부분으로, 예전에 실패하던 간격보다 더 오래 두 클라이언트에서 유용한 트래픽을 흘려라. 로그인이 두 번 성공한 것은 인증이 각각 한 번씩 통했다는 것만 증명한다.

관련 글