2つのデバイス間のTCP接続の問題のトラブルシューティング
最終検証日:
翻訳: 竹洞 陽一郎
デバイスが管理コンソールに表示されており、デバイス間の接続をブロックするアクセスルールもない場合は、Tailscaleの3種類のpingを使って、どのレベルまで接続できているかを確認します。
ping 100.x.x.xは、OSに対してtailnet経由でICMP pingを送信するよう指示します。tailscale ping 100.x.x.xは、2つのtailscaledプロセスがそもそも通信できるか、また、どのように通信しているか(ダイレクト接続か、リレー経由か)をテストします。tailscale ping --tsmp 100.x.x.xは、tailscale pingより1段階深いレベルのパケットを送信します。WireGuardのレベルも通過しますが、ホストのネットワークスタックは介しません。
特定の種類のネットワークでは、パケットサイズの制限が接続の問題を引き起こすこともあります。
Tailscaleは、最大転送単位(MTU)として1280を使用します。
これより大きなパケットを送信する可能性のある他のインターフェイスがある場合、そのパケットは何の通知もなく破棄されることがあります。
これは、tcpdumpを使って確認できます。
この問題を解決するには、LANレベルでMTUをより小さい値に設定するか、MSS(最大セグメントサイズ)クランピングを使用します。