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("플러드 핑" 등) Google에서는 비용을 지불하지 않는 한 그렇게 해서는 안 됩니다 :-). 대신 traceroute 8.8.8.8ISP 내에서 첫 번째 또는 두 번째 IPv4 주소를 찾는 데 사용됩니다 . (ISP 내의 첫 번째 항목은 아마도 라인 번호 3일 것입니다. 핑 시간도 단서가 될 수 있습니다). Traceroute 결과에 속지 않도록 주의하세요. 이는 전문가를 위한 도구입니다.

2) 문제가 로컬 라우터의 핑에도 적용되는지 확인하여 이것이 얼마나 이상한지 구체적으로 확인하십시오. 좋은 비교를 얻을 수 있도록 두 테스트를 나란히 실행하십시오. (단, 한 번에 하나씩 실행하는 것과는 다른 결과가 나올 수 있다는 점을 명심하세요)

직접 이더넷을 사용한다고 말하지 않으셨기 때문에 위의 질문은 매우 중요한 질문입니다. 일반적으로 Wi-Fi 이상 또는 ISP 이상을 배제하려고 합니다(또는 최소한 배제하려고 시도).오직문제의 원인). 이는 홈 네트워크 사용 시 가장 일반적인 문제 원인 중 두 가지이므로 그 중 하나를 배제하는 것이 중요합니다.

기술적으로 여러분이 보여주고 있는 것은 eno1아마도 이더넷일 것입니다. 그러나 전력선 네트워킹과 같은 이상한 것들을 여전히 사용할 수 있습니다.

가능하다면 다른 사람이 귀하의 라우터에 ping을 보내도록 하십시오. 좋아요https://www.thinkbroadband.com/broadband/monitoring/quality 즉, 귀하의 회선이 일반 도구에서 상당한 패킷 손실을 보인다면 이는 아마도 귀하의 회선에 패킷 손실이 있기 때문일 것입니다 :-). 이는 라우터의 방화벽이 핑을 허용하는지 여부에 따라 설정이 있을 수 있습니다.

3) 패킷 캡처는 Wireshark입니다. Windows에서 생성된 ping 패킷이 Linux와 다르게 보입니까? (Wireshark는 Windows 내에서 실행해야 할 수도 있습니다.) 우리는 이미 소스 IPv4 주소와 소스 MAC 주소가 다를 것으로 예상했습니다. 이 경우 다양한 옵션을 사용하여 Linux ping 패킷을 약간 조정할 수 있습니다.

관련 정보