Background
I have several pve nodes, and I built up a template of ubuntu server 20.04 and reused this template in all of my pve nodes.
In all the pve nodes, there is a Connectx-3 pro NIC and I enabled SR-IOV for it and set up 8 VF for the first port in this NIC.
Then I created a VM by cloning from the template and passed a VF (for example the first VF with device id 0000:81:00.1) on each PVE nodes, and started them.
I expected: the VF NICs on different VMs will have unique mac addresses and then get different IP addresses by DHCP.
In fact: the VF NICs on different VMs will have duplicated mac addresses.
Problems
The mac address of the NIC in the VM ( in fact it's a VF) on different PVE nodes are the same!
To confirm this issue, I repeated tests by :
- for VM on the same PVE node and on different PVE nodes (but all are cloned from the same template)
- test both for linked clone and full clone when cloned from template
- I even passed 4 VF into the VMs: each NIC will have a different mac, but they are also duplicated in another VM which also has 4 VF
And I tried to use macchanger to change the mac address, and found that the Permanent MAC of the NIC in VM is not set (or set to 00:00:00:00:00:00)
```bash
sudo macchanger -s enp1s0
Current MAC: 12:8c:d3:a0:5d:35 (unknown)
Permanent MAC: 00:00:00:00:00:00 (XEROX CORPORATION)
```
Cause?
I confirmed that the mac address of these VF in different PVE hosts are unique. But when these VF are passed into the VMs, their mac addresses will be changed and the changed mac address seems are fixed and then duplicated with other VMs.
So I wonder: if the mac addresses of VF are generated by some input that are fixed in a template? So all the VMs cloned from the same template will generate the same mac address for these VFs?
I have several pve nodes, and I built up a template of ubuntu server 20.04 and reused this template in all of my pve nodes.
In all the pve nodes, there is a Connectx-3 pro NIC and I enabled SR-IOV for it and set up 8 VF for the first port in this NIC.
Then I created a VM by cloning from the template and passed a VF (for example the first VF with device id 0000:81:00.1) on each PVE nodes, and started them.
I expected: the VF NICs on different VMs will have unique mac addresses and then get different IP addresses by DHCP.
In fact: the VF NICs on different VMs will have duplicated mac addresses.
Problems
The mac address of the NIC in the VM ( in fact it's a VF) on different PVE nodes are the same!
To confirm this issue, I repeated tests by :
- for VM on the same PVE node and on different PVE nodes (but all are cloned from the same template)
- test both for linked clone and full clone when cloned from template
- I even passed 4 VF into the VMs: each NIC will have a different mac, but they are also duplicated in another VM which also has 4 VF
And I tried to use macchanger to change the mac address, and found that the Permanent MAC of the NIC in VM is not set (or set to 00:00:00:00:00:00)
```bash
sudo macchanger -s enp1s0
Current MAC: 12:8c:d3:a0:5d:35 (unknown)
Permanent MAC: 00:00:00:00:00:00 (XEROX CORPORATION)
```
Cause?
I confirmed that the mac address of these VF in different PVE hosts are unique. But when these VF are passed into the VMs, their mac addresses will be changed and the changed mac address seems are fixed and then duplicated with other VMs.
So I wonder: if the mac addresses of VF are generated by some input that are fixed in a template? So all the VMs cloned from the same template will generate the same mac address for these VFs?
Last edited: