From: Gildas Le Nadan <gildas.ml@gmail.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: Spice project is now open
Date: Sun, 13 Dec 2009 15:56:24 +0100 [thread overview]
Message-ID: <4B250098.8040306@gmail.com> (raw)
In-Reply-To: <4B242B40.4050409@codemonkey.ws>
>> Dan Berrange and I have been talking about being able to move VNC
>> server into a central process such that all of the VMs can have a
>> single VNC port that can be connected to. This greatly simplifies
>> the firewalling logic that an administrator has to deal with.
>> That's a problem I've already had to deal with for our management
>> tools. We use a private network for management and we bridge the
>> VNC traffic into the customers network so they can see the VGA
>> session. But since that traffic can be a large range of ports and
>> we have to tunnel the traffic through a central server to get into
>> the customer network, it's very difficult to setup without opening
>> up a mess of ports. I think we're currently opening a few thousand
>> just for VNC.
>
> Actually my plan was to have a VNC proxy server, that sat between the
> end user & the real VNC in QEMU. Specifically I wanted to allow for
> a model where the VNC server end users connected to for console
> servers was on a physically separate host from the VMs. I had a
> handful of use cases, mostly to deal with an oVirt deployment where
> console users could be from the internet, rather than an intranet.
>
> - Avoiding the need to open up many ports on firewalls - Allow on the
> fly switching between any VMs the currently authenticated user was
> authorized to view without opening more connections (avoids needing
> to re-authenticate for each VM) - Avoid needing to expose
> virtualization hosts to console users, since console users may be
> coming in from an untrusted network, or even the internet itself. -
> Allow seemless migration where proxy server simply re-connects to the
> VM on new host, without the end user VNC connection ever noticing.
Hi,
Having a single well known port to connect to the VMs on an host would
be *awesome* as having one port per VM is sooo 1980's in terms of
manageability/secureability.
Actually both use cases described above are needed IMO:
- it would be great to have some sort of server running locally on the
VM host so that you only have one open port on the VM host itself [1].
- it would be very usefull to have some sort of proxy mechanism that
would allow redirection from a single host acting as a gateway between
networks (be it internal or external networks).
The two of them could interact nicely with one connecting to the other
if needed:
_______VM_Host________ _proxy_Host_ _client_machine_
| 1 | 2 | | 3 | |
|VM <-> local server |<-> | proxy | <-> | client |
|____________________| |__________| |______________|
I think one of the most important thing is that the proxy and the local
server must behave exactly the same way and provide the same features
(that is the protocol used on connection 2 should be the same as the one
for connection 3).
This allow the client to work the same independently of the
configuration/topology. The proxy allows for enterprise class features
whereas the local server is enough for a small virtual infrastructure or
even a single machine setup, but that should be transparent to the clients.
I guess there must exist a way to route the connection to the correct
VM, so there should be something similar to the HTTP Host request-header
to identify the VM the client wants to connect to [2].
Of course SASL support is mandatory but I guess Dan planned it anyway :)
Ideally there would be some sort of negociation mechanism so the client
can ask what protocol (vnc, spice, ...) they want to use (if possible
dynamically within a session if a user change its location/if its need
evolve).
Obviously both shouldn't need to be run as root.
I guess the proxy should be a project on his own and not part of qemu
since it is more of an enterprise feature while the local server could
be added to qemu? Of course since there are some common features, it
would probably make sense to share some code.
Concerning the proxy, there are all sorts of goodies I would expect from
it (on top of seamless migration and on-the-fly switching) :
- flexibility in the choice of the authorization backend
- since it is a SPOF, it would be nice for it to work as a cluster (in
active/passive with failover or better as an active/active cluster)
Since this proxy can be used as a connection broker to either physical
or virtual machines, load-balancing and session management features
would be nice.
Of course in a perfect world this wouldn't be a single company project ;)
My humble 2 cents as an operations person,
Gildas
--
[1] firewalling is also important on internal networks if you work in a
large environment, and having a single port makes it easier to
understand what is going on when diagnosing issues.
[2] You also need to point to the correct host. How you want to
"publish" the VM/VM Host association so the proxy can route is an
interesting problem on its own, especially since VM can (and will)
migrate. There are probably many ways to do this including DNS SRV,
LDAP, local DB, and having flexibility for this in the proxy is a bonus.
next prev parent reply other threads:[~2009-12-13 14:56 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1072764996.1548651260538641101.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 13:45 ` [Qemu-devel] Spice project is now open Yaniv Kamay
2009-12-11 14:03 ` Jun Koi
2009-12-11 14:17 ` Yaniv Kamay
2009-12-11 14:09 ` Alexander Graf
2009-12-11 14:28 ` Jun Koi
2009-12-11 16:34 ` Anthony Liguori
2009-12-11 16:52 ` Chris Wright
2009-12-11 17:01 ` Anthony Liguori
2009-12-11 17:31 ` Chris Wright
2009-12-11 17:02 ` Yaniv Kamay
2009-12-11 17:16 ` Anthony Liguori
2009-12-11 17:21 ` Alexander Graf
2009-12-11 17:28 ` Anthony Liguori
2009-12-11 17:18 ` Alexander Graf
2009-12-11 18:49 ` Glauber Costa
2009-12-11 15:57 ` Anthony Liguori
2009-12-11 16:47 ` Yaniv Kamay
2009-12-11 16:57 ` Chris Wright
2009-12-11 17:00 ` Anthony Liguori
2009-12-11 17:38 ` Johannes Schindelin
2009-12-11 18:48 ` Izik Eidus
2009-12-11 18:57 ` Ben Taylor
2009-12-11 19:06 ` Izik Eidus
2009-12-11 19:09 ` Glauber Costa
2009-12-11 19:00 ` Izik Eidus
2009-12-11 19:06 ` Anthony Liguori
2009-12-11 19:22 ` Izik Eidus
2009-12-11 19:37 ` Glauber Costa
2009-12-11 19:07 ` Glauber Costa
2009-12-11 19:24 ` Izik Eidus
2010-01-23 23:39 ` Izik Eidus
2009-12-11 19:03 ` malc
2009-12-11 19:10 ` Izik Eidus
2009-12-11 19:24 ` malc
2009-12-11 19:33 ` Izik Eidus
2009-12-11 19:53 ` malc
2009-12-11 20:26 ` Izik Eidus
2009-12-13 11:11 ` Izik Eidus
2009-12-11 19:04 ` Anthony Liguori
2009-12-11 19:15 ` Glauber Costa
2009-12-11 19:25 ` Izik Eidus
2009-12-11 19:42 ` Chris Wright
2009-12-11 19:21 ` Izik Eidus
2009-12-11 19:30 ` Anthony Liguori
2009-12-11 19:39 ` Izik Eidus
2009-12-11 19:51 ` Anthony Liguori
2009-12-11 20:21 ` Izik Eidus
2009-12-11 20:46 ` Anthony Liguori
2009-12-11 21:13 ` Izik Eidus
2009-12-11 21:54 ` Anthony Liguori
2009-12-11 22:34 ` Izik Eidus
2009-12-12 0:54 ` [Qemu-devel] " Paolo Bonzini
2009-12-12 3:34 ` Anthony Liguori
2009-12-12 9:14 ` Paolo Bonzini
2009-12-12 15:11 ` Anthony Liguori
2009-12-12 16:09 ` Avi Kivity
2009-12-12 17:28 ` Anthony Liguori
2009-12-13 10:18 ` Avi Kivity
2009-12-11 22:08 ` [Qemu-devel] " Alexander Graf
2009-12-11 22:33 ` Dor Laor
2009-12-11 22:46 ` Izik Eidus
2009-12-11 23:54 ` Alexander Graf
2009-12-12 0:14 ` Izik Eidus
2009-12-12 0:27 ` Alexander Graf
2009-12-12 0:53 ` Izik Eidus
2009-12-12 1:08 ` Alexander Graf
2009-12-12 1:33 ` Izik Eidus
2009-12-11 23:58 ` [Qemu-devel] X support for QXL and SPICE Soeren Sandmann
2009-12-12 0:05 ` [Qemu-devel] " Alexander Graf
2009-12-12 0:31 ` Izik Eidus
2009-12-12 0:37 ` Alexander Graf
2009-12-12 0:08 ` Izik Eidus
2009-12-12 3:31 ` [Qemu-devel] " Anthony Liguori
2009-12-12 3:52 ` Izik Eidus
2009-12-12 15:13 ` Anthony Liguori
2009-12-12 15:29 ` Izik Eidus
2009-12-12 15:43 ` Alexander Graf
2009-12-12 16:01 ` Izik Eidus
2009-12-12 6:22 ` Dave Airlie
2009-12-12 16:39 ` Soeren Sandmann
2009-12-14 14:07 ` Gerd Hoffmann
2009-12-14 13:56 ` [Qemu-devel] Spice project is now open Gerd Hoffmann
2009-12-14 14:33 ` Anthony Liguori
2009-12-11 20:32 ` Izik Eidus
2009-12-11 20:48 ` Anthony Liguori
2009-12-11 21:31 ` Izik Eidus
2009-12-11 21:58 ` Anthony Liguori
2009-12-11 22:55 ` Chris Wright
2009-12-12 3:27 ` Anthony Liguori
2009-12-12 1:03 ` [Qemu-devel] " Paolo Bonzini
2009-12-12 3:44 ` Anthony Liguori
2009-12-12 14:44 ` Andrea Arcangeli
2009-12-12 15:03 ` Anthony Liguori
2009-12-12 16:06 ` Andrea Arcangeli
2009-12-12 17:40 ` Anthony Liguori
2009-12-12 17:48 ` Izik Eidus
2009-12-12 19:26 ` Anthony Liguori
2009-12-12 19:48 ` Izik Eidus
2009-12-12 22:41 ` Dor Laor
2009-12-12 22:35 ` Dor Laor
2009-12-12 23:46 ` Anthony Liguori
2009-12-13 0:23 ` Daniel P. Berrange
2009-12-13 10:46 ` Avi Kivity
2009-12-14 14:42 ` Anthony Liguori
2009-12-14 14:53 ` Avi Kivity
2009-12-14 15:17 ` Daniel P. Berrange
2009-12-14 15:21 ` Avi Kivity
2009-12-14 15:46 ` Anthony Liguori
2009-12-14 15:10 ` Daniel P. Berrange
2009-12-14 15:50 ` Anthony Liguori
2009-12-14 16:00 ` Avi Kivity
2009-12-14 16:15 ` Anthony Liguori
2009-12-14 17:52 ` Mark McLoughlin
2009-12-13 14:56 ` Gildas Le Nadan [this message]
2009-12-14 14:40 ` Gerd Hoffmann
2009-12-14 14:50 ` Anthony Liguori
2009-12-12 23:43 ` Andrea Arcangeli
2009-12-12 23:52 ` Anthony Liguori
2009-12-13 0:04 ` Andrea Arcangeli
2009-12-13 0:18 ` Anthony Liguori
2009-12-13 9:10 ` Izik Eidus
2009-12-15 13:25 ` Soeren Sandmann
2009-12-11 19:25 ` [Qemu-devel] " Mark McLoughlin
2009-12-11 19:38 ` Anthony Liguori
2009-12-11 19:45 ` Mark McLoughlin
2009-12-11 19:53 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B250098.8040306@gmail.com \
--to=gildas.ml@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).