라즈베리파이 홈 VPN 후기
라즈베리파이를 이용해 구축한 OpenVPN 서버 사용 후기입니다.
뜻깊은 3일, 요긴하게 사용했던 3일
(많이 늦었지만) 지난 포스트에서 얘기했듯이, 중국 상해에서 열린 Northeast Asia Community Summit에 참석하고 왔다. 커뮤니티 운영진으로서 각 나라1에서 온 운영진들을 만나 함께 즐거운 시간을 보냈고, 커뮤니티 운영에 대해서 많은 깨달음을 얻었다. 커뮤니티를 운영하면서 마주치게 되는 문제들, 그리고 고민들에 대해서 어느 정도 답을 찾을 수 있었고 이를 우리 커뮤니티에서도 실천해야겠다는 생각을 하게 되었다. 더 얘기할 것들이 많지만, 이번 글에서는 그것이 목적이 아니기에 생략…
확인하기 전까지는 좀 걱정이었다. 예전에 (파이는 아니지만) 이런 싱글 컴퓨터 보드를 사용하다보면 갑자기 죽어서 접속이 안 되느라 애를 먹은 경우가 종종 있었기 때문이다.2 인천 공항에서 비행기를 기다리면서도 잘 되는지 확인해보기도 하고, 혹시 중국 내렸는데 갑자기 안 되면 어떻게 하나 싶기도 했었다. 결론부터 말하자면 평소 인터넷 사용하듯이 편하게 페이스북, 트위터, 심지어 유튜브 뮤직까지 잘 사용하고 왔다.
잘 될까….??
푸동 국제공항에서 숙소까지는 현지 유심을 사용했다. 현지 유심 중에서도 홍콩 겸용 유심3을 구매하여 사용했기 때문에 구글 맵스를 사용하는데 문제가 없었다. 그렇기에 이 상황에서는 VPN를 사용해봤자 의미가 없던 상황이라서, 호텔 숙소에 도착하고 호텔 와이파이를 잡아서 시도를 해봤다. 먼저 (혹은 왼쪽) 동영상은 구축해간 VPN을 사용했을 때, 그리고 다음 동영상은 VPN을 껐을 때 인스타그램 접속 화면이다.
다행히 VPN 접속에 성공했고, 흔히 방화장성(Great Firewall)으로 막힌다는 사이트들 접속도 문제가 없었다. 그 덕분에 인스타그램 스토리 업로드도 가능했고, 페이스북 포스팅도 올릴 수 있었다. 가장 걱정했던 것은 속도였는데, 크게 지장을 받진 않았다. 오히려 생각보다 빠른 로딩 속도에 놀랐다. 심지어 YouTube Music에서 음악을 스트리밍으로 듣는데도 재생 슬라이의 회색 구간4이 빠르게 자라는 것은 의외였다.
속도는 얼마나 나왔을까
사실 이 질문은 VPN을 설정할 때부터 가져온 질문이다. 기껏 열심히 설정을 해놨는데, 못 쓸 정도면 어떻게 하지 싶었고5, 속도를 더 내보겠다고 기가 인터넷 허브에 바로 연결한 것도 한 이유였다. 거기다 막상 사용하니 음악 스트리밍도 잘 되기에 실제 속도를 수치로 확인하는 것이 기대가 되었다.
그래서 한국에서 VPN을 설정했을 때, 데스크탑 환경에서는 속도가 얼마나 나오는지 측정하고 갔다.
Ookla Speedtest를 이용해서 확인해본 결과, 다운로드는 500Mbps6, 업로드는 120Mbps로 나왔다. 이 때는 맥북에 USB7-LAN 액세서리를 활용해서 유선으로 사용한 것이라 가용한 최대의 속도가 나왔다. 그렇다면 파이에서도 비슷한 속도가 나올까?
파이에서는 CLI 환경을 이용해 테스트했다. 내가 사용했던 파이는 3B+ 모델로 기가비트 이더넷 포트가 기본으로 장착되어 있다. 하지만, 찾아보니 이더넷 포트 보드 상에서 USB 2.0으로 연결8되어있기 때문에 최대 300Mbps까지만 난다는 것이다. 그 이유에서 인지 생각보다 현저히 낮은 속도로 측정이 되었지만, VPN으로 동영상 스트리밍을 하는 것은 아니기에 만족했다.
그렇다면 Youtube Music까지 원활하게 사용 가능할 정도였던 상해 현지에서의 VPN 속도는 얼마나 나왔을까?
다운로드 약 4Mbps, 업로드 약 5.5Mbps. 측정했던 것보다 한참 낮은 속도가 나왔다.9 어떻게 이 정도 속도로도 가능한 건가 싶은 생각이 들었는데, YouTube Music이 128kbps 음질10로 스트리밍을 한다는 것을 생각하면 끊김이 있을 수 없었을거라 생각한다. 대신 당시 Facebook이랑 Twitter를 사용했을 때를 돌이켜보면 살짝 기다렸던 같기도 하다11. 그런 것을 생각하면 납득할만한 결과였다.
아쉬운 아이폰
다만 아이폰에서는 간혹가다가 와이파이가 연결된 상태에서 VPN을 켜도 알아서 LTE로 바꿔서 VPN으로 연결하는(?!) 기이한 현상이 일어났다. 답답해서 파이에 SSH 접속을 하고 연결을 끊고 다시 해도 동일한 현상이 일아나길래 이건 무슨 경우인가 싶었다.12
귀국해서 찾아보니 iOS의 특성 때문으로 볼 수 있을 것 같다. iOS에서는 Network 상태가 변경될 때 Network Reconfiguration Event 라는 이벤트가 발생하게 된다. 사용 가능 -> 사용 불가능 / 사용 불가능 -> 사용 가능 의 경우 뿐만이 아니라, WiFi <-> Cellular 와 같이 서로 다른 네트워크로의 전환할 때 도 이벤트가 발생하게 된다. 특히 여러 개의 Network를 사용할 수 있는 경우, 예를 들어 WiFi와 Cellular를 모두 사용할 수 있는 경우, 우선순위가 낮은 Interface에 대해서는 RTF_IFSCOPE Flag13가 붙게 되며, 결국 기기에서는 이 Flag가 없는 Interface를 우선적으로 사용하게 된다는 것이다.
즉, OpenVPN을 실행했는데 실제 내가 원하지 않는 Interface로 연결했다는 것은 내부적으로 Interface에 대한 우선 순위가 어디에서 꼬였다는 것으로 이해할 수 있을 것이다. OpenVPN 포럼에서 이야기한 것처럼 iOS 내부의 Routing Table을 떠보진 않았지만, 제어센터에서 WiFi의 끄는 것이 진짜 WiFi 전원을 끄는 것이 아니라는 것을 생각하면 가능한 오류라고 생각한다. 당시 당황해서 갖가지 설정을 껐다 켰다하니 문제가 해결이 안 됐지만, 대신 아이폰을 껐다가 다시 켜니까 다시 돌아오긴 했다. 역시 재부팅이 답 귀찮은 방법이긴 하지만, 아무래도 재부팅이 되면서 당연히 Routing Table이 초기화되니 해결되는 것이 아닌가 싶다.
결론
아이폰에서 살짝 오류가 있었다는 점 빼면 정말 요긴하게 사용하고 왔다. 내가 직접 구성한 VPN이기에 차단당할 염려14가 없어 안정적으로 잘 사용하고 왔다. 알아보진 않았지만, 어차피 라즈베리파이 자체가 저전력이기 때문에 전기료도 그렇게 많이 나오진 않았을 것이다.15
혹시 집에서 안 쓰는 보드나 컴퓨터가 놀고 있다면 이렇게 써보는 것도 좋은 생각인 것 같다.
P.S. 제가 소개한 방법을 행동으로 옮겨서 발생하는 문제에 대한 책임은 본인에게 있다는 것을 알립니다.
-
한국, 중국, 일본, 대만, 홍콩 ↩︎
-
사실 이 때는 보드가 무선으로 연결되어있던 것도 있었다. ↩︎
-
홍콩 겸용 유심을 중국에서 사용하면 데이터 로밍이 되어 홍콩을 통해 인터넷 접속이 되기에 페이스북, 유튜브, 구글 접속이 모두 가능하다. ↩︎
-
보통 음악 앱에서 스트리밍할 때 받아와진 음악의 구간을 의미하는 것으로 알고 있다. ↩︎
-
어차피 간간히 웹서핑을 하기 위한 용도였기에 음악은 미리 다 다운받아놨고, 비행기 안에서 볼 드라마 에피소드들도 태블릿에 충분히 쟁여놓은 상태였다. ↩︎
-
알고보니 기가 인터넷 500M 상품에 가입되어 있던 것이었다. ↩︎
-
USB 3.0으로 연결했다. ↩︎
-
공식 홈페이지의 Specification 참고 ↩︎
-
USB-LAN 액세서리까지 붙여서 포트 2개를 썼으면 달라졌을까. 하나는 VPN 서버 접속용, 다른 하나는 VPN으로 들어온 접속을 인터넷으로 뿌려주는(?) 용도 ↩︎
-
YouTube Music 앱 설정에서 보통 음질로 했을 경우. 높은 품질로 할 경우 256kbps AAC로 스트리밍 한다고 한다. (링크) ↩︎
-
보통 사람이라면 느리다고 불편해했을 것이다. ↩︎
-
그 불편한 상황을 어떻게든 해결해보기 위해 신경 써서 그런지, 스크린 샷을 찍지 못했다… ↩︎
-
netstat -nr
을 통해 목적지 IP에 대한 Route를 확인시, RTF_IFSCOPE 가 설정되어있다는 것은 해당 Route는 특정 Interface만 사용하도록 설정을 하는 것이다. (netstat
명령어와 RTF_IFSCOPE에 대한 내용은 여기서 참고) ↩︎ -
이전에 갔을 때는 막히지 않는다는 VPN을 구매해서 갔는데, 실제 사용했을 때는 중간에 VPN이 막혀서 애먹은 경험이 있다. ↩︎
-
물론 체류 기간이 길어지면 상용 VPN을 사는 것이 낫겠지만. ↩︎