无线中继器如何确定无线客户端的目的 MAC 地址?

网络工程 无线的 IEEE-802.11 MAC地址
2021-07-07 20:57:35

在深入研究无线网络的过程中,我遇到了 802.11 网络帧的 MAC 标头中的不同地址字段。几次思想实验后,我对无线中继器的某一点感到困惑。
大多数无线中继器同时用作无线客户端和接入点。因此,中继器创建了一个无线网络,该网络与应该改进的网络的 SSID 相同,并且客户端连接到该网络。然后中继器本身作为无线客户端连接到原始接入点。中继器从连接的客户端接收的所有帧在用自己的源 MAC 地址(分别称为虚拟 MAC 地址)替换源 MAC 地址后,将转发到另一个接入点。
但是,中继器如何区分从接入点作为响应获得的所有帧,并将其发送到与其连接的正确客户端?

2个回答

中继器有多种类型,我的回答将专门针对与问题中的描述相匹配的中继器,特别是“中继器同时作为无线客户端和接入点工作”的中继器。

中继器从连接的客户端接收的所有帧在用自己的源 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

这就是每个客户端如何获得唯一标识的方式,中继器可以将任何流量从接入点转发到正确的客户端。