在深入研究无线网络的过程中,我遇到了 802.11 网络帧的 MAC 标头中的不同地址字段。几次思想实验后,我对无线中继器的某一点感到困惑。
大多数无线中继器同时用作无线客户端和接入点。因此,中继器创建了一个无线网络,该网络与应该改进的网络的 SSID 相同,并且客户端连接到该网络。然后中继器本身作为无线客户端连接到原始接入点。中继器从连接的客户端接收的所有帧在用自己的源 MAC 地址(分别称为虚拟 MAC 地址)替换源 MAC 地址后,将转发到另一个接入点。
但是,中继器如何区分从接入点作为响应获得的所有帧,并将其发送到与其连接的正确客户端?
无线中继器如何确定无线客户端的目的 MAC 地址?
中继器有多种类型,我的回答将专门针对与问题中的描述相匹配的中继器,特别是“中继器同时作为无线客户端和接入点工作”的中继器。
中继器从连接的客户端接收的所有帧在用自己的源 MAC 地址(分别称为虚拟 MAC 地址)替换源 MAC 地址后,将转发到另一个接入点。
您的理解似乎有误。使用 802.11 帧,源地址和目标地址永远不会改变,无论发生的无线“跳”数是无线网桥、中继器、网状节点还是其他机制。
无线中继器如何确定无线客户端的目的 MAC 地址?
和
但是,中继器如何区分从接入点作为响应获得的所有帧,并将其发送到与其连接的正确客户端?
当 802.11 设备正在向接收设备发送数据时,理解这个问题的答案至关重要,这些设备中的一个(或两个)可能不是 L2 流量的实际来源或目的地。因此,这可能会导致您需要四个不同的不同地址的情况:
- 发送器地址 (TA)
- 接收地址 (RA)
- 源地址 (SA)
- 目的地地址 (DA)
以下是我从IEEE 文档中摘取的几个快速汇总表,它们将有助于说明四个地址的使用:
那么,当客户端和接入点 (AP) 之间使用中继器时,这如何转换?
client <--> repeater <--> AP
假设客户端正在向 Internet 上的服务器发送流量。由于服务器在 Internet 上,因此客户端将流量发送到其默认网关。因此,您有四台设备参与 L2 流量、客户端、网关、AP 和中继器。
客户端将通过中继器将流量发送到网关。中继器接收此流量并将其发送到 AP,然后再发送到网关。从服务器返回的流量来自网关,并由 AP 传输到中继器。然后转发器将其发送给客户端。下表说明了在此过程中如何使用地址字段:
Direction ToDS FromDS Address1 Address2 Address3 Address4
--------- ---- ------ -------- -------- -------- --------
C -> S 1 0 Repeater Client Gateway n/a
C -> S 1 1 AP Repeater Gateway Client
S -> C 1 1 Repeater AP Client Gateway
S -> C 0 1 Client Repeater Gateway n/a
正如我们现在可以清楚地看到的那样,AP 或中继器永远不会不知道帧的实际来源或目的地,无论可能关联了多少不同的客户端或生成了多少流量。
在网上搜索后,我自己找到了答案。大多数无线中继器不只使用一个虚拟 MAC 地址,而是为每个连接的客户端使用一个虚拟 MAC 地址。
假设我们的中继器具有以下 MAC 地址 e0:46:a1:9b:18:4c。因此,它不使用此地址直接联系接入点,而是通过将第一个字节的第二位设置为 1(因此此 MAC 地址成为本地管理)并替换每个客户端的虚拟 MAC 地址最后三个字节与客户端 MAC 地址的最后三个字节。
MAC 地址转发器:e0:46:a1:9b:18:4c
虚拟 MAC 地址转发器:e2:46:a1:9b:18:4c
MAC 地址客户端:28:7c:af:f0:47:1c
虚拟 MAC 地址客户端: e2:46:a1:f0:47:1c
这就是每个客户端如何获得唯一标识的方式,中继器可以将任何流量从接入点转发到正确的客户端。