[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Xend vnet support to be removed

Ewan Mellor wrote:
On Mon, Dec 12, 2005 at 08:45:00AM +0000, Mike Wray wrote:

Ewan Mellor wrote:

Unless someone speaks up, Xend vnet support will be removed.  It is broken,
unused, and unloved (as far as I know).  This is the xm vnet-list,
vnet-create, and vnet-delete commands, as well as all the Xend support behind
that (XendVnet.py, SrvVnetDir.py, plus plumbing in xm/main.py and



As the developer of the vnet count I'm speaking up for this code.
As far as I am aware it is neither broken nor unused, and I
have recently submitted patches to this list updating the code.
The code is in active development and I will be continuing to maintain it.
So please don't remove it.

That's fine.  It seems like there are a number of people using it or wishing
to, so it will stay in place.

I asked because there was recently an effort to bring the documentation up to
date, by various members of the Xen community, and yet the documentation for
Xen 3.0 went out with no mention of the vnet support, because no-one seemed to
know how to use it properly.

Perhaps you could write a few lines for us to go into the user documentation?
A number of people have said that that the vnet support is useful, so it would
be good if we could get it documented, and spread the news!

BTW, you don't have any patches unapplied and outstanding, do you?  If so,
then now would be a good time to resend them, because they've been missed if



I think all the patches I've sent so far have been applied - I've got
some more changes I'm working on, but they're not quite ready to post

There's some brief documentation below (extracted from the doc directory in the
vnet source).  What format would you prefer for more extensive documentation?

0) Introduction

Vnets provide virtual private LANs for virtual machines.
This is done using bridging and multipoint tunneling. A virtual interface
on a vnet can only see other interfaces on the same vnet - it cannot
see the real network, and the real network cannot see it either.

Virtual interfaces on the same vnet can be on the same machine
or on different machines, they can still talk. The hosting machines
can even be on different subnets if you run vnetd to forward,
or have multicast routing enabled.

1) Installing vnet support

Assuming the code has been installed (make install in the parent directory),
configure xend to use 'network-vnet' instead of the default 'network' to
start up networking. This just loads the vnet module when networking starts.

In /etc/xend/xend-config.sxp:

Configure the network script:

(network-script        network-vnet)

Restart xend.

Alternatively insert the vnet module using vnet-insert,
preferably before xend starts.

2) Creating vnets

Xend already implements commands to add/remove vnets and
bridge to them. To add a vnet use

xm vnet-create <vnet config file>

For example, if vnet97.sxp contains:

(vnet (id 97) (bridge vnet97) (vnetif vnif97) (security none))


xm vnet-create vnet97.sxp

This will define a vnet with id 97 and no security. The bridge for the
vnet is called vnet97 and the virtual interface for it is vnif97.
To add an interface on a vm to this vnet simply set its bridge to vnet97
in its configuration.

In Python:


In sxp:

(dev (vif (mac aa:00:00:01:02:03) (bridge vnet97)))

At the moment you will also have to reduce the MTU of the corresponding
device in the domain (because of the tunneling). For example, for eth0 use

ifconfig eth0 mtu 1400

or, better, put


in /etc/sysconfig/network-scripts/ifcfg-eth0. You may also have to change or 
cached config files for eth0 under /etc/sysconfig/networking.

Once configured, vnets are persistent in the xend database.
To remove a vnet use

xm vnet-delete <vnet id>

To list vnets use

xm vnet-list

To get information on one or more vnet ids use

xm vnet-list <vnet id>...

3) Troubleshooting

The vnet module should appear in 'lsmod'.
If a vnet has been configured it should appear in the output of 'xm vnet-list'.
Its bridge and interface should appear in 'ifconfig'.
It should also show in 'brctl show', with its attached interfaces.

You can 'see into' a vnet from dom0 if you put an IP address on the bridge.
For example, if you have vnet97 with a vm with ip addr on it,

ifconfig vnet97 up

should let you ping via the vnet97 bridge.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.