c - 为什么网卡的mac地址可以修改?

标签 c networking ip virtualization ethernet

为了唯一标识网络上的网卡,每个网卡都会由制造商分配一个唯一的 MAC 地址,并且该地址不可更改。我们将这种类型的 mac 地址称为“永久 mac 地址”。我能理解它的必要性。

但是,还有另一种类型的mac地址:“当前mac地址”;它可以通过编程改变;我无法理解它的必要性。

根据维基百科,当前的mac地址可以用于网络虚拟化和“mac欺骗”。我觉得没必要。

如果想在真实网卡上创建虚拟网卡,假设真实网卡的 MAC 地址是“id1”,虚拟网卡的 MAC 地址是“id2”,那么它们可以同时接收/响应目标地址的两个帧是“id1”或“id2”。通过这种方式,真正的网卡不需要当前的 MAC 地址。

如果实现了虚拟网卡,那么“mac spoofing”也很容易实现。

我说得对吗?

PS:下面的文章给出了更改 mac 地址的一些原因:

http://blog.technitium.com/2011/06/why-you-need-to-change-mac-address.html

最佳答案

制造商提供的 MAC 地址是唯一标识物理 NIC 的地址 - 它通常被烧录在设备 ROM 中。任何其他 MAC 都是纯虚拟 MAC,可以由运行该设备的软件堆栈添加和使用。没有规则如何做到这一点,只要 2 个通信方就协议(protocol)达成一致,其中包括可用于虚拟化的附加 MAC 地址

关于c - 为什么网卡的mac地址可以修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662151/

相关文章:

c - 将输入放入数组c程序中

c++ - 在整个网络中广播自己的IP

sockets - 套接字编程 : bind() system call

c# - 使用 C# 通过 Internet 进行最简单的双向通信

networking - 网络上的数据包交换问题

routing - Unix 路由表中的 "proto kernel"是什么意思?

用户级和内核级线程的并发性。为什么输出不同?

可以在串联 ## 宏中替换整型变量吗?

c - 字符串和字符的错误比较*

linux - 如何获取本地网络中所有有效IP地址的列表?