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 测试是相通的

  

  工作原理

  

Docker之OVS网络的更多相关文章

  1. 高级网络功能(Docker支持的网络定制配置)

    网络的高级知识,包括网络的启动和配置参数.DNS的使用配置.容器访问和端口映射的相关实现. 在一些具体场景中,Docker支持的网络定制配置,通过Linux命令来调整.补充.甚至替换Docker默认的 ...

  2. Docker多主机网络 OpenvSwitch

    一.Open vSwitch    Open vSwitch(以下简称为OVS),英文全称:OpenVirtual Switch,顾名思义,Open vSwitch就是开放虚拟交换.我们可以把他理解成 ...

  3. 在docker里部署网络服务

    之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...

  4. 理解Docker单机容器网络

    在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通 ...

  5. docker 配置桥接网络

    2.5 docker配置桥接网络(上): 为了使本地网络中的机器和Docker 容器更方便的通信,我们经常会有将Docker容器 配置到和主机同一网段的需求. 这个需求其实很容器实现, 我们只需要将D ...

  6. Docker容器的网络连接

    Docker容器的网络连接 Docker容器的网络连接 我们用ifconfig命令来查看网络设备 我们可以看到上面有个叫docker0的网络设备,docker守护进程就是通过docker0为docke ...

  7. docker多主机网络方案

    本文探讨Docker多主机网络的性能. 在过去的博文里,我测试过 Docker的网络 . MySQL服务器团队 提供了他们自己的结果,和我的观察是一致的. 本文里一系列的测试,想更多关注使用多主机的D ...

  8. Docker跨主机网络——overlay

    前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudM ...

  9. Docker 单主机网络

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 当容器逐步向容器集群,容器云技术演进的时候,一个不得不面对的问题就是各 ...

随机推荐

  1. mysql主备配置方法

    1. 选择两台机器(这里选的centos6.5 final),安装相同版本的mysql yum install mysql ; yum install mysql-server; 2. 启动mysql ...

  2. 使用VirtualBox在Ubuntu下虚拟Windows XP共享文件夹设置方法

    1.首先保证虚拟的Windows XP有虚拟光驱(正常安装的都是有的,因为在ubuntu下一般都是用硬盘虚拟安装的),然后在已经运行起来的Windows XP菜单栏上选择“设备-安装增强功能“,如果不 ...

  3. Win10更新搜狗输入法后重启输入密码蓝屏

    解决办法:如果能进入安全模式,卸载搜狗输入法:不行的话(好像不行)只能重装系统:因为蓝屏后就基本开不了了!!!生气!! win10 1809 19.3月累积更新之后蓝屏:安装了搜狗输入法的win10 ...

  4. PPTP 在Centos 7.1 建立方法与失效处理

    # yum install pptp pptp-setup pptpsetup --create vpn --server  (serverName) --username (Username)  - ...

  5. fork failed because of Out Of Memory

    Maybe virtual memory over commit is prevented in your system. If it is prevented, then the virtual m ...

  6. 谈谈MySQL死锁 一

    数据越来越和我们的生活离不开,数据在生命周期的各个阶段有着不同的痛点和需求以及特殊场景. CURD是数据的四大基本需求:写入,更新,读取,删除. 今天,来谈一谈死锁问题 死锁是高并发下MySQL不可回 ...

  7. C#中回滚TransactionScope的使用方法和原理

    TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成   实事上,一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事 ...

  8. [Aaronyang] 写给自己的WPF4.5 笔记17[Page实现页面导航]

    1. 第一个Page页使用 新建PageDemo解决方案,默认wpf应用程序 右键项目新建页,然后指定App.xaml的默认启动窗口,为Page1.xaml,F5运行项目 文章内容已经迁移http:/ ...

  9. appium 后台运行shell脚本

    appium 在后台运行,把启动appium命令保存为一个shell文件,文件名包含appium,如start_appium.sh.由于启动前要杀掉已经启动的appium服务, BUILD_ID=do ...

  10. app 调用接口

    app 调用接口 /// <summary> /// 是否跳转到活动注册成功页面 /// </summary> /// <returns></returns& ...