1. 全球唯一无法保障.
软件工具可以修改网卡的MAC地址
2.不需要全球唯一.
只要保障局域网内不重复就行. 路由器 保证 数据在不同局域网内跳转. 如果局域网内使用集线器,那么可以设置相同的MAC,但是如果是交换机,由于交换机的MAC地址学习策略,不可以设置相同MAC地址.
$ ifconfig eth0 | grep ether ether 6e:77:0f:b8:8b:6b txqueuelen 1000 (Ethernet) $ ifconfig eth0 down $ ifconfig eth0 hw ether 6e:77:0f:b8:8b:6a $ ifconfig eth0 up $ ifconfig eth0 | grep ether ether 6e:77:0f:b8:8b:6a txqueuelen 1000 (Ethernet)
局域网中的数据传输不是通过网络层的IP传输的,主要是通过MAC地址传输的.
ARP广播过程
- 源主机会向当前局域网中发送 ARP 请求,目标的 MAC 地址是
FF-FF-FF-FF-FF-FF
,这表示当前请求是一个广播请求,局域网内的所有设备都会收到该请求; - 接收到 ARP 请求的主机都会检查目的 IP 和自己的 IP 地址是否一致;
- 如果 IP 地址不一致,主机会忽略当前的 ARP 请求;
- 如果 IP 地址一致,主机会直接向源主机发送 ARP 响应;
- 源主机在接收到 ARP 的响应之后,会更新本地的缓存表并继续向目的主机发送数据;
交换机-局域网内不可以设置相同MAC地址:
假设局域网中的具有两台 MAC 地址完全相同的网络设备 A 和 B,即 6e:77:0f:b8:8b:6b
,当设备 A 想要向设备 B 发送以太网帧时会遇到如下所示的情况:
- 设备 A 在构造的以太网帧中将源地址和目的地址都设置为
6e:77:0f:b8:8b:6b
并向交换机发送数据; - 交换机接收到了设备 A 发送的数据帧后,会从数据帧的源地址学习到设备 A 的 MAC 地址并将
6e:77:0f:b8:8b:6b -> A
这条记录插入本地缓存中; - 交换机发现收到数据帧的目的地址会指向了网络设备 A,所以它会将该数据转发回 A;
因为交换机的 MAC 地址学习策略,所以我们不能在同一个局域网中使用相同的 MAC 地址,但是因为 MAC 地址是链路层网络中的概念,跨局域网的网络传输需要通过网络层的 IP 协议,所以在不同的局域网中使用相同的 MAC 地址就不存在类似的问题了。