Jak omezit linkovou rychlost wifi

Hamparle

  • ****
  • 330
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Jak omezit linkovou rychlost wifi
« kdy: 18. 03. 2021, 11:20:28 »
Zdravíčko, potřeboval bych omezit rychlost dat na síti (na 802.11n 20MHz  1x1). Přijde mi nejtransparentnější to udělat tak, že na daném síťovém rozhraní prostě nebude dostupná rychlosti wifi 72Mbps, ale řekněme třeba jen 45 (Nevím jestli půjdou omezit ingress a egress oboje a dokonce i nezávisle, můj odhad je, že RX neovlivním, to je věc protějšího uzle). Nebude potřeba žádný wondershaper.



Jak se toto nastaví? Půjde to pomocí iw?


Hamparle

  • ****
  • 330
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Jak omezit linkovou rychlost wifi ; OPera
« Odpověď #1 kdy: 18. 03. 2021, 11:53:42 »
Kód: [Vybrat]
sudo iw dev  wlan0 set bitrates ht-mcs-2.4 3
command failed: Operation not supported (-95)
sudo iw dev  phy0 set bitrates legacy-2.4 18
command failed: Operation not supported (-95)
Půjde s tím něco dělat? (Zkoušel jsem i po  ip link set down wlan0)

A co případně RX strana mince?
« Poslední změna: 18. 03. 2021, 11:55:22 od Hamparle »

Re:Jak omezit linkovou rychlost wifi
« Odpověď #2 kdy: 18. 03. 2021, 11:55:02 »
man tc

Hamparle

  • ****
  • 330
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Jak omezit linkovou rychlost wifi
« Odpověď #3 kdy: 18. 03. 2021, 11:56:36 »
man tc
Rozumím, ale říkal jsem, že wondershaper jsem zkoušel a ten interně  používá tc class, tc qdisc.

J ouda

  • ***
  • 130
    • Zobrazit profil
    • E-mail
Re:Jak omezit linkovou rychlost wifi
« Odpověď #4 kdy: 18. 03. 2021, 16:04:26 »
Oba směry samozřejmě jdou. dělá se to přes něco jako (UTFDDG - kdesi je na to hezký návod)
ifconfig ifb0 up
tc qdisc add dev wifi0 ingress handle ffff:
tc filter add dev wifi0 parent ffff: protocol ip u32 match u32 0 0 action connmark action mirred egress redirect dev ifb0 flowid ffff:1



Re:Jak omezit linkovou rychlost wifi
« Odpověď #5 kdy: 18. 03. 2021, 16:12:33 »
Jaká je motivace a cíl? Podle toho použijete vhodné řešení.

Linkovou rychlost nastavíte přímo wifině. Wifi je half-duplex, takže se o pásmo dělí upstrem i downstream. Čili pokud linku omezíte, ovlivníte tím oba směry a zhoršíte latenci při vytížení linky. Omezit rychlost má smysl hlavně v zarušeném prostředí nebo při slabém signálu - získáte stabilnější linku (spolu se zvýšením retry limit a nastavením pásma pouze na 2.4GHz to často pomůže dosáhnout pomalé, ale funkční linky). Rychlost nastavíte na AP nebo na klientovi. Na AP se to projeví u všech spojení, na klientovi jen u toho jednoho wifi spojení. Případně lze ovlivňovat i existující spojení a najít pokusem omylem nějaké optimum, pomocí příkazů iw - záleží na podpoře karty a driveru, možná budete muset vynutit reasociaci k AP.

Pokud ale chcete mít dobrou latenci z toho jednoho a samého klienta, potřebujete mít naopak wifi linku co nejrychlejší a omezit tcp/ip datový tok u nedůležitých spojení (co je nedůležité si musíte definovat). Zde nastupuje QOS a případně různé další shapery (tc). Dobře to nastavit může být náročnější úkol než se na první pohled zdá. Pro domácí potřeby bych zkusil kouknout, zda AP zařízení nemá něco takového integrovaného. Dnes to mají i nejlevnější AP routery. Pokročilejší zařízení mají další funkce, které se mohou hodit (Mikrotik...). Ten ingress se řídí obtížněji a linka reaguje hůře než u outgress, ale jde to.