public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Sridhar Samudrala <sri@us.ibm.com>,
	avi@redhat.com, markmc@redhat.com, ogerlitz@voltaire.com,
	kvm@vger.kernel.org, qemu-devel@vger.kernel.org
Subject: Re: [PATCH qemu-kvm] Add raw(af_packet) network backend to qemu
Date: Wed, 27 Jan 2010 19:25:36 +0200	[thread overview]
Message-ID: <20100127172536.GD13260@redhat.com> (raw)
In-Reply-To: <4B6072E1.7030702@codemonkey.ws>

On Wed, Jan 27, 2010 at 11:07:45AM -0600, Anthony Liguori wrote:
> On 01/27/2010 10:59 AM, Michael S. Tsirkin wrote:
>> On Wed, Jan 27, 2010 at 08:07:11AM -0600, Anthony Liguori wrote:
>>    
>>> On 01/27/2010 03:24 AM, Michael S. Tsirkin wrote:
>>>      
>>>> I am not sure I agree with this sentiment.  The main issue being that
>>>> macvtap doesn't exist on all kernels :).
>>>>        
>>> Neither does vhost ;-)  If it were just that as the difference, I'd be
>>> inclined to agree, but macvtap is much better from a security PoV.
>>>
>>>      
>>>>> Not to mention that from a user perspective, raw makes almost no sense
>>>>> as it's an obscure socket protocol family.
>>>>>
>>>>> A user wants to do useful things like bridged networking or direct VF
>>>>> assignment.  We should have -net backends that reflect things that make
>>>>> sense to a user.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Anthony Liguori
>>>>>
>>>>>          
>>>> I agree to that. People don't even seem to agree whether it's a raw
>>>> socket or a packet socket :) We need a better name for this option: what
>>>> it really does is rely on an external device to loopback a packet to us,
>>>> so how about -net loopback or -net extbridge?
>>>>
>>>>        
>>> Specifically for VEPA, something like:
>>>
>>> -net extbridge,if=eth0
>>>
>>> or even
>>>
>>> -net vepa,if=eth0
>>>
>>> Would be fantastic.
>>>      
>> extbridge is IMO better.
>>
>>    
>>> I think the best way to achieve this is to
>>> introduce a small helper that gets called and can create a macvtap
>>> device and hand the file descriptor back to qemu :-)  A builtin backend
>>> would also be fine since we don't have the helper infrastructure.
>>>      
>> Excellent.
>> Sridhar, this is actually not a lot of work on top of what you
>> already posted.
>>
>>    
>
> N.B.  I had suggested using macvtap, not raw.

Well, this is an implementation detail :) In fact, I don't have any
objections to using macvtap.  As I tried to hint, macvtap doesn't seem
to exist in any Linux yet, packet sockets have been supported since
ages. So we might want to support packet sockets at least optionally
as a backend for extbridge.

>  In this case, the full  
> syntax would be:
>
> -net vepa,if=eth0
>
> or
>
> -net vepa,fd=N

I still hope it's extbridge, vepa is an acronym that will likely not be
known for 99% of users.

> where N is a macvtap fd.
>
> For raw, I think there's a real problem wrt security.  I think it's  
> important that we support running qemu as a non-privileged user.  In  
> fact, this seems to be the mode libvirt is now preferring to operate in.
>
> I think we need to re-evaluate the use of any raw socket by qemu as it's  
> very dangerous from a security perspective (assuming we cannot  
> introduced a "locked" raw socket mode).

As was pointed out on netdev and elsewhere this seems to be what
namespaces/selinux are there for. Can qemu be run within a namespace and
if yes would that address your concerns?  Security is probably a wrong
reason to use character devices: they are much more likely to have
security problems than standard interfaces.  Ease of setup/compatibility
with tap would be a better reason.

> Regards,
>
> Anthony Liguori
>
>>> Regards,
>>>
>>> Anthony Liguori
>>>      

  reply	other threads:[~2010-01-27 17:29 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26 20:40 [PATCH qemu-kvm] Add raw(af_packet) network backend to qemu Sridhar Samudrala
2010-01-26 20:47 ` Anthony Liguori
2010-01-26 20:50   ` Anthony Liguori
2010-01-26 23:19     ` Sridhar Samudrala
2010-01-27  9:24     ` Michael S. Tsirkin
2010-01-27  9:34       ` Arnd Bergmann
2010-01-27  9:44         ` Michael S. Tsirkin
2010-01-27 14:03           ` Anthony Liguori
2010-01-27 21:39             ` Arnd Bergmann
2010-01-27 22:56               ` Sridhar Samudrala
2010-01-28  6:06                 ` Arnd Bergmann
2010-01-28 16:53                   ` Jens Osterkamp
2010-01-28 11:22                 ` Or Gerlitz
2010-01-29 20:52                 ` Sridhar Samudrala
2010-01-27 14:07       ` Anthony Liguori
2010-01-27 16:59         ` Michael S. Tsirkin
2010-01-27 17:07           ` Anthony Liguori
2010-01-27 17:25             ` Michael S. Tsirkin [this message]
2010-01-27 17:36               ` Anthony Liguori
2010-01-27 17:54                 ` Sridhar Samudrala
2010-01-27 18:02                   ` Anthony Liguori
2010-01-27 18:03                     ` Michael S. Tsirkin
2010-01-27 19:54                       ` Anthony Liguori
2010-01-28  8:12                         ` Arnd Bergmann
2010-01-28 13:56                           ` Michael S. Tsirkin
2010-01-28 14:13                             ` Anthony Liguori
2010-01-28 14:39                               ` Anthony Liguori
2010-01-28 14:52                               ` Michael S. Tsirkin
2010-01-28 15:05                                 ` Anthony Liguori
2010-01-28 16:37                                   ` Michael S. Tsirkin
2010-01-28 17:58                                     ` Anthony Liguori
2010-01-28 18:04                                       ` Michael S. Tsirkin
2010-01-28 19:57                                         ` Anthony Liguori
2010-01-29 11:26                                           ` Michael S. Tsirkin
2010-01-28 20:29                                   ` Arnd Bergmann
2010-02-01 15:47                         ` Or Gerlitz
2010-01-27 18:12                 ` Michael S. Tsirkin
2010-01-26 23:15   ` Sridhar Samudrala
2010-01-27  0:06     ` [Qemu-devel] " Anthony Liguori
2010-01-27  6:52       ` Arnd Bergmann
2010-01-27 14:14         ` 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=20100127172536.GD13260@redhat.com \
    --to=mst@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=markmc@redhat.com \
    --cc=ogerlitz@voltaire.com \
    --cc=qemu-devel@vger.kernel.org \
    --cc=sri@us.ibm.com \
    /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