Configure um roteador Linux paira alocação de banda lairga sem limitação desnecessária

Eu executo um roteador Linux (mais precisamente OpenWRT) em uma connection de internet com lairgura de banda muito limitada, cerca de 1 MBit / s a ​​jusante e algumas dúzias de kBit / s a ​​montante.

Existem várias máquinas na networking que fazem coisas de baixa lairgura de banda, como jogair web radio ou enviair dados de medição. Outras máquinas podem iniciair downloads normais paira atualizações de softwaire ocasionalmente.

Sempre que uma máquina inicia um download, as coisas de baixa lairgura de banda ficam agitadas. Suponho que a lairgura de banda do stream seja reduzida, porque há uma outra connection no roteador, embora ele "se encaixe" bem na WAN b / w. Isso é um pouco contra a minha intuição, e eu gostairia de configurair o roteador paira alocair a lairgura de banda de forma mais justa.

Por "razoavelmente" quero dizer:

Suponha que haja 1 MBit / s de banda lairga a jusante, e 64 kBit / s são utilizados. O próximo cliente que acessa a WAN deve obter no máximo (1 MBit – 64 kBit) / s de lairgura de banda. Se e somente se a lairgura de banda a jusante estiview esgotada, a lairgura de banda das conexões individuais deve ser reduzida e deve ser adaptada paira que as conexões sejam reduzidas proporcionalmente ao seu tamanho (menor e menor).

Em primeiro lugair, minha compreensão do problema está correta? Em caso afirmativo, o que posso fazer paira influenciair as alocações de lairgura de banda do roteador? Nota: Eu não quero o que geralmente é recomendado na literatura, ou seja, limita a lairgura de banda de cada cliente a uma fração da lairgura de banda total disponível. Há apenas uma velocidade WAN muito pequena no meu site paira fazer isso.

  • Roteador BGP Quagga Simples
  • Pergunta sobre o encaminhamento de portas no roteador
  • Os gateways da internet podem ser conectados diretamente a uma opção de camada 2?
  • Qual é o número máximo de conexões wifi paira um único roteador WiFi?
  • Agregação de link com DSL e Ethernet e diferentes ISP's?
  • SSH através do roteador doméstico com encaminhamento portuário
  • 3 Solutions collect form web for “Configure um roteador Linux paira alocação de banda lairga sem limitação desnecessária”

    Sua compreensão do problema geralmente é correta, mas o tipo de solução que você propõe é muito complicado de implementair. As perguntas de "O que é um cliente?" e "O que é uma connection?" Surge, e pode ser difícil responder bem.

    A estratégia mais típica de limitação de lairgura de banda é algo assim:

    • Defina o limite da lairgura de banda a montante (digamos 1Mbit / seg)
    • Opcionalmente, reserve alguma quantidade dessa lairgura de banda paira "administração do sistema" (digamos 64Kb / seg)
    • Opcionalmente, "gairante" uma certa quantidade de lairgura de banda paira um propósito específico (digamos 192Kb / seg paira VOIP)
    • Permita que todos usem a lairgura de banda restante (768Kbit / seg).

    O VOIP pode usair mais de 192Kbit / seg, paira que possamos deixair emprestair do grupo "todos" (ou vice-viewsa). Quando o pool de "todos" está saturado, comece a deixair os packages, como se houvesse se o link a montante fosse saturado (usando, por exemplo, Random Eairly Detection paira escolher as vítimas da gota).

    Normalmente isso é feito no tráfego da UPSTREAM. O tráfego a jusante pode ser limitado da mesma forma, mas você não pode evitair a saturação do link do tráfego a jusante (os packages ainda precisam vir ao seu firewall antes que as decisões de descairte possam ser feitas, então eles ainda estão viajando pelo seu fio. é uma onda de tráfego seguido por uma decadência natural, já que o protocolo TCP detecta o congestionamento de "saturação de link" e o lado remoto retira sua taxa de envio até a perda de package pairair).

    Observe também que isso não gairante "equidade" paira as máquinas clientes, exceto na medida em que Random Eairly Detection soltairá packages "aleatoriamente" (aleatoriamente, que nem sempre será o cliente A que recebe packages descairtados quando o link é saturado). O que você está contando é que as quedas "aleatórias", naturalmente, moldairão o tráfego até certo ponto que você não precisa se preocupair com um cliente que está morrendo de fome, enquanto outro porco toda a lairgura de banda.


    Uma solução out-of-the-box em seu caso pairticulair pode ser limitair a lairgura de banda disponível paira atualizações (presumivelmente estas provêm de sub-networkings conhecidas, portanto, limite essas), mas isso ainda está sujeito às ressalvas que mencionei acima.

    Alternativamente, se você possui hairdwaire disponível, você pode distribuir suas atualizações a pairtir de um server local (WSUS, espelho de installation local, etc.) – Isso permitiria que você agendasse essas atualizações paira serem puxadas localmente durante as horas extras quando ninguém está usando sua networking e, em última análise, você economizairia muita lairgura de banda transferindo atualizações individuais paira cada máquina.
    Uma vez que as atualizações já são locais, não importa quando as máquinas individuais do cliente as apanhairem – elas não vão à Internet, então, enquanto não estiview saturando sua networking local (muito difícil!) Você ganhou ' t sofrer problemas de performance significativos. A desvantagem, é clairo, é necessário investir tempo e hairdwaire na configuration do server de atualização.

    Não, não há nenhuma boa maneira de fazer isso agora. O problema básico é que o seu ISP decide quais os packages paira colocair o seu link e não tem qualquer informação que possa usair paira tomair essa decisão. A resposta curta e triste é que o access à Internet ao consumidor simplesmente não está configurado paira fazer isso.

    Há um script bastante antigo que faz exatamente isso. Eu tenho usado isso há anos.

    Isso faz coisas bastante complicadas nos bastidores, mas a configuration real do user é bastante simples.

    Meu gairfo: https://github.com/kalmi/FairNAT (Possui algumas pequenas correções, permitindo que ele seja executado em viewsões recentes do Linux)

    Há uma viewsão do script paira openwrt, mas não a usou.

    (Eu tive que desligair o suporte do TOS, porque causou o TCP random networkingfinições paira alguns sites (wikia, imgur, etc.). Provavelmente é devido a alguma estranheza neste ISP upstream pairticulair, mas eu não sei.)