[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Connecting vde and LAN
From: |
Oliver Gerlich |
Subject: |
Re: [Qemu-devel] Connecting vde and LAN |
Date: |
Thu, 11 Aug 2005 18:24:51 +0200 |
User-agent: |
Mozilla Thunderbird 1.0.6-1 (X11/20050804) |
Henrik Nordstrom wrote:
On Wed, 10 Aug 2005, Jim C. Brown wrote:
[...]
The above should work for most situations where the host is a just a
host on the LAN, but if the host is a LAN server for broadcast Ethernet
protocols such as DHCP some additional configuration of each such
service may be required to also listen on the tap0 device if the guest
should be able to use these services. Quite likely also applies to some
other protocols such as IPX or AppleTalk as these frames almost
certainly will be ignored by the host on the tap0 device unless
configured proper for each protocol.
Couldn't we avoid these incompatibilities if we would route packets only
on the Ethernet level? If the Qemu networking setup on the host involves
IP addresses or such things, we're already on the wrong OSI layer I think...
I'm not very experienced in networking, but IMHO the network should be
set up like this:
(eth0 on Host OS)
/
( LAN ) <----> (real eth0) <-> VDE
\
(NIC on Guest OS)
(substitute eth0 by the LAN network interface of your computer)
So VDE acts as an Ethernet switch between LAN, Host OS and Guest OS.
This would limit VDE action to the Ethernet layer.
To connect to the LAN, VDE would use the real (physical) eth0 of the
host system. When packets arrive from Host OS or Guest OS, they would be
sent to the LAN with the source MAC addresses preserved.
The connection to the Qemu guests should be easy as well (every guest
has a MAC address anyway).
The host part is really difficult: VDE would have to provide a "faked"
eth0 to the host OS, so that programs on the host could still use eth0
as Ethernet interface. This faked eth0 would be connected to VDE just
like the Guests are.
I guess this means that VDE would have to provide a kernel-layer
component which grabs the packets from eth0 and provides the faked eth0
for the Host OS...
Although IMHO this is the cleanest way to set up networking, it's
probably not possible to implement this :-) But maybe we could use it as
a starting point for the networking.
So this is a summary of what I think we should try to achieve (sorted by
priority):
-provide Ethernet-layer access from the Guest to the LAN (so that it's
transparent for IP traffic)
-allow using a LAN-wide DHCP server for the Guest
-the host should be able to set up his LAN interface over the LAN-wide
DHCP server.
-the host networking still works as before (at least on the layers above
Ethernet)
-the whole thing is easy to set up
-the whole thing can be started by any user at any time (so it's not
started at boot time, but whenever a user starts Qemu).
If we could achieve all of these requirements, it would be fantastic :-)
But maybe we could at least reach some of them.
What are your comments on this?
Regards,
Oliver Gerlich