Linux 在网络栈中引入了命名空间(Network Namespace),这些独立的协议栈被隔离到不同的命名空间中。处于不同命名空间的网络栈是完全隔离的,彼此之间无法通信,就好像两个 “平行宇宙”。通过这种对网络资源的隔离,就能在一个宿主机上虚拟多个不同的网络环境。
Docker 也正是利用了网络的命名空间特性,实现了不同容器之间网络的隔离。
在 Linux 的网络命名空间内可以有自己独立的路由表及独立的 iptables/Netfilter 设置来提供包转发、NAT 及 IP 包过滤等功能。
原文:https://www.cnblogs.com/lexiaofei/p/11459439.html