Linuxではパケット損失が発生しますが、同じマシン上で実行されている仮想マシンではパケットは失われません!

Linuxではパケット損失が発生しますが、同じマシン上で実行されている仮想マシンではパケットは失われません!

今私のネットワークスタックに問題があるようです。デバッグをどこで開始するのかわかりません。 QEMU / KVMを含むWindows 10 VMを実行しているUbuntu 18.10があります。ネットワークが互いに接続され、UbuntuとWindowsの両方が同じサブネットに表示されます。コンピュータ自体はイーサネットを介してモデム/ルーターに直接接続されます。

Ubuntu 18.10で一晩ping実行:

--- 8.8.8.8 ping statistics ---
47870 packets transmitted, 45768 received, 4.39106% packet loss, time 48161ms
rtt min/avg/max/mdev = 7.666/26.841/1089.663/29.587 ms, pipe 2

Windows VMで同じコマンドを同時に実行します。

Ping statistics for 8.8.8.8:
    Packets: Sent = 47466, Received = 47453, Lost = 13 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 8ms, Maximum = 521ms, Average = 26ms

Linux 側のネットワーク構成:

bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.18  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::5f60:4c3c:6e7d:fe0d  prefixlen 64  scopeid 0x20<link>
        inet6 2607:f2c0:e00a:6fb:909a:d129:4ca4:5178  prefixlen 64  scopeid 0x0<global>
        inet6 2607:f2c0:e00a:6fb::4  prefixlen 128  scopeid 0x0<global>
        ether 62:e1:cd:28:fc:23  txqueuelen 1000  (Ethernet)
        RX packets 1156702  bytes 266528351 (266.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1321781  bytes 148373341 (148.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether ac:1f:6b:77:45:68  txqueuelen 1000  (Ethernet)
        RX packets 1141435  bytes 826615245 (826.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1136699  bytes 175653093 (175.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0x52300000-52320000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 5990  bytes 445099 (445.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5990  bytes 445099 (445.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vmtap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::60e1:cdff:fe28:fc23  prefixlen 64  scopeid 0x20<link>
        ether 62:e1:cd:28:fc:23  txqueuelen 1000  (Ethernet)
        RX packets 1182468  bytes 136243741 (136.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1480981  bytes 686427281 (686.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ベストアンサー1

0)コンテキスト。試験を受けながら夜間試験を受けた理由が何かを覚えてください。書き留めておくと役に立ちそうです。これを質問で編集します。少なくとも私はこれに理由があると思います。ただ楽しく一晩中コマンドを実行するのは珍しいことです。

0a)ベイズのクリーンアップ。私はこれが「非常に間違っているようだ」ことを確認します。これはよく知られている問題ではありません。したがって、あなたが驚くことは、あなたがテスト方法を誤解したり間違いを犯したりする可能性が最も高いことに注意してください。

通常、次のように書くことができます。たくさんご質問の詳細をご覧ください。まず、オペレーティングシステム、VMソフトウェア、ルータのLAN接続、ルータが接続されているISPタイプが何であるかを指定しませんでした。または、100分ごとにインターネット接続が4分間機能しない場合があります。 :-).

(しかし、正直に言うと、テスト方法について厳密に質問する以外はどこから始めるべきかわからないと言うかもしれません。)

1回。引き抜くと、常にパケット損失が発生しますか、それとも特定の時点でパケット損失が激しいのでしょうか?

より速い統計を得るためにギャップを短くすることもできますがping(「Floodping」など)、Googleは支払いをしない限りそうしないでください:-)。代わりに、traceroute 8.8.8.8ISP内で最初または2番目のIPv4アドレスを見つけるために使用されます。 (ISP内の最初の項目はおそらく行番号3です。ping時間も手がかりになる可能性があります)。 Tracerouteの結果にだまされないように注意してください。これは専門家のためのツールです。

2)問題がローカルルータのpingにも当てはまるかどうかを確認し、これがどれほど奇妙なのかを具体的に確認してください。良い比較を得るために、両方のテストを並べて実行します。 (ただし、一度に1つずつ実行することとは異なる結果が出ることがあることに留意してください)

直接イーサネットを使用するとは言わなかったので、上記の質問は非常に重要な質問です。通常、Wi-Fi以上またはISP以上を排除しようとします(または少なくとも除外しようとします)。ただ問題の原因)。これはホームネットワークを使用する際の最も一般的な問題の原因の2つであるため、それらの1つを除外することが重要です。

技術的にあなたが示しているのはeno1おそらくイーサネットです。しかし、電力線ネットワーキングのような奇妙なものはまだ使用できます。

可能であれば、他の人があなたのルーターにpingを送るようにしてください。いいねhttps://www.thinkbroadband.com/broadband/monitoring/quality つまり、あなたの回線が一般的なツールでかなりのパケット損失を示している場合、これはおそらくあなたの回線にパケット損失があるからです:-).これは、ルーターのファイアウォールがpingを許可するかどうかに応じて設定できます。

3)パケットキャプチャはWiresharkです。 Windowsで生成されたpingパケットはLinuxとは異なるように見えますか? (WiresharkはWindows内で実行する必要があるかもしれません。)我々はすでにソースIPv4アドレスとソースMACアドレスが異なると予想しています。この場合、さまざまなオプションを使用してLinux pingパケットを少し調整できます。

おすすめ記事