4 votes

Windows 10 ne détecte pas le Wi-Fi comme connexion payante

Je souhaite que le client Wi-Fi de Windows détecte la connexion sans fil en tant que raccordement au compteur . J'ai découvert que le protocole 802.11 prend en charge les éléments d'information (IE) spécifiques au fournisseur . Ces éléments d'information sont injectés dans les trames sans fil de réponse aux balises et aux sondes.

J'ai découvert que Microsoft a défini son propre IE spécifique pour informer les clients de la connexion mesurée sur Wi-Fi ( Élément de coût du réseau ) et l'adresse de mon point d'accès hostapd prend en charge les caractéristiques propres au fournisseur.

D'après la documentation de ( Élément de coût du réseau ), j'ai ajouté un champ spécifique au fournisseur à hostapd sur mon routeur OpenWRT :

0xDD (Vendor-specific record)
0x08 (Record length : 8 bytes)
0x00 0x50 0xF2 (Vendor: Microsoft)
0x11 (OUI Type: Network Cost)
0x00 0x00 0x00 0x02 (Portable Hotspot Default: Metered network; limit unknown or not yet reached; matches Windows default for mobile broadband connections.)

hostapd sur les commandes openwrt :

ubus call hostapd.wlan24 set_vendor_elements '{"vendor_elements": "dd080050f21100000002"}'
ubus call hostapd.wlan24 update_beacon 

使用する CommView Je capture le trafic sans fil et je vois qu'en Réponse de la sonde y Balise encadre les données que j'ai fournies à hostapd (10 derniers octets).

0x0000   80 00 00 00 FF FF FF FF-FF FF XX XX XX XX XX XX   €...ÿÿÿÿÿÿXXXXXX
0x0010   EC 41 18 50 A7 35 00 8E-99 81 50 23 98 00 00 00   ìA.P§5.Ž™.P#˜...
0x0020   64 00 31 04 00 1B YY YY-YY YY YY YY YY YY YY YY   d.1...YYYYYYYYYY
0x0030   YY YY YY YY YY YY YY YY-YY YY YY YY YY YY YY YY   YYYYYYYYYYYYYYYY
0x0040   XX 01 08 82 84 8B 96 0C-12 18 24 03 01 0B 05 04   Y..‚„‹–...$.....
0x0050   00 02 00 00 2A 01 00 32-04 30 48 60 6C 30 14 01   ....*..2.0H`l0..
0x0060   00 00 0F AC 04 01 00 00-0F AC 04 01 00 00 0F AC   ...¬.....¬.....¬
0x0070   02 0C 00 0B 05 04 00 08-00 00 3B 02 51 00 2D 1A   ..........;.Q.-.
0x0080   EC 01 17 FF FF 00 00 00-00 00 00 00 00 00 00 01   ì..ÿÿ...........
0x0090   00 00 00 00 00 00 00 00-00 00 3D 16 0B 00 04 00   ..........=.....
0x00A0   00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0x00B0   00 00 7F 08 04 00 00 00-00 00 01 40 DD 18 00 50   ...........@Ý..P
0x00C0   F2 02 01 01 01 00 03 A4-00 00 27 A4 00 00 42 43   ò......¤..'¤..BC
0x00D0   5E 00 62 32 2F 00 DD 08-00 50 F2 11 00 00 00 02   ^.b2/.Ý..Pò.....

Je me connecte à cet AP et je vérifie si la connexion est mesurée en utilisant MS Powershell sur un PC Windows :

[void][Windows.Networking.Connectivity.NetworkInformation, Windows, ContentType = WindowsRuntime]
[Windows.Networking.Connectivity.NetworkInformation]::GetInternetConnectionProfile().GetConnectionCost()

Et obtenir une réponse

ApproachingDataLimit          : False
NetworkCostType               : Unrestricted
OverDataLimit                 : False
Roaming                       : False
BackgroundDataUsageRestricted : False

NetworkCostType est soit Unrestricted o Unknown au lieu de la valeur attendue Fixed .

Lorsque je configure manuellement sur le PC Windows cette connexion comme étant mesurée, powershell dit NetworkCostType : Fixed


Quelque temps plus tard, j'ai trouvé un autre AP (pas le mien, caché) qui émet des balises. Dans ces balises, j'ai trouvé cette même extension spécifique au fournisseur 0x11 por Microsoft a une longueur de 16 octets et est

DD 10 00 50 F2 11 | 01 10 02 28 2C 30 00 00 00 01 00 00
or
DD 10 00 50 F2 11 | 01 10 02 28 2C 30 00 00 00 00 00 00 (deffers 3rd byte from the end)

0x0000   80 00 00 00 FF FF FF FF-FF FF 62 45 BD 07 36 9A   €...ÿÿÿÿÿÿbE½.6š
0x0010   62 45 BD 07 36 9A 80 71-87 80 70 00 00 00 00 00   bE½.6š€q‡€p.....
0x0020   64 00 31 C6 00 00 DD 10-00 50 F2 11 01 10 02 28   d.1Æ..Ý..Pò....(
0x0030   2C 30 00 00 00 01 00 00-                          ,0......
---
0x0000   80 00 00 00 FF FF FF FF-FF FF 62 45 BD 07 36 9A   €...ÿÿÿÿÿÿbE½.6š
0x0010   62 45 BD 07 36 9A D0 B4-16 FE 38 03 00 00 00 00   bE½.6š.þ8.....
0x0020   64 00 31 C6 00 00 DD 10-00 50 F2 11 01 10 02 28   d.1Æ..Ý..Pò....(
0x0030   2C 30 00 00 00 00 00 00-                          ,0......

J'ai constaté que OUI 0x11 y Vendor 0x00 0x50 0xF2 sont les mêmes - peut-être que MS Docs est erroné ? J'ai essayé la même chose sur mon point d'accès avec le même résultat - les données sont dans les trames sans fil, mais Windows 10 ne définit pas la connexion comme étant mesurée.

Une aide ? Peut-être ai-je fait une erreur quelque part ? Peut-être que cela dépend du pilote de la technologie sans fil ? Peut-être que MS a des documents mais ne les a pas implémentés dans les systèmes de bureau ?


Paramètres Metered connection manuellement n'est pas la façon dont je veux résoudre ce problème.

2voto

Mac Points 1065
  1. Il y a une erreur dans MS Docs : Le paquet correct est DD080050F211??00**00 donde ?? es Cost Level y ** es Cost Flags

Niveaux de coûts :

  • 00 Unknown - Le coût de la connexion n'est pas connu.
  • 01 Unrestricted - La connexion est illimitée et n'est soumise à aucune contrainte d'utilisation.
  • 02 Fixed - L'utilisation est comptabilisée dans une quantité fixe de données que l'utilisateur a déjà payée (ou qu'il a accepté de payer).
  • 04 Variable - Le coût de la connexion est calculé par octet.

Drapeaux de coûts :

  • 00 Unknown - L'utilisation est inconnue ou illimitée.
  • 01 Over Data Limit - L'utilisation a dépassé la limite de données du réseau avec compteur ; d'autres coûts ou conditions de réseau peuvent s'appliquer.
  • 02 Congested - L'opérateur du réseau subit ou prévoit une charge importante.
  • 04 Roaming - La connexion tethering est en itinérance en dehors du réseau d'origine du fournisseur ou de ses affiliés.
  • 08 Approaching Data Limit - L'utilisation est proche de la limite de données du réseau avec compteur ; des coûts ou des conditions de réseau différents peuvent s'appliquer une fois la limite atteinte.

Corriger MS Docs MS-NCT


  1. Il semble que lorsque vous déclenchez manuellement le Metered connection Windows ignore 802.11 IE jusqu'à ce que vous oubliez le réseau (ou peut-être pas).

Pour le point d'accès OpenWRT, mon épique problème résultant de 4 commandes

uci add_list wireless.radio0.hostapd_options='vendor_elements=DD080050F21102000200'
uci add_list wireless.radio1.hostapd_options='vendor_elements=DD080050F21102000200'
uci commit
reboot

J'ai ajouté Fixed niveau de coût avec Congested drapeau. Je ne sais pas si le fait d'être encombré a une incidence sur la situation.

hostapd_options est un paramètre non documenté dans /etc/config/wireless (ou uci radio?.hostapd_options ), mais il existe depuis 2017

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X