One bug I would pay $50 to fix!!!
-
I checked Freebsd bug reports and saw nothing related to this. I would think this feature is pretty important. I am not pinning my hope on this being fixed on 9.0 so i'm trying to raise awareness and maybe some motivation for fixing thisโฆ
-
You should try to replicate it with DHCP+spoofed mac on a stock FreeBSD 8.x box. If it's broken there, file a FreeBSD PR. Raising awareness here of a FreeBSD bug, while interesting, won't really accomplish anything with getting it fixed in FreeBSD.
-
The really weird this is that in Pfsense, I will remove the spoofed mac address and hit apply, but when you check in the shell using ifconfig, the spoofed mac address still persists. The link is all stable at this time with no flapping up and down. Of course this method won't survive a reboot though. I've looked at the pfsense interfaces.inc code and i can't find anything wrong with that is is doing but that's just me.
On a related note, is it possible to put the spoof mac in a file like rc.conf using ifconfig_em0 = "ether xx:xx:xx:xx:xx:xx" or something similar using loader.conf.local?
-
pfSense does not retain the NIC's original MAC address when it's spoofed, so only a reboot will get that back.
You can spoof a mac on freebsd using rc.conf, I don't recall the exact syntax (been a while since I had to do it) but it's possible, it's one of the ifconfig_* commands you can run.
-
My point is that pfsense is able to spoof the mac and have everything work but when that spoofed mac is entered into the interfaces config, the system will take down the interface continuously. Does this mean it has something to do with pfsense or the way it is spoofing the mac? I'm tempted to change the command from
ifconfig <interface>link <mac>to ifconfig <interface>ether <mac>or even take down the interface manually before mac change and bring it back up after mac change.
BTW, I don't see rc.conf in /etc so can I make one and freebsd will read this file to process?</mac></interface></mac></interface>
-
If you have a real FreeBSD install, /etc/rc.conf would be there. It is ignored on pfSense, which would not generally be considered a valid "FreeBSD" platform when it comes to submitting FreeBSD PRs, since we customize things quite a lot.
Trying ether instead of link would be a good test.
-
Please close this bounty now. As a work around, I installed shellcmd package and put the following commands in order to set the mac address during boot. The downside is I have to reboot but i don't change macs that often.
ifconfig em1 down earlyshellcmd ifconfig em1 ether xx:xx:xx:xx:xx:xx earlyshellcmd ifconfig em1 up earlyshellcmd
-
I have a sneaky suspicion I see what's going on here now, or at least a theory to test.
-
Try this instead, at line 2595 of /etc/inc/filter.inc:
Remove this:
if ($wancfg['spoofmac']) {
And replace it with this:
$mac = get_interface_mac($realhwif); if ($wancfg['spoofmac'] && ($wancfg['spoofmac'] != $mac)) {
-
I'm not sure if this is of any help to you guys, but I use mac address cloning and haven't yet had any issues with it shrugs