衛星接続でドロップされたデータパケット


8

英国と米国の農場にいくつかの組み込みPCがあります。他の接続の中で、これらは20秒ごとに小さなデータパケット(100〜600バイト)を送信するサーバーと通信します。

DSLではこれで問題ありません。衛星接続では、ほとんどのパケットが失われます。

TCPを使用しており、クライアントのtcpdumpでシーケンスが表示されます。

-> syn                   (send)
<- syn ack               (receive)
-> ack
-> push ack
<- ack                   (spoofed?)
-> fin ack
<- ack                   (spoofed?)
<- fin ack
-> ack

ただし、サーバーには次のように表示されます。

<- syn                   (receive)
-> syn ack               (send)
<- ack
<- fin ack
-> fin ack
<- ack

接続を高速化するために、クライアントが受信する余分なackがサテライトエンドポイントによって偽装されていると私は思う

100を超えるDSLサイトと3つの衛星があります。DSLはすべて問題なく、衛星はすべて同じように壊れています。

データはどうなっていますか?20回に1回ぐらいです。

編集 私は、問題のクライアントからサーバーにpingを実行することができます。すべてのクライアントには、正常に動作しているサーバーへのリバースSSHトンネルがあります。sshでログインし、データをダウンロードすることもできます。問題があるのはこのアップロードだけです。

DSL接続-成功

root@mini2440:~ tcpdump port 1080 -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:55:20.126968 IP (tos 0x0, ttl 64, id 29228, offset 0, flags [DF], proto TCP (6), length 60)
    client > server: Flags [S], cksum 0x1877 (incorrect -> 0x5ebd), seq 21640692, win 14600, options [mss 1460,sackOK,TS val 1485260760 ecr 0,nop,wscale 1], length 0
14:55:20.194124 IP (tos 0x0, ttl 51, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    server > client: Flags [S.], cksum 0xf10a (correct), seq 4087778233, ack 21640693, win 14480, options [mss 1452,sackOK,TS val 43969567 ecr 1485260760,nop,wscale 4], length 0
14:55:20.194465 IP (tos 0x0, ttl 64, id 29229, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [.], cksum 0x186f (incorrect -> 0x3bcb), seq 1, ack 1, win 7300, options [nop,nop,TS val 1485260773 ecr 43969567], length 0
14:55:20.197225 IP (tos 0x0, ttl 64, id 29230, offset 0, flags [DF], proto TCP (6), length 403)
    client > server: Flags [P.], cksum 0x39c5 (correct), seq 1:352, ack 1, win 7300, options [nop,nop,TS val 1485260774 ecr 43969567], length 351
14:55:20.197564 IP (tos 0x0, ttl 64, id 29231, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [F.], cksum 0x186f (incorrect -> 0x3a6a), seq 352, ack 1, win 7300, options [nop,nop,TS val 1485260774 ecr 43969567], length 0
14:55:20.267543 IP (tos 0x0, ttl 52, id 26507, offset 0, flags [DF], proto TCP (6), length 52)
    server > client: Flags [.], cksum 0x530f (correct), seq 1, ack 352, win 972, options [nop,nop,TS val 43969587 ecr 1485260774], length 0
14:55:20.271456 IP (tos 0x0, ttl 52, id 26508, offset 0, flags [DF], proto TCP (6), length 52)
    server > client: Flags [F.], cksum 0x530d (correct), seq 1, ack 353, win 972, options [nop,nop,TS val 43969587 ecr 1485260774], length 0
14:55:20.271771 IP (tos 0x0, ttl 64, id 29232, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [.], cksum 0x186f (incorrect -> 0x3a46), seq 353, ack 2, win 7300, options [nop,nop,TS val 1485260789 ecr 43969587], length 0
8 packets captured

衛星接続-失敗

root@mini2440:~ tcpdump port 1080 -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:14:50.027783 IP (tos 0x0, ttl 64, id 13618, offset 0, flags [DF], proto TCP (6), length 60)
    client > server: Flags [S], cksum 0x1884 (incorrect -> 0x1b8a), seq 2040495825, win 14600, options [mss 1460,sackOK,TS val 16534499 ecr 0,nop,wscale 1], length 0
15:14:50.029731 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    server > client: Flags [S.], cksum 0x3451 (correct), seq 51102354, ack 2040495826, win 5792, options [mss 1460,sackOK,TS val 67452903 ecr 16534499,nop,wscale 7], length 0
15:14:50.034910 IP (tos 0x0, ttl 64, id 13619, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [.], cksum 0x187c (incorrect -> 0x5d38), seq 1, ack 1, win 7300, options [nop,nop,TS val 16534500 ecr 67452903], length 0
15:14:50.036082 IP (tos 0x0, ttl 64, id 13620, offset 0, flags [DF], proto TCP (6), length 173)
    client > server: Flags [P.], cksum 0x8d87 (correct), seq 1:122, ack 1, win 7300, options [nop,nop,TS val 16534500 ecr 67452903], length 121
15:14:50.036351 IP (tos 0x0, ttl 64, id 13621, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [F.], cksum 0x187c (incorrect -> 0x5cbe), seq 122, ack 1, win 7300, options [nop,nop,TS val 16534500 ecr 67452903], length 0
15:14:50.037547 IP (tos 0x0, ttl 63, id 64893, offset 0, flags [DF], proto TCP (6), length 52)
    server > client: Flags [.], cksum 0x790d (correct), seq 1, ack 122, win 46, options [nop,nop,TS val 67452911 ecr 16534500], length 0
15:14:50.076479 IP (tos 0x0, ttl 63, id 64894, offset 0, flags [DF], proto TCP (6), length 52)
    server > client: Flags [.], cksum 0x78e4 (correct), seq 1, ack 123, win 46, options [nop,nop,TS val 67452951 ecr 16534500], length 0
15:14:51.076273 IP (tos 0x0, ttl 63, id 64895, offset 0, flags [DF], proto TCP (6), length 52)
    server > client: Flags [F.], cksum 0x74e4 (correct), seq 1, ack 123, win 46, options [nop,nop,TS val 67453974 ecr 16534500], length 0
15:14:51.076482 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
    client > server: Flags [.], cksum 0x57be (correct), seq 123, ack 2, win 7300, options [nop,nop,TS val 16534708 ecr 67453974], length 0
9 packets captured

どちらの場合も、ICMPトラフィックはありませんでした。


サーバーに到達するトラフィックはありますか?すなわちそれらをpingする?
GerryEgan 2014

はい、問題のクライアントからサーバーにpingできます。すべてのクライアントにサーバーへの逆SSHトンネルがあり、これは正常に機能しています。sshでログインし、データをダウンロードすることもできます。機能しないのは、このアップロードだけです。
ヨハン

同じマシンからの2つの比較pcapがある場合に役立ちます:A)DSL全体およびB)衛星全体。問題の情報は、診断を支援するのに十分ではありません。TCPとICMPの両方をキャプチャしてください...可能であれば、ドロップボックス、Googleドライブ、またはその他の「クラウド」リンクをpcapに提供してください
マイクペニントン

DSLと衛星の両方を備えたマシンはありません。tcpdumpを2つの別々のマシンで実行できます。1つはDSLを使用し、もう1つは同じ衛星を使用しており、同じサーバーを使用して通信します。
ヨハン

それはあなたが必要とするデータですか?Dropboxの提案を見ただけなので、もっと多くのデータを期待していたと思います...
Johan

回答:


2

サテライトのpcapエントリのタイムスタンプは、tcp確認応答のスプーフィングを意味します。確認のスプーフィングを実行するほとんどのデバイスは、送信元/宛先IPアドレス、送信元/宛先ポートのいくつかの組み合わせに基づいて加速をバイパスするように構成できます。標準ACLの概念。これは、ハブとスポークの位置にある衛星モデム(または近くのデバイス)で構成可能な機能である可能性があります。

このようなネットワークアーキテクチャでは、広域最適化または高速化ソリューションも一般的です。繰り返しますが、これらのソリューションは、問題のあるトラフィックをバイパスする方法を提供する必要があります。Riverbed Steelhead、Cisco WAAS、Bluecoat、Citrix Cloudbridge / Wanscalerなどのデバイスは、アプリケーションに影響を与える可能性のあるテクノロジーの例です。プロバイダー(またはネットワーク担当者)との話し合いで、そのようなテクノロジーがネットワークで使用されているかどうかを明らかにする必要があります。その場合は、これらのデバイスで影響を受けるトラフィックをバイパスして、動作が変化するかどうかを確認してください。幸運を祈ります。


これは良い理論です。WANアクセラレーションは、高遅延(衛星)接続を阻止するための一般的な戦術です。
ライアンフォーリー

クライアントがサーバーが送信していないものを受け取っていたので、私はそれがスプーフィングである必要があると思いました。ただし、これによりパケットがドロップされますか?
ヨハン14

ヨハン、これは、1)tcpヘッダー情報(ここではシーケンス番号が重要です)と2)衛星モデム、パフォーマンス強化プロキシ、WAN最適化ギアなどの機器文字列がないと、トラブルシューティングが非常に困難になります。ここでの考えは、sshが影響を受けていないように見えますが、sshトンネルを介してカスタムアプリケーションデータをトンネリングすることについて考えたことはありますか?
パケットロス2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.