libnetwork & CNM
libnetwork是docker容器网络库, 最核心的内容使其定义的Container Network Model(CNM), 这个模型对容器网络进行了抽象, 由以下三类组件组成:
1) Sandbox, 容器的网络栈, 包含容器的Interface, 路由表和DNS设置, Linux Network Namespace是Sandbox的标准实现, Sandbox可以包含来自不同Network的Endpoint
2)Endpoint, 作用试讲Sandbox接入Network. Endpoint的典型实现是veth pair. 一个Endpoint只能属于一个网络, 也只能属于一个Sandbox
3)Network, 包含一组Endpoint, 同一Network的Endpoint可以直接通信, Network的实现可以是Linux Bridge, VLAN等
太复杂, 有需要时看原文实践…