There are several approaches of how to virtualize networking for containers. Those are desribed below.
Contents
Layer 3 virtualized network interfaceEdit
This one is employed by OpenVZ's venet. See venet.
Layer 2 virtualized network interfaceEdit
This one is employed by OpenVZ's veth. See veth.
Layer 3 isolated network (bind filtering)Edit
This one is implemented in Linux-VServer. Basically, when a container calls bind()
with INADDR_ANY
, kernel actually binds the socket to some specific IP address(es). Some more details (not much) can be found at http://linux-vserver.org/Paper#Network_Separation