Are MAC addresses required to be globally unique? If so why? - mac-address

I am unable to understand the necessity of having a globally unique MAC address on a network card. Since TCP/IP protocol suite uses MAC address for machine identification only within the network, in my view MAC should be unique locally and not globally.
I will be grateful for explanation of requirement of MAC being unique globally.

Related

MAC Address as Serial Number in Embedded Systems

Is it safe to use the MAC address as the serial number of a microcontroller in embedded systems? Is it a security threat or can it be duplicated perhaps? (Usually through software from what I read).
MAC Addresses are generated randomly by the manufacturer but as far as I understood there is a slight chance (0.000001% perhaps) that the MAC Address will be duplicate. i.e. it is not entirely unique.

How can I determine that a MAC address belongs to a VPN?

While launching ipconfig /all, I can see the description and the physical address (MAC address) of the computers on my computer:
...
Description : Intel ...
Physical address : 48-4D-...
...
Description : Teamviewer VPN adapter
Physical address : 00-FF-...
From the description, I can see which MAC address belongs to my PC and which one belongs to the VPN adapter.
Can I also find this out without reading the description? Is there a way to distinguish VPN related MAC address from "real" ones? (A Windows API answer is preferred, if possible)
There are databases for the MAC addresses, for example from Wireshark.
Since my powershell is utterly bad, I just wrote a small program to iterate over this list and check for a match in the file by Wireshark.
You may check it out and modify as you want: https://github.com/maio290/MacChecker
If no vendor is found for the device, I guess you can assume that this device is a virutal one.

Same MAC address in LAN

I studied that MAC addresses are physically printed on network card in the computer, and i also know that there can not be two identical mac addresses in the same network LAN. Now my doubt is:
What happens if there are two Devices with the same MAC address in the same LAN? I think this can happen because even if products print different addresses on the cards, there are software tools with which you can change the MAC address. Is someone's connection blocked or what? Thank you.

Unique, persistent, network device information

I've been trying write an application which will be able to connect to a network device via rndis or over wifi and perform some simple operations.
The kicker is that I want to be able to find a device I've connected to before, through either connection method. I initially figured I'd just check for a previously seen mac address, but I discovered that the rndis mac address and the wifi mac address don't match. I'm on windows so the next thing I tried was to use nbtstat -A and ping -a, but those didn't turn up anything unique either (I figured I might get a device name, but it doesn't seem to have one).
So my question is, is there any tool (ideally available for windows), which will allow me to retrieve some sort of unique information about a network device that will allow me to find it again? I don't have a huge amount of experience in this field so I'm not sure exactly what that would be, but I hoped that there may be a way to get the mac addresses for both network adapters while only connected to one, or perhaps use a different tool to find a device name that I'd missed.
Thank you for any advice you might give, I really appreciate it. Sorry if I'm overly wordy.
EDIT: In case I've been ambiguous. I am connecting repeatedly to an external device via RNDIS or WIFI from my desktop PC. My goal is to be able to consistently recognize the network device regardless of the connection method used.
EDIT: By networked device, I mean that I have small independant devices (such as cell phones or tablets) running a unix os, which I access from my Windows desktop via wifi or rndis, and that I would like to be able to consistently identify. So for example I might want to use this tool to connect to one of two cell phones and be able to recognize which one it is so I can recall previous operations performed with that device. So what I'm looking for is a unique (or semi unique) attribute of the cellphone available to me that is consistent when accessed via rndis or wifi.
You can get MAC address (and bunch of other network interface info) with built-in ipconfig command and parse its output later:
ipconfig /all
Alternatively, if MAC address is all you need, try getmac.

How deterministic is UuidCreateSequential with respect to the MAC Address?

My understanding is that on Windows systems in XP, Vista, and Win7, and on the server products based on the same kernels, the UuidCreateSequential() Win32 API call makes use of one of the MAC addresses on the system to generate the UUID, and places that value at the tail end of the generated GUID.
My question is, given that the configuration set of network devices does not change, does UuidCreateSequential always choose the same MAC address each time?
You cannot rely on the same MAC address being used. From the RFC:
4.1.6. Node
For UUID version 1, the node field
consists of an IEEE 802 MAC
address, usually the host address.
For systems with multiple IEEE 802
addresses, any available one can be
used.

Resources