OVS介绍
什么是OpenVSwich?
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 network rm 删除无关的网络
安装部署OVS并建立GRE隧道
节点1:192.168.56.128 容器网段:172.17.1.0/24
节点2:192.168.56.129 容器网段:172.17.2.0/24
修改容器的默认网段需要修改配置文件 不能是172.17.1.0/24
安装OVS
apt-get install openvswitch-switch bridge-utils
安装完成会以进程的方式启动两个进程一个虚拟交换机一个轻量级数据库
创建网桥并激活
ovs-vsctl add-br br0
ip link set dev br0 up
.将gre0虚拟接口加入网桥br0,并设置接口类型和对端IP地址(远程IP指定对端)
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.56.129
添加docker0网桥到OVS网桥br0
brctl addif docker0 br0
查看网桥信息
ovs-vsctl show
c0cdc0b1-4a93-4a3e-aaf7-6096abc32a8d
Bridge "br0"
Port "br0"
Interface "br0"
type: internal
Port "gre0"
Interface "gre0"
type: gre
options: {remote_ip="192.168.56.129"}
ovs_version: "2.9.0"
在节点2执行操作
apt-get install openvswitch-switch bridge-utils
ps -ef|grep open
ovs-vsctl add-br br0
ip link set dev br0 up
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.56.128
brctl addif docker0 br0
ovs-vsctl show
添加静态路由两个节点均操作
ip route add 172.17.0.0/16 dev docker0
创建容器测试互通
docker run -it busybox
其中节点1的ip为172.17.1.2 节点2的ip为172.17.2.2 测试是相通的
工作原理