So konfigurieren Sie QoS / SQM mit SRA (nahtlose Ratenanpassung) unter OpenWrt

1035
H. Idden

Vor kurzem hat mein ISP meine DSL-Leitung von Festnetz zu SRA geändert . Dies ermöglicht es dem Modem, die Geschwindigkeit des Internets an die Qualität der Leitung anzupassen, anstatt vollständig zusammenzubrechen (mein ISP ist nicht daran interessiert, die Leitung zu reparieren, deshalb führte er diesen Modus ein, da wir vorher nur eine Betriebszeit von nur 90% hatten). . Die Geschwindigkeit geht bis zur Hälfte der Höchstgeschwindigkeit hinunter. 1MBit / s statt 2MBit / s ist ein Problem, wenn mehrere Personen gleichzeitig das Internet nutzen, aber besser als kein Internet.

Bei der Konfiguration von QoS ( Quality of Service ) oder SQM ( Smart Queue Management) muss ich die Downloadgeschwindigkeit auf etwa 90% der Internetverbindung einstellen. Wenn ich sie über die tatsächliche Geschwindigkeit stelle, funktioniert sie nicht. Wenn ich sie zu niedrig eingestellt habe Es wäre schmerzhaft langsam, während es schneller sein könnte.

Da es mehrere Benutzer gibt, die die Verbindung nutzen (auch bei niedrigauflösenden YouTube-Geräten und ihren Computern, die automatische Updates durchführen, insbesondere Windows 10-PCs), ist die Verwendung des Internets für alles, was von einer hohen Latenzzeit (Ping) beeinflusst wird, wirklich ärgerlich / unmöglich ohne QoS.

Das Modem des ISP hat selbst keine QoS.

Was kann ich tun, um die Latenzzeit / Pufferrate bei maximaler Internetgeschwindigkeit niedrig zu halten?

(OpenWrt-Version ist Chaos Calmer 15.05)

2

3 Antworten auf die Frage

2
Agus Alexander

Ich hoffe du hast es jetzt schon irgendwie behoben. Falls Sie dies nicht getan haben oder jemand anderes Hilfe benötigt, habe ich folgende Lösung gefunden: Verwenden Sie Ihren openwrt-Router mit aktiviertem SQM (vorzugsweise Cake und nicht openwrt, sondern LEDE) für Ihre lag-sensitive Geräte. Verbinden Sie dann einen billigen TP-LINK (Standardfirmware) von dessen WAN-Port mit dem LAN-Port Ihres openwrt / LEDE-Routers und aktivieren Sie die Funktion: Beschränken Sie die Bandbreite auf tplink. Stellen Sie die halbe Gesamtgeschwindigkeit ein und starten Sie mehrere Instanzen von YouTube Netflix Torrent usw. in Ihrem Tplink-Routernetzwerk. Öffnen Sie anschließend Ihre lag-sensitiven Programme in Ihrem Hauptnetzwerk (openwrt / LEDE) und messen Sie die Verzögerung. Wenn der Grenzwert (hauptsächlich Upload) auf Ihrem TPLINK zu hoch ist, wenn er zu niedrig ist, drücken Sie ihn nach oben, bis er sich auf Ihren Ping usw. auswirkt, und Sie müssen das richtige Gleichgewicht finden.

Wenn Sie die volle Bandbreite für Ihr Gäste-WLAN wünschen, deaktivieren Sie die Bandbreitenbegrenzung. Wenn Sie die Verzögerung nicht ertragen können, schalten Sie sie ein: D

Dies ist nicht die beste Lösung, vielleicht könnten Sie versuchen, Pf-sense / IPFIRE qos / sqm aufzuteilen, um die Bandbreite zu teilen, aber Sie brauchen dafür einen zusätzlichen PC.

Viel Glück!!

1
H. Idden

Was ich am Ende tat, war:

Ich habe ein Skript geschrieben, das jede Minute auf dem openwrt-router läuft, um die aktuelle Bandbreite vom Modem abzurufen, zieht einen gewissen Spielraum ab und wendet diesen Wert auf die SQM-config an

In case anyone else has this issue, here is the script I wrote. I am new to lua and programming on OpenWrt, so expect errors, but maybe it will help others.

http=require'socket.http' body,c,l,h = http.request('http://modem/page_showing_current_speed')  bandwidth = "%[kbps/kbps%]:</td><td colspan='3'>[%d.]+ / [%d.]+</td></tr>" bw_s = string.sub(body, string.find(body, bandwidth)) bandwidth = "[%d.]+ / [%d.]+" bw_s = string.sub(bw_s, string.find(bw_s, bandwidth)) upload_r = "[%d.]+ " upload = string.sub(bw_s, string.find(bw_s, upload_r)) upload_r = "[%d.]+" upload = string.sub(upload, string.find(upload, upload_r)) upload = upload:gsub("%.", "") download_r = " [%d.]+" download = string.sub(bw_s, string.find(bw_s, download_r)) download_r = "[%d.]+" download = string.sub(download, string.find(download, download_r)) download = download:gsub("%.", "") print(upload) print(download) f = io.open("/etc/config/sqm", "rw") content = f:read("*all") f:close(f) oldcontent = content content = content:gsub("option download '%d+", "option download '" .. download) content = content:gsub("option upload '%d+", "option upload '" .. upload) if content == oldcontent then else print(content) f2 = io.open("/etc/config/sqm", "w") f2:write(content) f2:flush(f2) f2:close(f2)  os.execute("/etc/init.d/sqm restart") end 

then run:

opkg update opkg install luasocket crontab -e * * * * * lua /adjustsqm.lua /etc/init.d/cron restart 

it gets the current speed from the modem every minute and writes it into the sqm configuration

Kannst du bitte dein Skript teilen? valentt vor 7 Jahren 0
@valentt Es ist alles andere als perfekt und muss an den Modemtyp angepasst werden, aber ich habe es als Ausgangspunkt hinzugefügt H. Idden vor 7 Jahren 0
0
valentt

Installieren Sie die Gargoyle-Firmware auf Ihrem Router. Das adaptive QOS sollte konfiguriert sein, sodass Sie es nur aktivieren und verwenden müssen.

Ich kann nicht garantieren, dass es funktioniert, also machen Sie bitte Ihre eigenen Tests und berichten Sie zurück.