Linux Namespace : Network
Network namespace 在逻辑上是网络堆栈的一个副本,它有自己的路由、防火墙规则和网络设备。 默认情况下,子进程继承其父进程的 network namespace。也就是说,如果不显式创建新的 network namespace,所有进程都从 init 进程继承相同的默认 network namespace。 每个新创建的 network namespace 默认有一个本地环回接口 lo,除此之外,所有的其他网络设备(物理/虚拟网络接口,网桥等)只能属于一个 network namespace。每个 socket 也只能属于一个 network namespace。 说明:本文的演示环境为 ubuntu 16.04。 ip netns 命令 ip netns 命令用来管理 network namespace。本文将使用 ip netns 命令来创建和操作 network namespace。有关 ip netns 命令的详细介绍请参考笔者的博文《 Linux ip netns 命令 》。 创建 network namespace 我们先查一下看默认的 network namespace 的 ID: $ readlink /proc/$$/ns/net 然后通过 ip netns add 命令创建名为 mynet 的 network namespace: $ sudo