Evgeniy Polyakov wrote:
On Mon, Dec 15, 2008 at 05:08:29PM -0600, Anthony Liguori 
([email protected]) wrote:
The KVM model is that a guest is a process. Any IO operations original from the process (QEMU). The advantage to this is that you get very good security because you can use things like SELinux and simply treat the QEMU process as you would the guest. In fact, in general, I think we want to assume that QEMU is guest code from a security perspective.

By passing up the network traffic to the host kernel, we now face a problem when we try to get the data back. We could setup a tun device to send traffic to the kernel but then the rest of the system can see that traffic too. If that traffic is sensitive, it's potentially unsafe.

You can even use unix sockets in this case, and each socket will be
named as virtio channels names. IIRC tun/tap devices can be virtualizen
with recent kernels, which also solves all problems of shared access.

There are plenty of ways to implement this kind of functionality instead
of developing some new protocol, which is effectively a duplication of
what already exists in the kernel.


Well, it is kinda pv-unix-domain-socket.
I did not understand how a standard unix domain in the guest can reach the host according
to your solution.

The initial implementation was some sort of pv-serial. Serial itself is low performing and there is no naming services what so every. Gleb did offer the netlink option as a beginning but we though a new address family would be more robust (you say too robust). So by suggestion new address family what can think of it as a pv-unix-domain-socket.
Networking IS used since we think it is a good 'wheel'.
Indeed, David is right that instead of adding a new chunk of code we can re-use the existing one. But we do have some 'new' (afraid to tell virtualization) problems that
might prevent us of using a standard virtual nic:
   - Even if we can teach iptables to ignore this interface, other
     3rd firewall might not obey: What if the VM is a Checkpoint firewall?
     What if the VM is windows? + using a non MS firewall?
- Who will assign IPs for the vnic? How can I assure there is no ip clash? The standard dhcp for the other standard vnics might not be in our control.

So I do understand the idea of using a standard network interface. It's just not that simple.
So ideas to handle the above are welcomed.
Otherwise we might need to go back to serial/pv-serial approach.

btw: here are the usages/next usages of vmchannel:
VMchannel is a host-guest interface and in the future guest-guest interface.
Currently/soon it is used for
   - guest statistics
   - guest info
   - guest single sign own
   - guest log-in log-out
   - mouse channel for multiple monitors
- cut&paste (guest-host, sometimes client-host-guest, company firewall blocks client-guest).
   - fencing (potentially)

tw2: without virtualization we wouldn't have new passionate issues to discuss about!
Cheers,
Dor
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to