Containers/Network virtualization

From OpenVZ Virtuozzo Containers Wiki
< Containers
Revision as of 16:40, 1 November 2006 by Kir (talk | contribs) (added to Containers cat.)
Jump to: navigation, search

External links

There are a number of approaches to the network virtualization, caused by different requirements for different usages. This page is made in order to summarize them and create solution possibly suitable for all.

Usages

Current known usages are:

  • Virtual Environments - complete OS environment, with it's own users, groups, filesystems and devices;
  • Application Containers - partly isolated environment with application inside.

Approaches

  • virtualization on the 2nd level (OpenVZ);
For input packets context switching is performed in device xmit code, requires virtual device for performing. For output, context is inherited from socket one.
  • virtualization on the 3d level (IBM);
For input packets context switching is performed in routing code, for output - inherited from socket one.
  • socket virtualization (Linux-VServer).
There is no context switching for packets at all, checks are performed between process and socket contexts.

Virtualization table

This is a summary table in order to show which core networking objects are virtualized/isolated in above approaches or not.

Virtualization approach network devices routing tables network sockets netfilters
2d level virtualization v v/i v v
3d level virtualization - i i -
bind filtering - - i -

Legend:

  • 'v' - virtualized
  • 'i' - isolated
  • '-' - neither virtualized nor isolated