On 04/26/2013 02:41 PM, Slater, Joseph wrote:
Hi,
If I have these fragments in a domain definition, the guest will start
with "eth0"
assigned by dhcp to an address on my lan. Things seem to work
according to the documentation
I can find.
<network>
<name>direct-macvtap</name>
<forward mode='bridge'>
<interface dev='eth0' />
</forward>
</network>
<devices>
<interface type='direct'>
<mac address='00:15:17:A6:BC:C9' />
<source dev='eth0' mode='bridge' />
<model type='virtio' />
</interface>
</devices>
I don't understand the <network> part here. It doesn't seem to be
documented. I inherited these pieces
so I do not know why they are as they are.
The <network> part shouldn't be in the domain's XML. It should be used
to separately define a libvirt network. Put that part in "direct.xml"
(for example) and run:
virsh net-define direct.xml
virsh net-autostart direct-macvtap
virsh start direct-macvtap
However, your <interface> definition isn't even using that network; it's
specifying the macvtap connection directly (with <source dev='eth0'
mode='bridge'/>) so the network definition isn't even needed.
(btw, the <network> xml is documented here:
http://www.libvirt.org/formatnetwork.html )
If, instead, I have the following, the guest comes up with no network
interface at all
(except lo). On the host, interfaces vnet0 and virbr0 exist and
virbr0 is 192.168.122.1.
<devices>
<interface type='network'>
<source network='default'/>
</interface>
</devices>
Adding in
<model type='virtio' />
makes it start with "eth0", but no address has been assigned. I can
manually do that and then
I can communicate with the host but it's kind of a pain to add the
address and routing manually.
That could be caused by one of the problems described here:
http://wiki.libvirt.org/page/PXE_boot_%28or_dhcp%29_on_guest_failed
In general, take a look at
http://wiki.libvirt.org/page/Troubleshooting
Oddly enough, though, ping from host to guest works normally, but
ping
guest to host seems to succeed once
then hang (with no timeout).
It is not at all obvious to me how virtio magically creates eth0.
Am I doing something wrong, here? And, if anyone could advise how to
use openvswitch
I'd appreciate it. I've seen adding
<virtualport type='openvswitch/>
might be enough, presumably with an appropriate name for the source
network.
(you're really jumping all over the place here :-)
You need a new enough version of libvirt to support openvswitch (at
least 0.9.11, or 0.10.0 if you're using vlans), as well as a new enough
kernel, and you need to have the openvswitch package(s) installed.
There are several guides for doing this. Here's one that came up on Google:
http://blog.scottlowe.org/2012/11/07/using-vlans-with-ovs-and-libvirt/