| Home » Mailing lists » Devel » [RFC] network namespaces 
	| 
		
			| [RFC] network namespaces [message #5165] | Tue, 15 August 2006 14:20  |  
			| 
				
				
					|  Andrey Savochkin Messages: 47
 Registered: December 2005
 | Member |  |  |  
	| Hi All, 
 I'd like to resurrect our discussion about network namespaces.
 In our previous discussions it appeared that we have rather polar concepts
 which seemed hard to reconcile.
 Now I have an idea how to look at all discussed concepts to enable everyone's
 usage scenario.
 
 1. The most straightforward concept is complete separation of namespaces,
 covering device list, routing tables, netfilter tables, socket hashes, and
 everything else.
 
 On input path, each packet is tagged with namespace right from the
 place where it appears from a device, and is processed by each layer
 in the context of this namespace.
 Non-root namespaces communicate with the outside world in two ways: by
 owning hardware devices, or receiving packets forwarded them by their parent
 namespace via pass-through device.
 
 This complete separation of namespaces is very useful for at least two
 purposes:
 - allowing users to create and manage by their own various tunnels and
 VPNs, and
 - enabling easier and more straightforward live migration of groups of
 processes with their environment.
 
 2. People expressed concerns that complete separation of namespaces
 may introduce an undesired overhead in certain usage scenarios.
 The overhead comes from packets traversing input path, then output path,
 then input path again in the destination namespace if root namespace
 acts as a router.
 
 So, we may introduce short-cuts, when input packet starts to be processes
 in one namespace, but changes it at some upper layer.
 The places where packet can change namespace are, for example:
 routing, post-routing netfilter hook, or even lookup in socket hash.
 
 The cleanest example among them is post-routing netfilter hook.
 Tagging of input packets there means that the packets is checked against
 root namespace's routing table, found to be local, and go directly to
 the socket hash lookup in the destination namespace.
 In this scheme the ability to change routing tables or netfilter rules on
 a per-namespace basis is traded for lower overhead.
 
 All other optimized schemes where input packets do not travel
 input-output-input paths in general case may be viewed as short-cuts in
 scheme (1).  The remaining question is which exactly short-cuts make most
 sense, and how to make them consistent from the interface point of view.
 
 My current idea is to reach some agreement on the basic concept, review
 patches, and then move on to implementing feasible short-cuts.
 
 Opinions?
 
 Next in this thread are patches introducing namespaces to device list,
 IPv4 routing, and socket hashes, and a pass-through device.
 Patches are against 2.6.18-rc4-mm1.
 
 Best regards,
 
 Andrey
 |  
	|  |  | 
	Goto Forum:
	|  |  | [RFC] network namespaces |  
	|  |  | [PATCH 1/9] network namespaces: core and device list |  
	|  |  | Re: [PATCH 1/9] network namespaces: core and device list |  
	|  |  | Re: [PATCH 1/9] network namespaces: core and device list |  
	|  |  | [PATCH 2/9] network namespaces: IPv4 routing |  
	|  |  | [PATCH 6/9] allow proc_dir_entries to have destructor |  
	|  |  | [PATCH 5/9] network namespaces: async socket operations |  
	|  |  | Re: [PATCH 5/9] network namespaces: async socket operations |  
	|  |  | Re: [PATCH 5/9] network namespaces: async socket operations |  
	|  |  | [PATCH 7/9] net_device seq_file |  
	|  |  | [PATCH 8/9] network namespaces: device to pass packets between namespaces |  
	|  |  | [PATCH 4/9] network namespaces: socket hashes |  
	|  |  | Re: [PATCH 4/9] network namespaces: socket hashes |  
	|  |  | Re: [PATCH 4/9] network namespaces: socket hashes |  
	|  |  | Re: [PATCH 4/9] network namespaces: socket hashes |  
	|  |  | [PATCH 9/9] network namespaces: playing with pass-through device |  
	|  |  | Re: [RFC] network namespaces By: serue  on Wed, 16 August 2006 11:53 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Wed, 16 August 2006 17:35 |  
	|  |  | Re: [RFC] network namespaces By: dev  on Thu, 17 August 2006 08:28 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Tue, 05 September 2006 14:45 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces By: kir  on Wed, 06 September 2006 17:36 |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Wed, 06 September 2006 18:34 |  
	|  |  | Re: [RFC] network namespaces By: kir  on Wed, 06 September 2006 18:56 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | RE: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Thu, 07 September 2006 18:29 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces By: dev  on Thu, 07 September 2006 16:20 |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Tue, 12 September 2006 03:26 |  
	|  |  | Re:  Re: [RFC] network namespaces By: ebiederm  on Sun, 10 September 2006 03:41 |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Tue, 12 September 2006 03:28 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces By: ebiederm  on Thu, 07 September 2006 19:50 |  
	|  |  | Re:  Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Wed, 06 September 2006 17:58 |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Tue, 05 September 2006 18:27 |  
	|  |  | Re: [RFC] network namespaces By: dev  on Wed, 06 September 2006 14:52 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: dev  on Tue, 05 September 2006 15:44 |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Tue, 05 September 2006 17:09 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re:  Re: [RFC] network namespaces By: kir  on Wed, 06 September 2006 15:09 |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Wed, 06 September 2006 20:40 |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Wed, 06 September 2006 23:25 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Thu, 07 September 2006 05:11 |  
	|  |  | Re: [RFC] network namespaces |  
	|  |  | Re: [RFC] network namespaces By: ebiederm  on Sun, 10 September 2006 11:48 |  
 
 Current Time: Fri Oct 31 19:42:14 GMT 2025 
 Total time taken to generate the page: 0.25555 seconds |