[Lxc-users] port numbers for containers
Daniel Lezcano
dlezcano at fr.ibm.com
Thu Aug 12 08:29:07 UTC 2010
On 08/12/2010 01:05 AM, Nirmal Guhan wrote:
> On Wed, Aug 11, 2010 at 11:05 AM, Serge Hallyn
> <serge.hallyn at canonical.com> wrote:
>> Quoting Nirmal Guhan (vavatutu at gmail.com):
>>> On Wed, Aug 11, 2010 at 5:06 AM, Serge Hallyn
>>> <serge.hallyn at canonical.com> wrote:
>>>> Quoting Nirmal Guhan (vavatutu at gmail.com):
>>>>> Hi,
>>>>>
>>>>> Want to know if port numbers are virtualized for containers or do the
>>>>> containers and host share the port space ? Please let me know.
>>>>
>>>> Wrong layer. If the container shares a network namespace with the
>>>> host, then it shares its networking. If it has its own network
>>>> namespace, then it has its own entire network stack. So no, 'port
>>>> space' isn't virtualized.vs.shared, but the network devices are.
>>>>
>>> Thanks. How do I configure the container to have its own network stack?
>>
>> I did
>>
>> cat>> /etc/lxc-basic.conf<< EOF
>> lxc.network.type=veth
>> lxc.network.link=virbr0
>> lxc.network.flags=up
>> EOF
>>
>> lxc-create -n ubuntu1 -f /etc/lxc-basic.conf -t ubuntu
>
> Thanks. If I do macvlan, I assume there is no separate network
> namespace and hence ports will be shared and otherwise(veth) not ?
If you specify a lxc.network.type=<type>, you will have automatically a
new network stack. That means your own interfaces, ip addresses, routes,
iptables, ports, etc ...
As Serge explained, the network isolation/virtualization acts at the
layer2, meaning it *begins* at the layer2, so the upper network layer
will be virtualized too.
When you have a new network stack, your port numbers will not overlap
with the system or the other containers. For example, you can launch
several sshd or httpd in different containers without conflicting with
the port 22 or 80.
If you don't specify lxc.network.type, your container will share the
network stack with the host, hence if the host is running sshd, you
won't be able to start another sshd in the container because they will
conflict on port 22.
Answering to your question, if you do lxc.network.type=macvlan, the
network stack will be private to your container.
-- Daniel
More information about the lxc-users
mailing list