Tailscale 속도가 느릴 때 확인해봐야할점.

안녕하세요. 달소입니다.

이번에는 Tailscale 사용시 속도가 느리게 나올때 확인할 수 있을만한 것들입니다.

기본적으로 Tailscale의 경우 Wireguard를 기반으로해서 빠른속도라고하는데 약 10~12MB/s 정도의 속도만 뽑아주는 경우가 있습니다.

이런경우의 대부분은 제대로된 Tailscale 연결이 아닌 DERP를 통한 연결이 되었을때 입니다.

Tailscale의 DERP란 무엇인가요?

Tailscale의 DERP는 분산 에지 라우팅 프로토콜(Distributed Edge Routing Protocol)을 의미합니다.

DERP는 Tailscale의 핵심 기술로, 사용자의 장치와 서버 사이의 안전한 연결을 제공하는 데 사용됩니다.

DERP는 암호화된 터널을 통해 데이터를 전송하고, 사용자의 장치가 인터넷에 연결되어 있지 않더라도 로컬 네트워크에 연결할 수 있도록 도와줍니다.

DERP는 Tailscale의 중앙 서버가 아닌 분산된 노드들 간에 통신을 수행하므로, 안정성과 확장성을 제공합니다.

Tailscale은 노드를 직접 연결 하거나 DERP 릴레이를 통해 연결합니다 .

Tailscale은 노드를 P2P로 직접 연결하려고 시도하며 거의 항상 그렇게 합니다. 이것이 가능하지 않은 경우 Tailscale은 DERP 릴레이를 사용하여 한 노드에서 다른 노드로 트래픽을 전달합니다. DERP 릴레이는 일반적으로 처음에 직접 연결을 설정하는 데 도움이 되는 측면 채널로 사용되지만 더 복잡한 방화벽 구성과 같은 일부 경우에는 모든 트래픽을 릴레이하는 데 사용됩니다.

DERP 자체가 외부의 노드를 타게되고 그렇게되면 자연스럽게 속도가 낮아집니다 ㅠㅠ

이를 해결하기위한 방법은 아래와같습니다.

  • NAT-PMP 및 UPnP를 활성화하면 네트워크에서 모든 트래픽을 허용하고 전달할 수 있습니다.
  • 방화벽 포트를 열면 네트워크는 특정 포트의 트래픽을 허용하고 특정 규칙을 충족하여 네트워크를 떠날 수 있습니다.

특히 일반 공유기가 아닌 방화벽 아래에 있는것들의 경우 설정을해주지않을경우 대부분 DERP로 타고갑니다.

image.png.jpg

아래 가이드를 참고하시어 설정하시면되겠습니다.

Using Tailscale with your firewalltailscale.comMost of the time, Tailscale should work with your firewall out of the box. Thanks to NAT traversal, nodes in your tailnet can connect directly peer to peer, even through firewalls. To get many firewalls working with Tailscale, try opening a firewall port to establish a direct connection.

확인방법

tailscale ping [연결되어있는 hostname, ip] 를 쳤을때 아래처럼 DERP로 나오면 DERP 상태입니다.

image.png.jpg

테스트

DERP를 타고갔을때와 타고가지않았을때의 속도차이입니다.(EXIT노드 설정)

핑 차이만 해도 어마어마하죠?

image.png.jpg

실제 클라이언트에서는 훨씬 심합니다.

모바일에서 Exit node 연결을 했을때 차이입니다.

DERP를 타고있을때

image.png.jpg

DERP를 안타고있을때

image.png.jpg

서버상에서도 확연합니다.

image.png.jpg

Tailscale이 느린건,, 환경 문제일 가능성이 높으니 어서 셋팅을 해주시지요 ㅎㅎ