最近在做一个项目,做的设备有phy也有wifi,就是支持有线网络,也支持无线网络,产品有一定特色,网络上感觉有点冗余,但是也满足了多样化的需求,各有利弊,客户选择这样的设计自有考量。从技术角度,一个网卡一个MAC地址,天经地义,也是符合网络协议的,但是最近客户要求phy跟wifi要共用同一个mac地址,咋搞?配合的客户说WiFi没法改MAC,我也是第一次听说了这个要求,如果你想让多个网络接口共享同一个MAC地址,这在大多数情况下是不被推荐的,因为这违背了网络协议的设计原则,可能会导致网络设备间的冲突和安全问题。迎战吧!
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
修改前,开机进入系统后的网络状态如下:

可以看出eth0和wlan0的MAC地址是不一样的。
这个时候wifi是可以联网的:

在这假设默认eth0的mac地址就是我们需要的共用的mac地址,那么就需要在使用WiFi通信的时候,需要把WiFi的mac地址改成eth0一样的;
修改方法如下:
ifconfig wlan0 down
ifconfig wlan0 hw ether 1A:FE:9D:B0:81:6F
ifconfig wlan0 up

wifi就一直处于SCANNING状态,没法连接上AP。看了一下内核打印,wlan0没法link up上。

这个试过把eth0 down掉也不行,down掉后再up wlan0还是不行,相当于系统里有两张网卡,wifi这种网卡没法动态更改成eth的MAC,设置过去后wifi就是没法连接,怎么办呢?
做了一个实验,就是eth一直保持在,在加载完wifi驱动后,不立即up wlan0,先修改mac地址跟eth的mac,然后在up wlan0,这样操作系统就是可以的了。


这种不常规的需求,还好这样绕一下也能完成,解决问题了就好。