When a new virtual machine is created, the MAC address of it is either taken from a MAC address pool on the Hyper-V server or from the SCVMM server.
Each Hyper-V server has a MAC Address Pool. The first three octets in the pool are 00-15-5d. Octet 5 and octet 6 are based on the last two octets of the IP-adress of the first enumerated NIC in the Hyper-V host. The last octet range is from 00 to FF. If a VM is created using Hyper-V manager or Failover Cluster Manager, the pool of the Hyper-V server the VM is created on will be used. The address pool can be edited using Hyper-V manager, select Virtual Network Manager and select global Network Settings in the left pane.
Mind this could potentially lead to double MAC addresses in your environment. If one Hyper-V server has an address of say 188.8.131.52 and another has 184.108.40.206 you can run into problems. This will be request timeouts during pings, destination host unreachable or being able to ping at one moment, and later it fails.
To find out if you are having double MAC-address there is probably a nice Powershell script available which queries each VM for it’s MAC-address.
Always make sure the MAC address pool is unique for all the Hyper-V servers in your network!
To avoid duplication, a VM can be created using SCVMM. SCVMM has it’s own MAC address pool. It starts at 00-1D-D8 and can be seen and modified using VMM, select Administration, Networking.
This excellent article by Robert Larson has all the details.