Wireguardトンネルを介したネットワークパケットの遅延

Wireguardトンネルを介したネットワークパケットの遅延

次のシナリオでは、追加の設定なしで単純な NAT の背後にあるマシン (a) をセットアップし、静的 IP で接続され、インターネットへの NAT がない別のマシン (b) への Wireguard トンネル (wg0) を確立しました。(すべてのマシンは Debian 10 で実行されています)

マシン (a) は、Wireguard 経由で SSH および HTTP サービスをマシン (b) に公開します。

ローカルマシン (a) にいるときはすべてが完璧に動作し、マシンはすべての SSH コマンドと HTTP 要求に即座に反応します。

トンネル (wg0) も正常に動作しているようで、ハンドシェイクが機能し、マシン (a) はマシン (b) に ping でき、その逆では、マシン (b) はマシン (b) の公開サービスに SSH できます。ただし、たとえば、マシン (a) で Wireguard (wg0) 経由で VIM を使用すると、tui の読み込みに実際に数分かかるのに対し、nano は瞬時に読み込まれます。ログを末尾まで追跡して出力が膨大な場合、表示に数秒から数分かかることがあります。最後に、マシン (b) から Wireguard (wg0) 経由でマシン (a) に HTTP 要求を送信すると、要求が成功するまでに約 30 秒かかります。

Machine (a)'s wg0 IP: 10.200.1.7 
Machine (a)'s HTTP Port: 9500

Machine (b)'s wg0 IP: 10.200.1.1

以下は、マシン (a) の wg0 インターフェイス上の HTTP 要求の tcpdump の例です。成功するまでに約 35 秒かかりました。

01:05:53.261678 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [S], seq 592157087, win 27600, options [mss 1380,sackOK,TS val 4192760482 ecr 0,nop,wscale 7], length 0
01:05:53.261809 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [S.], seq 1181067477, ack 592157088, win 28960, options [mss 1460,sackOK,TS val 1595828258 ecr 4192760482,nop,wscale 7], length 0
01:05:53.284094 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1, win 216, options [nop,nop,TS val 4192760502 ecr 1595828258], length 0
01:05:53.284163 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [P.], seq 1:80, ack 1, win 216, options [nop,nop,TS val 4192760502 ecr 1595828258], length 79
01:05:53.284295 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], ack 80, win 227, options [nop,nop,TS val 1595828280 ecr 4192760502], length 0
01:05:53.312174 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:2737, ack 80, win 227, options [nop,nop,TS val 1595828308 ecr 4192760502], length 2736
01:05:53.312195 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [P.], seq 2737:4240, ack 80, win 227, options [nop,nop,TS val 1595828308 ecr 4192760502], length 1503
01:05:53.312241 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [P.], seq 4240:5310, ack 80, win 227, options [nop,nop,TS val 1595828308 ecr 4192760502], length 1070
01:05:53.312284 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [P.], seq 5310:5315, ack 80, win 227, options [nop,nop,TS val 1595828308 ecr 4192760502], length 5
01:05:53.335447 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1, win 224, options [nop,nop,TS val 4192760554 ecr 1595828280,nop,nop,sack 1 {4105:4240}], length 0
01:05:53.335498 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1, win 241, options [nop,nop,TS val 4192760554 ecr 1595828280,nop,nop,sack 1 {4105:5310}], length 0
01:05:53.335507 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1, win 241, options [nop,nop,TS val 4192760554 ecr 1595828280,nop,nop,sack 1 {4105:5315}], length 0
01:05:53.335548 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595828331 ecr 4192760554], length 1368
01:05:53.567095 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595828563 ecr 4192760554], length 1368
01:05:54.043110 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595829039 ecr 4192760554], length 1368
01:05:54.971106 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595829967 ecr 4192760554], length 1368
01:05:56.794963 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595831791 ecr 4192760554], length 1368
01:05:58.299595 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [F.], seq 5315, ack 80, win 227, options [nop,nop,TS val 1595833295 ecr 4192760554], length 0
01:05:58.320249 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1, win 241, options [nop,nop,TS val 4192765540 ecr 1595828280,nop,nop,sack 1 {4105:5316}], length 0
01:05:58.320392 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595833316 ecr 4192765540], length 1368
01:05:58.547111 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595833543 ecr 4192765540], length 1368
01:05:59.003093 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595833999 ecr 4192765540], length 1368
01:05:59.931111 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595834927 ecr 4192765540], length 1368
01:06:01.755118 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595836751 ecr 4192765540], length 1368
01:06:05.595114 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595840591 ecr 4192765540], length 1368
01:06:13.019153 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595848015 ecr 4192765540], length 1368
01:06:27.611117 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1:1369, ack 80, win 227, options [nop,nop,TS val 1595862607 ecr 4192765540], length 1368
01:06:27.634605 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 1369, win 263, options [nop,nop,TS val 4192794853 ecr 1595862607,nop,nop,sack 1 {4105:5316}], length 0
01:06:27.634721 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 1369:2737, ack 80, win 227, options [nop,nop,TS val 1595862630 ecr 4192794853], length 1368
01:06:27.634755 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], seq 2737:4105, ack 80, win 227, options [nop,nop,TS val 1595862630 ecr 4192794853], length 1368
01:06:27.656603 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 2737, win 284, options [nop,nop,TS val 4192794876 ecr 1595862630,nop,nop,sack 1 {4105:5316}], length 0
01:06:27.656683 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [.], ack 5316, win 305, options [nop,nop,TS val 4192794877 ecr 1595862630], length 0
01:06:27.658916 IP 10.200.1.1.58062 > 10.200.1.7.9500: Flags [F.], seq 80, ack 5316, win 305, options [nop,nop,TS val 4192794877 ecr 1595862630], length 0
01:06:27.659043 IP 10.200.1.7.9500 > 10.200.1.1.58062: Flags [.], ack 81, win 227, options [nop,nop,TS val 1595862655 ecr 4192794877], length 0

また、別のトンネル (wg1) 経由でマシン (c) からテストしたところ、マシン (a) で同じ動作が見られました...

これらの問題の原因は何なのか、何かご存知ですか? アドバイスをいただければ幸いです。

答え1

MTU(パケット長)を短くすると、すべて正常に動作します

ip link set dev wg0 mtu 1200

関連情報