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
XendClient.py).
Cheers,
Ewan.
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
so!
Thanks,
Ewan.
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
yet.
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))
do
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:
vif="bridge=vnet97"
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
MTU=1400
in /etc/sysconfig/network-scripts/ifcfg-eth0. You may also have to change or
remove
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 10.0.0.12 on it,
then
ifconfig vnet97 10.0.0.20 up
should let you ping 10.0.0.12 via the vnet97 bridge.
Mike
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|