基于OVS+GRE实现Docker容器跨主机通讯

13 篇文章 1 订阅
8 篇文章 1 订阅

基于OVS+GRE实现Docker容器跨主机通讯

示意图如下:
这里写图片描述

一、安装Open vSwitch
操作系统及版本:ubuntu14.04
docker版本: 1.11.2

1、由于之前安装过KVM,其在本机生成了一个名为virbr0的bridge,这里我们需要事先将其删除,否则可能会与Open vSwitch产生不兼容的问题,命令如下:
virsh net-destroy default
virsh net-autostart –disable default
这里写图片描述

2、这里我们同样也不需要bridge模块:
aptitude purge ebtables
这里写图片描述

3、下面开始安装openvswitch相关包:
apt-get install openvswitch-switch

4、查看下ovs的运行状况:
ps -ea | grep ovs
这里写图片描述

5、查看下安装的ovs的版本:
ovs-appctl –version
这里写图片描述

6、查看下当前ovs支持的OpenFlow协议的版本:
ovs-ofctl –version
这里写图片描述

7、通过ovs创建一个网桥 br0:
ovs-vsctl add-br br0
ifconfig
这里写图片描述
通过ifconfig命令,我们发现多了一个br0网桥。

二、修改Docker0的网络地址

在docker32上面
vi /etc/default/docker
加上 –bip=172.17.42.1/24
这里写图片描述

重启服务
service docker restart
ifconfig
这里写图片描述

docker33上面也类似修改
加上 –bip=172.17.43.1/24
这里写图片描述

三、操作设置及测试

docker33上面操作(docker32上面也一样,只是remote_ip为11.11.175.33):
将gre0挂接到br0
ovs-vsctl add-port br0 gre0 – set interface gre0 type=gre option:remote_ip=11.11.175.32
把br0和docker0连起来
brctl addif docker0 br0
启动设备br0
ip link set dev br0 up
启动设备docker0
ip link set dev docker0 up
添加到网络172.17.0.0/16的路由,使其经过设备docker0
ip route add 172.17.0.0/16 dev docker0

ip a
这里写图片描述

ip route
这里写图片描述

33上面ping 127.17.42.1
这里写图片描述

33上启动一个容器
docker start test_mysql02
查看IP
这里写图片描述

32上面启动一个容器
查看IP
这里写图片描述

互相ping
这里写图片描述

这里写图片描述

显示两个跨主机容器能互相ping通

查看数据流包流向
tshark -i eth0 ip proto gre
这里写图片描述

查看创建的port
这里写图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值