Network namespace 是实现 linux 网络空间隔离和网络虚拟化的基础,无论是docker还是其他虚拟化技术也都是通过 linux 的 network namespace 实现的网络隔离。之前的几篇文章从 kubernetes 部署后的结果展开分析了 pod、service 和 flannel 的原理。
kubernetes service 从简介到原理一篇全搞定
本篇就通过 ip 命令实现新建一个 network namespace 与外网通信的过程。
新建 Network Namespace
当我们使用一个不认识的命令时,可以首先使用 help 命令查看使用帮助。
我们使用 ip netns list 查看当前是没有 network ns 的。
使用下面的命令创建一个 ns。
ip netns add ns1
创建好新的 ns 之后,可以使用 exec 命令查看某个 ns 中的具体信息。
ip netns exec ns1 ip link show