Como configurar o QoS / SQM com SRA (adaptação de taxa contínua) no OpenWrt

2

Recentemente, meu ISP mudou minha linha DSL de taxa fixa para SRA . Isso permite que o modem adapte a velocidade da internet à qualidade da linha em vez de quebrar completamente (meu ISP não está interessado em reparar a linha, então ele introduziu esse modo porque antes tínhamos um tempo de atividade de apenas 90%) . A velocidade diminui para e abaixo da metade da velocidade máxima. 1MBit / s em vez de 2MBit / s é uma dor quando se tem várias pessoas ao mesmo tempo usando a Internet, mas melhor do que sem internet.

Ao configurar o QoS ( Qualidade de serviço ) ou o SQM ( Gerenciamento inteligente de filas Eu preciso definir a velocidade de download para cerca de 90% da conexão com a Internet. Se eu configurá-lo acima da velocidade real, ele não funcionará. muito baixo, seria dolorosamente lento enquanto poderia ser mais rápido.

Como há várias pessoas usando a conexão (também vendo o youtube de baixa resolução e suas máquinas fazendo atualizações automáticas, especialmente PCs com Windows 10), usar a Internet para qualquer coisa que seja influenciada por alta latência (também conhecido como ping) é realmente irritante / impossível sem QoS.

O modem do ISP não possui nenhuma QoS por si só.

O que posso fazer para manter o latency / bufferbloat baixo enquanto maximizo a velocidade da internet?

(a versão OpenWrt é Chaos Calmer 15.05)

    
por H. Idden 15.08.2016 / 19:53

3 respostas

1

O que acabei fazendo foi:

Eu escrevi um script que é executado no roteador openwrt a cada minuto para obter a largura de banda atual do modem, subtrai algumas margens e aplica esse valor ao SQM-config

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

    
por 14.09.2017 / 20:21
2

Espero que você já tenha consertado de alguma forma até agora. Mas se você não tem ou alguém precisa de ajuda com isso, a solução que eu encontrei é a seguinte: Use o seu roteador openwrt com o SQM ativado (de preferência bolo e não openwrt, mas LEDE) para seus dispositivos sensíveis à latência. Em seguida, conecte um cheapo TP-LINK (firmware de estoque) da sua porta wan na porta lan do roteador openwrt / LEDE e ative o recurso: restrinja a largura de banda no tplink. Configure a metade da sua velocidade total e ative várias instâncias de torrent do YouTube Netflix, etc., em sua rede de roteadores tplink. Em seguida, abra seus programas sensíveis à latência em sua rede principal (openwrt / LEDE) e meça o atraso. Se muito alto diminuir o limite (principalmente upload) em seu TPLINK, se for muito baixo, empurre-o até que isso afete seu ping e assim por diante, você precisa encontrar o equilíbrio certo. Como uma nota lateral, você não poderá acessar sua página de roteadores tplinks pelo openwrt, então você pode querer entrar na configuração remota e configurá-la para 255.255 255 255 e definir o endereço wan como static para que possa ser acessado a partir de sua caixa openwrt / LEDE .

Quando você deseja largura de banda total para seu convidado, você desabilita o limite de largura de banda. Quando você não aguenta o atraso, ligue-o: D

Esta não é a melhor solução, talvez você possa testar qos / sqm Pf-sense / IPFIRE para dividir a largura de banda e outras coisas, mas você precisa de um PC extra para isso.

Boa sorte !!

    
por 04.08.2017 / 08:47
0

Tente instalar o Gargoyle Firmware no seu roteador, ele deve ter um QOS adaptável configurado para que você só precise ativá-lo e usá-lo.

Não posso garantir que funciona, por isso, faça os seus próprios testes e reporte-se.

    
por 01.11.2017 / 22:32