ifconfig ether / assign MAC address to Ethernet NIC

There seems to be a lot of inconsistency when it comes to macOS versions supporting "ifconfig ether" and any tools (including commercial software) using that functionality. MAC-spoofing in general is a incredibly useful diagnostic method for a very broad spectrum of situations.

Here are some observations, I'm trying to collect future issues in this thread. Previous issues were a mix of WiFi or Ethernet NICS and not very focused.


Have a look at this blog post, it's really helpful: https://khronokernel.github.io/macos/2021/11/22/PCIE-ETHERNET.html

Currently in macOS Ventura, there are 3 PCIe Ethernet Vendors natively supported. All drivers in macOS natively support both Intel and Apple Silicon machines:

Vendor   Driver                           Supported Architectures Hardware
Intel	   AppleIntelI210Ethernet.kext      x86_64, arm64e       i210, i225
Broadcom AppleBCM5701Ethernet.kext        x86_64, arm64e      5764M, 57761, 57762, 57765, 57766
Aquantia AppleEthernetAquantiaAqtion.kext x86_64, arm64e	      AQC107, AQC113

With the above 5 drivers, currently Apple only uses 2 of them in their products:

Aquantia is used on all Macs with 10Gbe ie. 2017 iMac Pro, 2019 Mac Pro, 2018 Mac mini Broadcom is used on all 2011+ Macs with 1Gbe ie. 2011-2020 iMacs, 2010-2020 Mac minis, 2013 Mac Pro

Interestingly this issue seems to heavily depend on the driver that is used. Ideally you'll want to use a NIC that is connected via PCI and is also used in some Apple product - that will make it more likely that Apple will maintain the drivers throughout macOS versions. I'm only focusing on PCI/TB adapters in this issue.

However, I have not actually managed to get MAC spoofing working with anything other than the Apple TB2 - GbE adapter:

Tested with a MacBook Pro 14" 2023 (M2Pro) on macOS Ventura 13.4, 13.5 and macOS Sonoma Developer Beta 1 with the command sudo ifconfig ether enXX xx:xx:xx[...]:

  • Apple Thunderbolt to GbE Adapter (uses AppleBCM5701Ethernet iirc): works and accepts new MAC address
  • OWC TB3 to 10GbE Adapter, with AQC-107 Chipset (uses AppleEthernetAquantiaAqtion): fails silently (accepts command) and does not change the MAC address
  • (most USB adapters will fail with some error code, which is as expected as they use a more generic driver class)

In another Forum I read that someone also didn't get a Mac Mini (M2) with 10GbE to support ifconfig ether. That model also uses an AQC-107, so the AppleEthernetAquantiaAqtion driver - supporting the argument that only the Broadcom driver supports MAC spoofing in the latest OS releases.

If anyone gets a different network adapter to work, please comment :)

This does not seem like an issue any 3rd-party developer can solve (apart from re-writing the Aquantia driver from scratch), and it seems like it is not a HW limitation - using Windows/Linux I can easily spoof the MAC of my tested devices. Apple should ideally acknowledge that this is a known limitation, whether by accident or by conscious decision ("security concerns" as hinted in an Apple Developer Forum).

I'm leaning towards this being a bug from porting drivers & not putting in the time to support all NIC features, and hope that a future release will solve it. In the meantime - if you need to use MAC spoofing the TB2 adapter is a relatively safe bet (albeit ugly due to dongle chaining etc.)

ifconfig ether / assign MAC address to Ethernet NIC
 
 
Q