Docker OpenvSwitch Network 介绍
什么是OpenVSwich
- OpenvSwich Network:属于第三方网络项目,可以理解为是一个标准的交换机协议。
- OpenvSwich:开放虚拟交换标准,是一种基于开源Apache2.0许可证的多层软件交换机,专门管理多租赁云计算网络环境,支持KVM、Xen等虚拟化技术。
支持以下功能:
1. 支持标准802.1Q VLAN模块的Trunk和access端口模式;
2. QoS(Quality of Service)配置,及管理;
3. 支持OpenFlow协议;
4. 支持GRE它是点到点的隧道协议、VXLAN、STT和LISP隧道;
5. 具有C和Python接口配置数据库;
6. 支持内核态和用户态的转发引擎设置;
7. 支持流量控制及监控。
主要组成部分:
- ovs-vswitchd 一个实现交换机的守护程序
- ovsdb-server 一个轻量级数据库,ovs-vswitchd查询以获取其配置
- ovs-dpctl 用于配置交换机的内核模块工具
- ovs-vsctl 用于查看和更新ovs-vswitchd的配置工具
- ovs-appctl 一个向运行OVS守护程序发送命令的工具
还提供了openflow的工具:
- ovs-ofctl 用于查看和控制OpenFlow交换机和控制器
- ovs-pki 用于创建和管理公钥
- ovs-tcpundump 解析openflow消息
Docker OpenvSwitch 工作原理
两台节点主机容器,Container通过OpenvSitch通信
1、Container eth0:veth它会将网络桥接到docker0网络。
2、Docker0:Docker网桥默认网络。
3、br0:OVS网桥,它会将Docker0网桥加入到br0网络,它会捕获到Container eth0 发出的数据包。
4、gre0:OVS网络捕获数据包后通过gre协议将数据包封装。
5、eth0:物理网卡,它会把gre数据包,转发给节点2。
6、节点2的eth0接收数据包后->交给OVS进行街封装->获取获取访问地址->装发到docker0->再交给容器的eth0。