[libvirt] how to assign an ip when assign a NIC or VF to the Virtual Machine?

Jim Fehlig jfehlig at novell.com
Tue May 10 21:56:24 UTC 2011


Laine Stump wrote:
>
>>
>> 2011/5/8 Richard W.M. Jones <rjones at redhat.com
>> <mailto:rjones at redhat.com>>
>>
>>     On Sun, May 08, 2011 at 10:56:54AM +0800, guan qin wrote:
>>     > The second solution you mentioned may be difficult , because
>>     when I assign
>>     > the ethX to the VM, the X in the 'ethX' is random (the  'X' in
>>     the host may
>>     > be different in the VM),I don't know it before I boot the VM .
>>     so maybe I
>>     > couldn't edit the guest correctly before booting VM.
>>
>>     AFAIK the guest should always see "eth0", so this shouldn't be any
>>     problem.  If not, write udev rule(s) in the guest to force the
>> name to
>>     be stable.
>>
>>     > The first solution :
>>     > The network card's MAC address I can know and assign an fixed 
>> IP in
>>     > advance, but for the VFs , before I create the VF by "modprobe
>>     > igb/ixgbe
>>     > max_vfs=num1,num2" ,I couldn't know the MAC address before
>>     either,the MAC
>>     > address generated randomly too.
>>     > So maybe I should edit the DHCP server configure file after
>>     creating the
>>     > VFs.
>>
>>     It seems that for SR-IOV, MAC addresses are assigned to VFs randomly
>>     by the kernel.  It should be possible to read out the VF using (eg)
>>     libvirt before the VM has booted (if not, it would be a bug).  I
>> think
>>     you can also assign fixed MAC addresses to VFs in advance if that
>>     would be simpler.  However I've not really used SR-IOV in anger so
>>     this may be wrong.
>>
>
> On 05/08/2011 10:35 AM, guan qin wrote:
>> If I use SR-IOV, the guest may be  always "eth0"   , but when I use
>> the VT-d ,I often got an  ethX with a random X in VM.
>> AFAIK, udev make the NIC name be stable by the MAC address. So when I
>> haven't assigned a VF or NetworkCard to the VM,
>> how can I force the name in the guest to 'eth0' ?
>
> (Please don't top-quote. It makes it hard to follow the discussion
> later).
>
> As I understand it (and I may have it wrong, as I don't actually have
> any SRIOV hardware to play with), an SRIOV VF gets a different random
> MAC address each time the host boots. However, udev on the host
> apparently ignores VFs when saving off its mac address <--> ethX
> mapping for reference on subsequent boots, so the VFs as seen from the
> host will have a stable name (but unstable mac address).

Perhaps some of the work done in iproute2, et.al. can be leveraged.  The
ip command could be used to set user-defined MAC addr prior to passing
to the guest

ip link set dev ethX vf Y mac aa:bb:cc:dd:ee:ff

Regards,
Jim

>
> When you map that VF through to the guest, the guest probably doesn't
> know that it's a VF of an SRIOV card, it thinks it's a standard
> ethernet card, so the guest's udev saves that particular MAC
> address<->ethX mapping for subsequent boots; the problem is that the
> next time it boots, it will get *yet another* mac address, which will
> be mapped to *yet another* ethX name.
>
> The solution is to clear out the udev mapping on the guest before each
> boot, or otherwise teach it to not save the mapping. Alternately, use
> a different method of attaching your guest to the network (ie, instead
> of using PCI Passthrough, use <interface type='direct'> to attach a
> guest interface to one of the VFs, and give the guest a fixed MAC
> address of your own choosing.)
>
> -- 
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list