接口上的MAC设置对传输帧有什么作用?

我被告知无论操作系统为接口的MAC设置了什么接口都可以传输帧。 我也觉得这是虚拟机如何主机桥接 。 如果是这样的话,那么使用什么接口绑定MAC地址呢?

具体来说,我问的是软件MAC,而不是在70年代烧入ROM的MAcs:

wlan0 Link encap:Ethernet HWaddr 00:16:ce:01: 

这是从ifconfig的输出线,但我被告知接口wlan0可以传输下/任何/ MAC地址,而我所看到的MAC什么也没有(除了可能提供一些库默认)。 我被告知,用虚拟机的主机桥接它会利用,并在任意数量的IP地址传输 – 但它不会停止在那里AP实际上允许你分配一个独特的IP到每一个VM,因为AP将在不同的MAC上接收请求。

  1. 你有任何特殊的权限(Linux)来制作一个“虚拟”MAC地址的数据包。
  2. 如果一个MAC地址是一个路由器如何跟踪什么接口和主机,有什么IP,那么如何阻止一个主机请求所有的IP到虚拟接口
  3. 如何阻止用户使用虚拟MAC地址
  4. 这是否需要内核中的特殊选项或内置networking堆栈?

MAC地址由IEEE组织和标准化。 每个连接到以太网networking的设备都有一个唯一的MAC地址分配给它,这样,任何两个设备可以在同一个networking上并且没有问题地通信。 这并不意味着操作系统无法select要使用的MAC地址,例如监控或欺骗stream量。 大量阅读这里

回答下面的问题

  1. 有了root权限,你可以做任何你想要的(基本上)。 使用自定义MAC发送数据包的方法有两种:首先,使用ifconfig命令更改接口上的MAC地址,这将影响系统的所有通信量; 其次,自己形成数据包,并用专门的代码直接写入接口。 例如,nmap使用这个方法告诉它扫描具有不同源MAC地址的端口。
  2. (和3)你没有。 如果恶意主机在你的networking上,并决定劫持MAC地址,你可能会遇到一个严重的问题。 这就是为什么保护您的局域网和严格的访问控制策略的一个重要原因。 在我的公司,我们的桌面局域网交换机被configuration为使得每个端口学习到连接到它的计算机的MAC地址,并且如果该地址改变端口被closures,那么所有未被使用的端口也被closures。 这个政策是在夜间安全人员试图插入configuration了与我们的服务器相同的静态IP的笔记本电脑之后实施的,并导致了很多问题。 通过限制每个端口到一个MAC地址,我们现在可以防止(主要)这种情况发生。 只有当有人知道将他们的MAC改为已经插入的计算机的地址时,他们才能够进入我们的networking,这是不太可能的。 另外,关于向所有MAC请求所有IP,交换机不断更新其MAC表,因此只要有效主机发送新的数据包,表将用正确的端口更新。 如果恶意的人不断地使用畸形的数据包中毒networking,尽pipe你可以做的事情很less。