netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Herbert Poetzl <herbert@13thfloor.at>
To: Daniel Lezcano <dlezcano@fr.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	netdev@vger.kernel.org, "Serge E. Hallyn" <serue@us.ibm.com>,
	Andrey Savochkin <saw@sw.ru>,
	haveblue@us.ibm.com, clg@fr.ibm.com, sam@vilain.net,
	Andrew Morton <akpm@osdl.org>,
	dev@sw.ru, devel@openvz.org, alexey@sw.ru,
	Linux Containers <containers@lists.osdl.org>
Subject: Re: [RFC] network namespaces
Date: Wed, 6 Sep 2006 18:56:43 +0200	[thread overview]
Message-ID: <20060906165642.GA26202@MAIL.13thfloor.at> (raw)
In-Reply-To: <44FE907F.7090508@fr.ibm.com>

On Wed, Sep 06, 2006 at 11:10:23AM +0200, Daniel Lezcano wrote:
> Hi Herbert,
> 
> >well, the 'ip subset' approach Linux-VServer and
> >other Jail solutions use is very clean, it just does
> >not match your expectations of a virtual interface
> >(as there is none) and it does not cope well with
> >all kinds of per context 'requirements', which IMHO
> >do not really exist on the application layer (only
> >on the whole system layer)
> >
> >IMHO that would be quite simple, have a 'namespace'
> >for limiting port binds to a subset of the available
> >ips and another one which does complete network 
> >virtualization with all the whistles and bells, IMHO
> >most of them are orthogonal and can easily be combined
> >
> > - full network virtualization
> > - lightweight ip subset 
> > - both
> >
> >IMHO this requirement only arises from the full system
> >virtualization approach, just look at the other jail
> >solutions (solaris, bsd, ...) some of them do not even 
> >allow for more than a single ip but they work quite
> >well when used properly ...
> 
> As far as I see, vserver use a layer 3 solution but, when needed, the
> veth "component", made by Nestor Pena, is used to provide a layer 2
> virtualization. Right ?

well, no, we do not explicitely use the VETH daemon
for networking, although some folks probably make use
of it, mainly because if you realize that this kind 
of isolation is something different and partially
complementary to network virtualization, you can do
live without the layer 2 virtualization in almost
all cases, nevertheless, for certain purposes layer
2/3 virtualization is required and/or makes perfect
sense

> Having the two solutions, you have certainly a lot if information
> about use cases. 

> From the point of view of vserver, can you give some
> examples of when a layer 3 solution is better/worst than 
> a layer 2 solution ? 

my point (until we have an implementation which clearly
shows that performance is equal/better to isolation)
is simply this:

 of course, you can 'simulate' or 'construct' all the
 isolation scenarios with kernel bridging and routing
 and tricky injection/marking of packets, but, this
 usually comes with an overhead ...

> Who wants a layer 2/3 virtualization and why ?

there are some reasons for virtualization instead of
pure isolation (as Linux-VServer does it for now)

 - context migration/snapshot (probably reason #1)
 - creating network devices inside a guest
   (can help with vpn and similar)
 - allowing non IP protocols (like DHCP, ICMP, etc)

the problem which arises with this kind of network
virtualization is that you need some additional policy
for example to avoid sending 'evil' packets and/or
(D)DoSing one guest from another, which again adds
further overhead, so basically if you 'just' want
to have network isolation, you have to do this:

 - create a 'copy' of your hosts networking inside
   the guest (with virtual interfaces)
 - assign all the same (subset) ips and this to
   the virtual guest interfaces
 - activate some smart bridging code which 'knows'
   what ports can be used and/or mapped 
 - add policy to block unwanted connections and/or
   packets to/from the guest

all this sounds very intrusive and for sure (please
proove me wrong here :) adds a lot of overhead to the
networking itself, while a 'simple' isolation approach
for IP (tcp/udp) is (almost) without any cost, certainly
without overhead once a connection is established.

> These informations will be very useful.

HTH,
Herbert

> Regards
> 
>   -- Daniel

  reply	other threads:[~2006-09-06 16:56 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-15 14:20 [RFC] network namespaces Andrey Savochkin
2006-08-15 14:48 ` [PATCH 1/9] network namespaces: core and device list Andrey Savochkin
2006-08-16 14:46   ` Dave Hansen
2006-08-16 16:45     ` Stephen Hemminger
2006-08-15 14:48 ` [PATCH 2/9] network namespaces: IPv4 routing Andrey Savochkin
2006-08-15 14:48 ` [PATCH 3/9] network namespaces: playing and debugging Andrey Savochkin
2006-08-16 16:46   ` Stephen Hemminger
2006-08-16 17:22     ` Eric W. Biederman
2006-08-17  6:28       ` Andrey Savochkin
2006-08-17  8:30     ` Kirill Korotaev
2006-08-15 14:48 ` [PATCH 4/9] network namespaces: socket hashes Andrey Savochkin
2006-09-18 15:12   ` Daniel Lezcano
2006-09-20 16:32     ` Andrey Savochkin
2006-09-21 12:34       ` Daniel Lezcano
2006-08-15 14:48 ` [PATCH 5/9] network namespaces: async socket operations Andrey Savochkin
2006-09-22 15:33   ` Daniel Lezcano
2006-09-23 13:16     ` Andrey Savochkin
2006-08-15 14:48 ` [PATCH 6/9] allow proc_dir_entries to have destructor Andrey Savochkin
2006-08-15 14:48 ` [PATCH 7/9] net_device seq_file Andrey Savochkin
2006-08-15 14:48 ` [PATCH 8/9] network namespaces: device to pass packets between namespaces Andrey Savochkin
2006-08-15 14:48 ` [PATCH 9/9] network namespaces: playing with pass-through device Andrey Savochkin
2006-08-16 11:53 ` [RFC] network namespaces Serge E. Hallyn
2006-08-16 15:12   ` Alexey Kuznetsov
2006-08-16 17:35     ` Eric W. Biederman
2006-08-17  8:29       ` Kirill Korotaev
2006-09-05 13:34   ` Daniel Lezcano
2006-09-05 14:45     ` Eric W. Biederman
2006-09-05 15:32       ` Daniel Lezcano
2006-09-05 16:53       ` Herbert Poetzl
2006-09-05 18:27         ` Eric W. Biederman
2006-09-06 14:52           ` Kirill Korotaev
2006-09-06 15:09             ` [Devel] " Kir Kolyshkin
2006-09-06  9:10         ` Daniel Lezcano
2006-09-06 16:56           ` Herbert Poetzl [this message]
2006-09-06 17:37             ` [Devel] " Kir Kolyshkin
2006-09-06 18:34               ` Eric W. Biederman
2006-09-06 18:58                 ` Kir Kolyshkin
2006-09-06 20:53                   ` Cedric Le Goater
2006-09-06 23:06                 ` Caitlin Bestler
2006-09-06 23:25                   ` Eric W. Biederman
2006-09-07  0:53                     ` Stephen Hemminger
2006-09-07  5:11                       ` Eric W. Biederman
2006-09-07  8:25                   ` Daniel Lezcano
2006-09-07 18:29                     ` Eric W. Biederman
2006-09-08  6:02                       ` Herbert Poetzl
2006-09-07 16:23                 ` [Devel] " Kirill Korotaev
2006-09-07 17:27                   ` Herbert Poetzl
2006-09-07 19:50                     ` Eric W. Biederman
2006-09-08 13:10                     ` Dmitry Mishin
2006-09-08 18:11                       ` Herbert Poetzl
2006-09-09  7:57                         ` Dmitry Mishin
2006-09-10  2:47                           ` Herbert Poetzl
2006-09-10  3:41                             ` Eric W. Biederman
2006-09-10  8:11                               ` Dmitry Mishin
2006-09-10 11:48                                 ` Eric W. Biederman
2006-09-10 19:19                               ` [Devel] " Herbert Poetzl
2006-09-10  7:45                             ` Dmitry Mishin
2006-09-10 19:22                               ` Herbert Poetzl
2006-09-12  3:26                               ` Eric W. Biederman
2006-09-11 14:40                           ` [Devel] " Daniel Lezcano
2006-09-11 14:57                             ` Herbert Poetzl
2006-09-11 15:04                               ` Daniel Lezcano
2006-09-11 15:10                               ` Dmitry Mishin
2006-09-12  3:28                                 ` Eric W. Biederman
2006-09-12  7:38                                   ` Dmitry Mishin
2006-09-06 21:44               ` [Devel] " Daniel Lezcano
2006-09-06 17:58             ` Eric W. Biederman
2006-09-05 15:47     ` Kirill Korotaev
2006-09-05 17:09     ` Eric W. Biederman
2006-09-06 20:25       ` Cedric Le Goater
2006-09-06 20:40         ` Eric W. Biederman
2006-10-04  9:40 ` Daniel Lezcano

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=20060906165642.GA26202@MAIL.13thfloor.at \
    --to=herbert@13thfloor.at \
    --cc=akpm@osdl.org \
    --cc=alexey@sw.ru \
    --cc=clg@fr.ibm.com \
    --cc=containers@lists.osdl.org \
    --cc=dev@sw.ru \
    --cc=devel@openvz.org \
    --cc=dlezcano@fr.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=haveblue@us.ibm.com \
    --cc=netdev@vger.kernel.org \
    --cc=sam@vilain.net \
    --cc=saw@sw.ru \
    --cc=serue@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;
as well as URLs for NNTP newsgroup(s).