Interworking for WiFi6

本页介绍 MikroTik RouterOS 面向 Wi-Fi 6 的 Interworking(互通),通过 IEEE 802.11u / Hotspot 2.0 标准实现安全的网络发现和接入点选择。文中说明了配置方法、Interworking 配置档设置,以及用于增强客户端设备与接入点通信的 ANQP 元素。

Interworking for WiFi6(Wi-Fi 6 互通)

Interworking(互通)

互通是指两个或多个事物协同工作的情形。为了获得更好的无线网络体验,接入点与无线客户端设备之间必须交换网络信息。在基础的无线 beacon(信标)和 probe request(探测请求)中所能找到的信息是有限的。因此,制定了 IEEE 802.11u™-2011(与外部网络互通)标准,以规范设备之间应如何交换信息。借助互通服务,可以增强网络发现和接入点选择过程。无线客户端设备可以依据更多条件来选择要关联的无线网络。

Hotspot 2.0

Hotspot 2.0 是由 Wi-Fi Alliance(Wi-Fi 联盟)开发并拥有的规范。其设计目标是连接 Wi-Fi 网络时获得更接近蜂窝网络的体验。为了提高无线网络安全性,Hotspot 2.0 接入点强制使用 WPA2 认证。Hotspot 2.0 基于互通(Interworking)并增加了自身的一些属性和流程。

Interworking 配置档依照 IEEE 802.11u 和 Hotspot 2.0 Release 1 规范实现。

信息

本手册页面描述的是 wifi-qcom 包设备的配置。

Configuration Properties(配置属性)

信息

配置 Interworking(互通) 有两种方式。

可以在 “WiFi > Interworking” 选项卡中将其配置为 “profile(配置档)”,然后在 WiFi > WiFi 选项卡中将其应用到接口:选中 wifi 接口,然后在 “Interworking” 选项卡的 “Interworking” 字段中选择该配置档。

或者,也可以直接在接口设置中配置,无需使用 “profile(配置档)”:在 WiFi > WiFi 选项卡中选择 wifi 接口,在 “Interworking” 选项卡中配置。 Sub-menu(子菜单): /interface/wifi/interworking

Information elements in beacon and probe response(beacon 和 probe response 中的信息元素)

可以使用 Interworking 元素向 beacon 和 probe response 数据包中添加一些信息。Interworking 元素的以下参数可配置:

PropertyDescription
esr (yes | no; Default: no)Emergency services reachable(紧急服务可达,ESR)。设置为 yes 表示接入点可达紧急服务。
hessid (MAC address; Default: )同质扩展服务集标识符(HESSID)。提供对同一外部网络访问的设备属于同一个同质扩展服务集。该服务集可由 HESSID 标识,该 HESSID 在此集合中的所有接入点上都相同。HESSID 的 6 字节值以 MAC 地址形式表示。它应当全局唯一,因此建议使用服务集中某个接入点的 MAC 地址之一。
internet (yes | no; Default: yes)此连接是否可通过互联网。该信息包含在 Interworking 元素中。
network-type (emergency-only | personal-device | private | private-with-guest | public-chargeable | public-free | test | wildcard; Default: wildcard)关于网络接入类型的信息。<code>emergency-only</code> - 专用于且仅限于访问紧急服务的网络;<code>personal-device</code> - 个人设备的网络。此类网络的一个例子是连接到打印机的相机,从而形成一个用于打印照片的网络;<code>private</code> - 供拥有用户账户的用户使用的网络。通常用于企业内部员工,而非访客;<code>private-with-guest</code> - 与 private 相同,但提供访客账户;<code>public-chargeable</code> - 任何愿意付费的人都可使用的网络。例如 Hotspot 2.0 服务订阅或酒店房间内的互联网接入;<code>public-free</code> - 任何人无需付费即可使用的网络。例如城市的市政网络或机场 Hotspot;<code>test</code> - 用于测试和实验用途的网络,不用于生产环境;<code>wildcard</code> - 用于无线客户端。发送以 wildcard 作为网络类型值的探测请求,将使所有 Interworking 接入点响应,无论其实际的 network-type 设置如何。客户端发送 network-type 设为其感兴趣值的探测请求帧,将只收到具有相同值(wildcard 情况除外)的接入点的回复。
uesa (yes | no; Default: no)Unauthenticated emergency service accessible(未认证紧急服务可达,UESA)。<code>no</code> - 表示通过此接入点无法访问任何未认证紧急服务;<code>yes</code> - 表示通过此接入点可访问更高层的未认证紧急服务。
venue (venue; Default: unspecified)指定接入点所在的场所。从可用值中选择。一些示例:venue=business-bank、venue=mercantile-shopping-mall、venue=educational-university-or-college

ANQP elements(ANQP 元素)

Access network query protocol(ANQP,接入网络查询协议)。并非所有必要信息都包含在 probe response 和 beacon 帧中。为了让客户端设备在选择要关联的接入点之前获取更多信息,需要使用 ANQP。接入点可以在多个 ANQP 元素中存储信息。客户端设备将使用 ANQP 只查询其感兴趣的信息,从而缩短关联前所需的时间。

PropertyDescription
3gpp-raw (octet string in hex; Default: )蜂窝网络广告信息 - 国家和网络代码。这有助于 Hotspot 2.0 客户端选择接入点以访问 3GPP 网络。格式详见 3GPP TS 24.302(附录 H)。若被查询,此值将在 ANQP 响应中发送。
3gpp-info(number/number; Default: )蜂窝网络广告信息 - 国家和网络代码。这有助于 Hotspot 2.0 客户端选择接入点以访问 3GPP 网络。以 “mcc/mnc” 形式书写。多个 mcc/mnc 对可用逗号分隔定义。
authentication-types (dns-redirection:url | https-redirection:url | online-enrollment:url | terms-and-conditions:url; Default: )此属性仅在 asra 设置为 yes 时生效。url 的值是可选的,若选择 dns-redirection 或 online-enrollment 则不需要。要将 url 的值设为空字符串,请使用双引号。例如:authentication-types=online-enrollment:""
connection-capabilities (number:number:closed|open|unknown; Default: )此选项允许提供关于允许的 IP 协议和端口的信息,可在 ANQP 响应中提供。第一个数字代表 IP 协议号,第二个数字代表端口号。<code>closed</code> - 设置协议与端口组合不被允许;<code>open</code> - 设置协议与端口组合被允许;<code>unknown</code> - 设置协议与端口组合为开放或关闭。示例:connection-capabilities=6:80:open,17:5060:closed 在接入点上如此设置,会告知正在连接的无线客户端:HTTP(6 - TCP,80 - HTTP)被允许,VoIP(17 - UDP;5060 - VoIP)不被允许。此属性并不限制或允许这些协议和端口的使用,它只是向正在连接接入点的站点设备提供信息。
domain-names (list of strings; Default: )零个或多个完全限定域名(FQDN),用于指示运营该 Hotspot 的实体。正在连接接入点的站点可以请求此 ANQP 属性,并检查其拥有凭据的域名中是否存在后缀匹配。
ipv4-availability (double-nated | not-available | port-restricted | port-restricted-double-nated | port-restricted-single-nated | public | single-nated | unknown; Default: not-available)关于可用 IPv4 地址和访问的信息。<code>not-available</code> - 地址类型不可用;<code>public</code> - 可用公共 IPv4 地址;<code>port-restricted</code> - 可用端口受限的 IPv4 地址;<code>single-nated</code> - 可用单 NAT 私有 IPv4 地址;<code>double-nated</code> - 可用双 NAT 私有 IPv4 地址;<code>port-restricted-single-nated</code> - 端口受限 IPv4 地址和单 NAT IPv4 地址均可用;<code>port-restricted-double-nated</code> - 端口受限 IPv4 地址和双 NAT IPv4 地址均可用;<code>unknown</code> - 地址类型的可用性未知。
ipv6-availability (available | not-available | unknown; Default: not-available)关于可用 IPv6 地址和访问的信息。<code>not-available</code> - 地址类型不可用;<code>available</code> - 地址类型可用;<code>unknown</code> - 地址类型的可用性未知。
realms (string:eap-sim|eap-aka|eap-tls|not-specified; Default: )关于受支持 realm 及相应 EAP 方法的信息。realms=example.com:eap-tls,foo.ba:not-specified
realms-raw (octet string in hex; Default: )手动设置 NAI Realm ANQP 元素。
roaming-ois (octet string in hex; Default: )组织标识符(OI)通常是一个 24 位的唯一标识符,例如组织唯一标识符(OUI)或公司标识符(CID)。在某些情况下,OI 更长,例如 OUI-36。订阅服务提供商(SSP)可由其 OI 指定。roaming-ois 属性可包含零个或多个可通过此 AP 访问其网络的 SSP 的 OI。多个 OI 值可作为逗号分隔的十六进制字符串指定。例如:roaming-ois=f4f5e8f5f4,baa2D00100,baa2d00000
venue-names (string:lang; Default: )Venue name 可用于提供关于场所的额外信息,有助于客户端选择合适的接入点。Venue-names 参数由零个或多个包含场所名称和语言代码的组合构成:venue-names=CoffeeShop:eng,TiendaDeCafe:es。语言代码字段值是根据 ISO-639 选择的二或三字符语言代码。

Realms raw(原始 Realms)

realms-raw - 包含十六进制值的字符串列表。每个字符串指定 “NAI Realm Tuple” 的内容,但不包括 “NAI Realm Data Field Length” 字段。

每个十六进制编码的字符串必须包含以下字段:

- NAI Realm Encoding (1 byte)
- NAI Realm Length (1 byte)
- NAI Realm (variable)
- EAP Method Count (1 byte)
- EAP Method Tuples (variable)

例如,值 “00045465737401020d00” 解码为:

- NAI Realm Encoding: 0 (rfc4282)
- NAI Realm Length: 4
- NAI Realm: Test
- EAP Method Count: 1
- EAP Method Length: 2
- EAP Method Tuple: TLS, no EAP method parameters

注意,设置 “realms-raw=00045465737401020d00” 与设置 “realms=Test:eap-tls” 产生相同的广告内容。

完整 NAI Realm 编码参见 802.11-2016 第 9.4.5.10 节。

Hotspot 2.0 ANQP elements(Hotspot 2.0 ANQP 元素)

Hotspot 2.0 规范引入了一些额外的 ANQP 元素。这些元素使用 ANQP 厂商特定元素 ID。以下是可用于更改这些元素的属性。

PropertyDescription
hotspot20 (yes | no; Default: yes)指示接入点的 Hotspot 2.0 能力。
hotspot20-dgaf (yes | no; Default: yes)Downstream Group-Addressed Forwarding(DGAF,下游组播寻址转发)。设置 DGAF 位的值以指示是否禁用或启用发往客户端的组播和广播帧。<code>yes</code> - 发往客户端的组播和广播帧已启用;<code>no</code> - 发往客户端的组播和广播帧已禁用。要禁用组播和广播帧,请设置 multicast-helper=full。
operational-classes (list of numbers; Default: )关于同一 ESS 其他可用频段的信息。
operator-names (string:lang; Default: )设置运营商名称。每个运营商名称条目必须指定语言。Operator-names 参数由零个或多个包含运营商名称和语言代码的组合构成:operator-names=BestOperator:eng,MejorOperador:es。语言代码字段值是根据 ISO-639 选择的二或三字符语言代码。
wan-at-capacity (yes | no; Default: no)接入点或网络是否已达到其最大容量。若设置为 yes,则不允许额外的移动设备关联到 AP。
wan-downlink (number; Default: 0)WAN 连接的下行速度,以 kbps 为单位设置。若下行速度未知,设置为 0。
wan-downlink-load (number; Default: 0)在 wan-measurement-duration 期间测量的 WAN 连接下行负载。值从 0 到 255。<code>0</code> - 未知;<code>255</code> - 100%。
wan-measurement-duration (number; Default: 0)测量 wan-downlink-load 和 wan-uplink-load 的持续时间。值为 0 到 65535 的数字,表示十分之一秒。<code>0</code> - 未测量;<code>10</code> - 1 秒;<code>65535</code> - 1 小时 49 分钟或更长。
wan-status (down | reserved | test | up; Default: reserved)关于接入点 WAN 连接状态的信息。值 reserved 表示未公布状态。
wan-symmetric (yes | no; Default: no)WAN 链路是否对称(上传和下载速度相同)。
wan-uplink (number; Default: 0)WAN 连接的上行速度,以 kbps 为单位设置。若上行速度未知,设置为 0。
wan-uplink-load (number; Default: 0)在 wan-measurement-duration 期间测量的 WAN 连接上行负载。值从 0 到 255。<code>0</code> - 未知;<code>255</code> - 100%。

Other Properties(其他属性)

PropertyDescription
comment (string; Default: )配置档的简短描述
name (string; Default: )Interworking 配置档的名称。

Configuration guide using native RadSec and Orion Wifi(使用原生 RadSec 和 Orion Wifi 的配置指南)

本指南介绍如何设置 MikroTik 设备,以便与 RadSec 代理和 Orion Wifi 配合使用,但主要配置步骤保持不变,也适用于其他提供商。

建立无线 LAN 控制器与 Orion Wifi 之间的安全 RADIUS 连接非常重要。Orion Wifi 使用 RADIUS over TLS(RadSec)来确保 AAA 流量的端到端加密。

Import RadSec certificates(导入 RadSec 证书)

在此步骤中,我们将导入你应从 Orion 下载的 RadSec 证书(在 Orion 门户的 “Manage” 选项卡下,进入 “RadSec Certificates” > “Download Orion Certificates” > “Generate Client Certificate Bundle”)。

  1. 将证书拖放至 WinBox,或使用 FTP/SFTP 将其上传到路由器。

确保文件系统中包含全部 3 个证书文件(使用 /file/print 命令):

[admin@MikroTik] > /file/print
Columns: NAME, TYPE, SIZE, LAST-MODIFIED
# NAME                      TYPE       SIZE      LAST-MODIFIED      
0 bw.radsec.cacert.pem      .pem file  716       2025-08-19 15:01:56
1 key.pem                   .pem file  227       2025-08-19 15:01:54
2 cert.pem                  .pem file  895       2025-08-19 15:01:54
  1. 逐一导入证书文件。

从 RadSec CA 证书开始:

/certificate/import file-name=bw.radsec.cacert.pem passphrase=""

然后,导入客户端证书(AP 将用于 RadSec 连接):

/certificate/import file-name=cert.pem passphrase=""

最后,导入客户端证书的密钥:

/certificate/import file-name=key.pem passphrase=""

证书导入后,它们应如下所示(CA RadSec 证书应受信任,而客户端/AP 证书应被标记为 “Trusted” 和 “Private-Key”):

[admin@MikroTik] > /certificate/print
Flags: K - PRIVATE-KEY; T - TRUSTED
Columns: NAME, COMMON-NAME, SUBJECT-ALT-NAME, SKID
#    NAME                    COMMON-NAME                                      SUBJECT-ALT-NAME                                     SKID                                    
0  T bw.radsec.cacert.pem_0  Buttonwood Radsec CA                                                                                  XXYYXXYYXXYYXXYYXXYYXXYYXXYYXXYYXXYYXXY
1 KT cert.pem_0              xxxxx.yyyyyyyyyyyyyyyyyyy.orion.area120.com  DNS:xxxxx.yyyyyyyyyyyyyyyyyyy.orion.area120.com                                          

Configure Radius client(配置 Radius 客户端)

配置 RadSec 客户端:

/radius
add address=216.239.32.91 certificate=cert.pem_0 protocol=radsec radsec-timeout=1s500ms service=wireless

Setup WiFi interfaces(设置 WiFi 接口)

  1. 创建执行 802.1x 认证的无线安全配置档:
/interface/wifi/security
add authentication-types=wpa2-eap disabled=no eap-accounting=yes management-protection=allowed name=orion_password_profile wps=disable
  1. 配置 interworking 配置档(hotspot 2.0):
/interface/wifi/interworking
add disabled=no domain-names=orion.area120.com hotspot20=yes hotspot20-dgaf=yes internet=yes ipv4-availability=public ipv6-availability=not-available name=interworking network-type=public-chargeable operator-names=Orion:eng \
    realms=orion.area120.com:eap-tls roaming-ois=f4f5e8f5f4,baa2D00100,baa2d00000 venue=business-unspecified venue-names=Orion:eng wan-downlink=50 wan-status=up wan-uplink=50

警告

特别留意 “wan-downlink” 和 “wan-uplink”,在此场景中值 “50” 用作占位符,请根据你的实际设置调整这些值,部分客户端设备会使用它来评估是否应加入网络。酌情设置 “venue” - 场所类型、”venue-names” 及其他属性。”domain-names” 应为 hotspot 2.0 运营商的域名。

  1. 配置 SSID 并将安全配置档和 interworking 配置档应用到接口:
/interface/wifi
set [ find default-name=wifi1 ] configuration.country=Latvia .mode=ap .ssid=Orion disabled=no interworking=interworking security=orion_password_profile

确保配置了正确的国家配置档。本例中使用 “wifi1”,但同样的命令也适用于其他接口。

信息

Orion 用于区分网络的 NAS-id 等于系统 identity(身份标识)。要调整 nas-id,可执行 “/system/identity/set name=exampleName”。

Troubleshooting(故障排除)

要检查 RADIUS 消息的状态,可以使用 radius 菜单。

或者通过命令行运行 “/radius/monitor X”(X 为数字 ID),可用 /radius/print 查看 ID。
如需更多信息,可在 “/system/logging/add topics=radius,debug,packet” 下配置额外的日志。结果可在 “/log” 下查看。

要查看活跃的无线连接,请检查 WiFi 注册表(/interface/wifi/registration-table/print)。