Nicht selten wollen Geräte über das WLAN einfach nicht stabil funktionieren und verlieren die Verbindung. In diesem Fall geht es um Mobilteile „WP810“ vom Anbieter „Grandstream“. Diese waren immer mal wieder offline und der SIP-Account für die Telefonie hat sich nicht immer selber wieder verbunden. Da half es auch nichts, wenn diese irgendwann wieder von selber mit dem WLAN verbunden gewesen sind.
Gängige Lösungen für stabilere WLAN-Verbindung
Folgende Punkte sollte man meiner Meinung nach bei Problemen mit der WLAN-Verbindung immer als erstes testen:
- Energiesparmodi der betroffenen Geräte möglichst komplett abschalten
- Feste IP-Adresse vergeben, auf dem Gerät eintragen und den DHCP auf den Geräten ausschalten
- Die IP-Adresse sollte also gar nicht vom DHCP verwaltet werden, sondern vom DHCP-Bereich komplett ausgenommen werden
- DNS-Einträge prüfen, wenn das Gerät über den Namen angesprochen wird und im DNS auch auf jeden Fall feste die IP-Adresse hinterlegen
- Wiederholungen für gescheiterte Verbindungen/Logins auf das Maximum hochstellen, in diesem Fall waren das leider nur wenige Versuche für den SIP-Login
- Keep-Alive-Pakete auf ein Maximum erhöhen, bzw. Zeitabstände zwischen den Paketen heruntersetzen
Im Fall der „Grandstream“-Mobilteile haben diese Anpassungen zwar für Verbesserung gesorgt, aber das Problem leider nicht komplett beheben können.
Alternative Lösung für stabilere WLAN-Verbindung
Deshalb habe ich eine leider sehr pragmatische Fehlerbehebung für das WLAN-Verbindungsproblem gewählt, die oftmals gute Ergebnisse erzielt. Da die Verbindung über das WLAN stabiler zu sein scheint, solange man die Geräte anpingt und man diese dadurch zwingt die Verbindung auf jeden Fall aufrecht zu erhalten, habe ich für die betroffenen IP-Adressen das folgende PowerShell-Script geschrieben und lasse dieses dauerhaft von einem Windows Server aus laufen.
Das PowerShell-Script pingt abwechselnd die IP-Adressen der betroffenen Geräte an. Hierzu wird einfach durch eine Liste von IP-Adressen gelooped. Die IP wird jeweils angepingt und das Ergebnis zur Nachvollziehbarkeit in ein Logfile geschrieben. Damit man durch das Log nicht zu viel Datenmüll erzeugt, werden diese nach einer Woche gelöscht:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# mit diesem Skript werden die blöden Mobilteile durchgehend angepingt, damit die Verbindung nicht abbricht # Pfad fuer log $path = "C:\Log\" $logName = "ping" # IP-Adressen, die angepingt werden soll $IPs = "192.168.1.1","192.168.1.2" # Endlosschleife fürs Anpingen while ($true) { foreach ($IP in $IPs ){ # Ping-Befehl ausführen und Ergebnis speichern $result = Test-Connection -ComputerName $ip -Count 1 -Quiet # Datum und Uhrzeit erfassen $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $date = Get-Date -Format "yyyy-MM-dd" $logFile = $path + $logName + "-" + $IP + "-" + $date + ".log" # Ergebnis in die Logdatei schreiben if ($result) { $logEntry = "$timestamp - $ip ist erreichbar" } else { $logEntry = "$timestamp - $ip ist nicht erreichbar" } # Logeintrag in die Datei schreiben Add-Content -Path $logFile -Value $logEntry # Wartezeit von 1 Sekunde vor dem nächsten Ping Start-Sleep -Seconds 1 } # Logs die eine Woche alt sind löschen Get-ChildItem -Path "C:\Log" -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) -and $_.Name -like "*ping*" } | Remove-Item } |
Leider ist dies meiner Meinung nach eine technisch unschöne Lösung und auch unter Umweltaspekten bzgl. des Energiesparmodus alles andere als toll, aber andauernd Tickets zu nicht verbundenen Mobilteilen bzw. WLAN-Störungen sind auch keine Option und kein ITler hat Zeit für so einen Krampf.