[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