docker进阶与实战 5 docker网络

docker原生网络不足,第三方SDN解决方案来满足各种需求.
docker收购socketplane后,libnetwork项目开始发力.
libnetwork定义了新的容器网络模型CNM,标准API为容器配置网络,底层适配各种驱动.
CNM包括三个概念:
    沙盒:linux平台上基于linux network namespace.在一个隔离的环境中保存网络配置.沙盒可以包含多个网络的endpoint.
    Endpoint:将沙盒接入网络,一个Endpiont只能属于一个沙盒,一个沙盒可以通过多个endpiont接入不同的网络.当前使用的是veth pair接口
    网络:endpoint集合,实现vlan,bridge等网络功能
docker进阶与实战 5 docker网络
目前已经实现的5种网络驱动:bridge,host,null,remote,overlay
libnetwork在linux下基于kernel的network namespace实现.
实现5种网络功能:
     none:不配置网络
     container:共享同一network namespace的配置,所以IP等信息都一样.
     host:共享主机上root network namespace,是不安全的.
     bridge(默认):NAT模式.通信通过主机的iptables控制.
     overlay:docker原生跨主机多子网模型,复杂,底层使用KV存储系统进行消息同步,核心是linux bridge与vxlan隧道实现跨主机.
          vxlan ID从256-1000
          网络效率并不高
下面是我绘制的bridge与overlay的网络图
docker进阶与实战 5 docker网络


上一篇:从“卖火柴的小男孩”到宜家创始人,揭秘“家居帝国”三大哲学


下一篇:Silverlight+WCF 实战-网络象棋最终篇之房间装修-WCF端(二)