NAWDS
简介
基本概念
NAWDS:Non-Association WDS (无关联wds),与基于关联的WDS相比,NAWDS链路的建立不需要经过802.11关联过程。
NAWDS AP:NAWDS AP是启用了NAWDS功能的AP,支持WDS 4地址通信。根据是否发送信标,NAWDS AP可以是NAWDS Repeater 或NAWDS Bridge
NAWDS Repeater
NAWDS中继器发送信标并支持IEEE802.11关联过程,允许STA连接到它。关联/连接到中继器的STA和PC可以通过NAWDS链路到达对端NAWDS AP中的其他STA/PC
NAWDS Bridge
NAWDS网桥不发送信标。连接到网桥的PC可以通过NAWDS链路到达对等NAWDS AP中的其他STA/PC
Static NAWDS Repeater/Bridge
静态NAWDS AP不具有学习功能。用户必须手动将对等NAWDS AP的MAC地址添加到其NAWDS MAC表中, 如果NAWDS AP的MAC地址不在NAWDS MAC表中,则静态NAWDS AP将从该特定NAWDS AP丢弃数据包。
Learning NAWDS Repeater/Bridge
学习型NAWDS AP具有学习功能。每当它从对等NAWDS AP接收到数据包时,它就会了解对等AP的MAC地址,并将该地址添加到其NAWDS MAC表中,以便它可以通过NAWDS链路与特定AP进一步通信。
现有的wds解决方案是基于构建wds树来转发数据,并且需要设备间关联协议。原始的wds设计如图所示:

NAWDS更像是一个平面结构,NAWDS节点都直接与一个或多个对端的NAWDS AP进行通信。
用户可以为每个NAWDS AP配置对端NAWDS AP的MAC地址;
或者启用学习功能以允许NAWDS AP在从对端AP获取数据包时自动添加对端NAWDS APMAC地址到自己的NAWDS列表中。
NAWDS关系图如下:

注意:针对NAWDS,有些限制如下:
必须有个static的节点,其他的节点可以使用静态配置或者主动学习的模式,加入自己的NAWDS节点列表中;
在任意两个NAWDS节点之间,帧必须使用四个地址才能正确转发。
网络中的所有NAWDS节点必须具有相同的加密设置。目前仅支持Open/WEP模式
由于没有关联过程,对等NAWDS AP的caps必须提前配置
设置
配置模式
#说明:设置模式0-4
#x取值范围:
# Repeater Bridge
# (send beacons) (Not send beacons)
#staic 1 2
#learning 3 4
# 禁能 :0
wlanconfig ath2 nawds mode x
根据是否发送beacons分为
Repeater模式:不会发beacons帧,附近sta无法连接该ap
Bridge 模式:会发beacons帧,附近sta可以正常连接该ap
配置caps能力
如果一个NAWDS Ap工作在学习模式下,它不知道对端NAWDS节点的能力如何,所以这里要用defcaps参数来设置
wlanconfig athX nawds defcaps caps
caps取值如下:
bits:0-7 代表nss
#define NAWDS_REPEATER_CAP_DS 0x01 #NSS 2x2 #define NAWDS_REPEATER_CAP_TS 0x02 #NSS 3x2 #define NAWDS_REPEATER_CAP_4S 0x04 #NSS 4x4
Bits 8 - 15 CHWIDHT/HTMODE
#define NAWDS_REPEATER_CAP_HT20 0x0100 #define NAWDS_REPEATER_CAP_HT2040 0x0200
VHT Capability
#define NAWDS_REPEATER_CAP_11ACVHT20 0x0400 #define NAWDS_REPEATER_CAP_11ACVHT40 0x0800 #define NAWDS_REPEATER_CAP_11ACVHT80 0x1000 #define NAWDS_REPEATER_CAP_11ACVHT80_80 0x2000 #define NAWDS_REPEATER_CAP_11ACVHT160 0x4000
Bits 16 - 23 TX BF
#define NAWDS_REPEATER_CAP_TXBF 0x010000Bits 24 - 31 HE Capability
#define NAWDS_REPEATER_CAP_11AXAHE20 0x01000000 #define NAWDS_REPEATER_CAP_11AXGHE20 0x02000000 #define NAWDS_REPEATER_CAP_11AXAHE40 0x04000000 #define NAWDS_REPEATER_CAP_11AXGHE40 0x08000000 #define NAWDS_REPEATER_CAP_11AXAHE80 0x10000000 #define NAWDS_REPEATER_CAP_11AXAHE160 0x20000000 #define NAWDS_REPEATER_CAP_11AXAHE80_80 0x40000000
总结下来就是:caps取值如下图所示:N/A是不支持的

指定一个特定的mac地址和能力的节点到NAWDS 列表中
#增加 一个特定 nawds ap 用 mac_addr caps
#caps的取值范围如上面介绍:
wlanconfig athN nawds add-repeater mac_addr caps
从NAWDS列表删除一个ap
#删除指定mac 的 nawds ap
wlanconfig athN nawds del-repeater mac_addr
列出当前NAWDS列表
#列出当前NAWDS 配置
wlanconfig athN nawds list
NAWDS列表覆盖功能
#value 0: 当NAWDS表已满时,将不再向该表添加MAC地址
# 1:当NAWDS MAC表中的条目空间用完时(通过配置过多的NAWDS AP或通过使用学习功能学习过多的AP),
# 启用该位,将删除已死亡NAWDS AP占用的MAC地址,覆盖原有条目
wlanconfig athN nawds override value
使能wds总开关
# 使能 wds
cfg80211tool ath0 wds 1
举例说明
ROOTAP
ath0 mac 地址配置: 00:0f:ff:01:40:11
ath2 mac 地址配置:00:0f:ff:01:40:12
IP配置:192.168.50.12
cfg80211tool ath0 wds 1 wlanconfig ath0 nawds mode 2 #静态桥接模式 cfg80211tool ath2wds 1 wlanconfig ath2 nawds mode 2 #静态桥接模式
NODEAP1
ath2 mac 地址配置: 00:0f:ff:01:40:13
cfg80211tool ath2 wds 1 wlanconfig ath2 nawds mode 2 #静态桥接模式 #nawds列表为ROOTAP的ath0网卡 wlanconfig ath2 nawds add-repeater 00:0f:ff:01:40:11 0x1004 #80M 4X4
NODEAP2
ath2 mac 地址配置: 00:0f:ff:01:40:14
cfg80211tool ath2 wds 1 wlanconfig ath2 nawds mode 2 #静态桥接模式 #nawds列表为ROOTAP的ath2网卡 wlanconfig ath2 nawds add-repeater 00:0f:ff:01:40:12 0x1004 #80M 4X4
测试
在ROOTAP上执行下面的命令
#使得ROOTAP的 ath0 卡 nawds 到 NODEAP1 同时删除掉 ath2 连接的 NODEAP2 wlanconfig ath0 nawds add-repeater 00:0f:ff:01:40:13 0x1000 && wlanconfig ath2 nawds del-repeater 00:0f:ff:01:40:14 #使得ROOTAP的 ath2 卡 nawds 到 NODEAP2 同时删除掉 ath0 连接的 NODEAP1 wlanconfig ath2 nawds add-repeater 00:0f:ff:01:40:14 0x1000 && wlanconfig ath0 nawds del-repeater 00:0f:ff:01:40:13