how is the MAC for tap(4) computed?

illoai at gmail.com illoai at gmail.com
Mon Nov 4 21:08:34 UTC 2013


On 4 November 2013 12:09, Dan Nelson <dnelson at allantgroup.com> wrote:
> In the last episode (Nov 04), Aryeh Friedman said:
>> There seems to be a very high rate of MAC address collisions when tap is
>> running on different machines....  is there anyway to make the selection
>> of MAC more random
>
> It looks like it's generated based on the number of ticks since boot, plus
> the unit number of the tap device:
>
> http://fxr.watson.org/fxr/source/net/if_tap.c#L434
>
> So if you have devices created on boot on a bunch of machines, chances are
> high that you'll get conflicts.  Maybe instead of using the 'ticks' value,
> kern.hostid could be used instead?  That has much better randomness than
> 'ticks'.

With physical interfaces you can use something like
ifconfig ath0 ether 00:2d:44:88:ff:00
(assuming the device & the driver support changing MAC
addresses)

I've never tried it with a virtual interface, but it should work if the
device supports it.

-- 
--


More information about the freebsd-stable mailing list