SSH hang en pakketverlies in lokaal netwerk

Ik ben onlangs een zeer frustrerend probleem tegengekomen op mijn raspberry pi 2. Alles is prima sinds de eerste installatie (~ 5 weken). Ik heb een verborgen SSID van WiFi, maar toen ik eenmaal wist hoe ik dat moest instellen met de Pi, werkte alles geweldig.

Plotseling kreeg ik vanmorgen 50-70% pakketverlies met ping (LAN of WAN) en verbinding via SSH via LAN (wifi) was extreem traag en laggy.

pinging any local machine that was connected to my network via wifi or ethernet was giving large packet loss. Connecting via SSH with PuTTY was slow to connect (~10s) and after I connected, typing would be extremely slow and laggy, and would often freeze up entirely. I hooked the Pi back up via HDMI to troubleshoot, and typing was fine in the terminal (so it wasn't just my Pi being slow).

Om een ​​lang verhaal kort te maken, eindigde ik met het opzetten van een statisch IP-adres op de Pi en op mijn router, wat blijkbaar zowel het pakketverliesprobleem als de trage SSH-problemen (die natuurlijk verband houden) heeft opgelost. Mijn vraag is:

  • waarom kan dit probleem optreden?
  • Welke diagnostiek kan ik de volgende keer dat dit gebeurt, proberen om de oorzaak te achterhalen?
  • Waarom wordt het probleem opgelost door een statische IP in te stellen?

Hier is mijn setup en configuratie:

  • Model: Raspberry Pi 2 Model B +
  • Linux-versie: Raspbian Wheezy, Linux rpi 4.1.7-v7 + # 817 SMP PREEMPT za sep 19 15:32:00 BST 2015 armv7l GNU/Linux
  • WiFi-adapter: Canakit WiFi-dongle en RT5370-chipset

/etc/networking/interfaces:

auto lo

iface lo inet loopback
iface eth0 inet static

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wireless-power off

iface default inet static
address 192.168.1.8
netmask 255.255.255.0
gateway 192.168.1.1

/etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="mywifissid"
        scan_ssid=1
        psk="mypassword"
        mode=0
        proto=WPA2
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        auth_alg=OPEN
        id_str="rpi"
        priority=1
}

network={
        ssid="guestnetwork"
        psk="guestpassword"
        key_mgmt=WPA-PSK
        disabled=1
}
1
Wanneer dit soort dingen met mij gebeurt, kill en herstart ik meestal de dhcp-client, hoewel dit meestal alleen gebeurt op computers die daadwerkelijk kunnen slapen (d.w.z. kunnen verdwijnen van het netwerk). Maar weet je niet hoe dat te doen met de normale netwerkconfiguratie, probeer dan service dhcpd restart . Moeite waard om te overleggen: raspberrypi.stackexchange.com/q/37920/5538
toegevoegd de auteur David Harris, de bron
wat zegt output van ip addr ? Ik had een probleem waarbij mijn wlan0 2 ip-adressen had toegewezen en het veroorzaakte een aantal problemen zoals deze.
toegevoegd de auteur Sunil Kumawat, de bron
wat is de kwaliteit op WiFi? Kan worden gecontroleerd met "iwlist wlan0 scan".
toegevoegd de auteur Baby in Database, de bron

1 antwoord

Dit is misschien niet jouw probleem, maar ik heb rare dingen gezien wanneer twee Linux IP-interfaces (zoals eth0 en wlan0) zich op hetzelfde subnet bevinden (192.168.1. *). Sends kan één interface uitgeven en resons komen op de andere. De IP-pakketten werden aan TCP OK gegeven, maar de asymmetrie veroorzaakte TCP/IP-stack interne problemen die vertragingen, time-outs en verbroken verbindingen veroorzaakten.

Mijn oplossing voor bedrade en draadloze LAN's verbonden met een systeem is om verschillende subnetten te gebruiken, bijvoorbeeld 192.168.1. * En 192.168.2. *. Het IP-adres van het subnet wordt meestal geconfigureerd met behulp van een webinterface voor elke bekabelde/draadloze router. Hiermee configureert u de DHCP-server in de router.

0
toegevoegd
Dit is interessant. Kunt u uw antwoord bewerken om op te nemen hoe u dit probleem kunt oplossen?
toegevoegd de auteur user2260287, de bron
Dit gebeurt niet, de routeringstabel heeft verschillende statistieken voor de verschillende interfaces. Controleer met "route -n" en kijk wat de metriekkolom zegt voor de verschillende interfaces.
toegevoegd de auteur Baby in Database, de bron