Vytvoření Wi-Fi sítě s příznakem „metered“

Tom K

Vytvoření Wi-Fi sítě s příznakem „metered“
« kdy: 30. 04. 2023, 07:13:48 »
Mám wifi router s AsusWRT, USB donglem a SIM s datovým limitem, použití o víkendech na chatě.
Rád bych vytvořenou wifi označil hintem "metered", aby zařízení o limitu věděla a nestahovala zbytečnosti jako aktualizace aplikací a Windows Update. Lze sice ručně nastavit na každém zařízení, ale nepraktické - proto chci aby se Wifi chovala jako hotspot v mobilu, který toto obvykle(?) umí.
« Poslední změna: 30. 04. 2023, 07:26:42 od Petr Krčmář »


Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #1 kdy: 30. 04. 2023, 07:31:27 »
Ta informace se v síti šíří pomocí DHCP. Android posílá v režimu hotspot svým klientům volbu číslo 43 s hodnotou ANDROID_METERED. Je tedy potřeba to nastavit v konfiguraci místního DHCP stejně.

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #2 kdy: 30. 04. 2023, 10:43:10 »
Ja by som Petrovu odpoveď ešte trocha rozšíril.

Flag ANDROID_METERED je DHCP option 43, čo je vendor option; t.j. význam tohto parametra závisí od výrobcu zariadenia. Takže:

  • zariadenie si v DHCP požiadavke musí vypýtať option 43. Pokiaľ v Parameter-List nie je požiadavka na Vendor-Specific, tak ho v odpovedi nedostane.
  • zariadenie v DHCP požiadavke posiela svojho vendora, v hlavičke Class-Id. DHCP server podľa tejto hlavičky vie, akú množinu parametrov v skupine Vendor-Specific poslať späť. Pre každého vendora môže mať iné parametre, a každý vendor intepretuje jednotlivé parametre inak!
  • Android to robí zaujímavejšie tým, že každá verzia má iného vendora, t.j. iný Class-id (napr. "android-dhcp-12", "android-dhcp-11"), takže ak používaný DHCP server nevie zástupné znaky, tak to treba povytvárať viackrát (viď príklad nižšie).
  • Prekvapivo, tento option podporuje aj Microsoft vo Windows (Class-id "MSFT 5.0"). Iné desktopové systémy, ako macOS alebo desktopové linuxy si tento option ani nepýtajú, ani by s ním nijako nepracovali, keby im prišiel.
  • ANDROID_METERED nie je štruktúrovaný ako ostatné parametre 43. Nemá očíslovaný tag parametra, je to iba reťazec, poslaný na hulváta.
Na Mikrotiku konfigurácia vyzerá takto:

Kód: [Vybrat]
/ip dhcp-server option
add code=43 name=android-metered value="'ANDROID_METERED'"

/ip dhcp-server option sets
add name=android options=android-metered

/ip dhcp-server matcher
add address-pool=dhcp code=43 name=android12 option-set=android server=defconf value=android-dhcp-12
add address-pool=dhcp code=43 name=android11 option-set=android server=defconf value=android-dhcp-11
add address-pool=dhcp code=43 name=android10 option-set=android server=defconf value=android-dhcp-10
add address-pool=dhcp code=43 name=android9 option-set=android server=defconf value=android-dhcp-9

Či ASUS Toma K také niečo umožňuje, si bude musieť zistiť sám.

Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #3 kdy: 01. 05. 2023, 09:49:28 »
Android to robí zaujímavejšie tým, že každá verzia má iného vendora, t.j. iný Class-id (napr. "android-dhcp-12", "android-dhcp-11"), takže ak používaný DHCP server nevie zástupné znaky, tak to treba povytvárať viackrát (viď príklad nižšie).
Je tohle opravdu potřeba? Pokud nemám v síti žádné jiné zařízení, které vyžaduje volbu 43 s nějakým specifickým obsahem, asi není problém posílat ANDROID_METERED všem zařízením, co si o volbu 43 požádají. Nebo ano?

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #4 kdy: 01. 05. 2023, 19:09:16 »

Je tohle opravdu potřeba? Pokud nemám v síti žádné jiné zařízení, které vyžaduje volbu 43 s nějakým specifickým obsahem, asi není problém posílat ANDROID_METERED všem zařízením, co si o volbu 43 požádají. Nebo ano?

Keď to DHCP server dovolí, tak prečo nie. Niektoré sú príliš chytré a snažia sa príliš pomáhať, preto smerujú používateľov rozdeliť parametre podľa class-id. Taký dnsmasq umožňuje dhcp-option=vendor:,hodnota (t.j. prázdny vendor, ktorý sa použije pre každého), ale UI v rozličných zariadeniach to nemusia povoliť, aj keď používaju dnsmasq pod kapotou.


Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #5 kdy: 02. 05. 2023, 13:00:06 »
Ještě funguje jedna cesta, přímo v nastavení WiFi sítě přidat jeden vendor element, který indikaci měřeného připojení posílá (odzkoušeno, že na Androidu to funguje). Na druhou stranu to není 100%, některé věci stejně budou stahovány i při tomto příznaku pro zařízení...

Např. u OpenWRT se v sekci
Kód: [Vybrat]
config wifi-device 'radioXXX'
přidává
Kód: [Vybrat]
list hostapd_options 'vendor_elements=DD080050F21102000200'

nebo (s podporou starších verzí Network Manager <= 1.31.5 )
Kód: [Vybrat]
list hostapd_options 'vendor_elements=DD080050F21102000202'

Příklad použití:

Kód: [Vybrat]
uci add_list wireless.radio0.hostapd_options='vendor_elements=DD080050F21102000200'
uci add_list wireless.radio1.hostapd_options='vendor_elements=DD080050F21102000200'
uci commit
Detaily lze nalézt na https://openwrt.org/docs/guide-user/network/wifi/ms-meteredconnection

Tom K

Re:Vytvoření Wi-Fi sítě s příznakem „metered“
« Odpověď #6 kdy: 02. 05. 2023, 14:56:22 »
Pokud to chápu správně (prvá možnost s DHCP option 43), tak nemusím řešít která verze androidu atd, ale mohu použít force:

Kód: [Vybrat]
--dhcp-option-force=43,"ANDROID_METERED"(nevím zda ty uvozovky - dle dhcpmasq man tam patří)

Mikrotik prý --dhcp-option-force neumí, proto ty obezličky jak píše "já."
Jdu testovat.