Docker+OpenvSwitch搭建VxLAN实验环境

一.概述                                                   

1.环境:我这里是2台linux机器(host1和host2),发行版是kali2.0,内核版本是4.3。每台机器都安装Docker、OpenvSwitch(ovs)。

2.host1和host2分别启动1个ubuntu的docker容器。

3.网络结构:

2.1:host1的eth0:192.168.2.1,host1里面的docker容器ip地址是10.1.2.3

2.2:host2的eth0:192.168.2.2,host2里面的docker容器ip地址是10.1.2.4

2.3:host1和host2的eth0可以ping通。

4.目标是在2个不同宿主机的docker容器之间建立VxLAN隧道,让它们可以通信!

二.安装基本软件                                     

1.安装docker并获取ubuntu镜像

1 sudo apt-get install docket.io
2 sudo docker pull ubuntu

2.安装openvswitch和ovs的docker辅助脚本

1 sudo apt-get install openvswitch-switc
2 //OpenvSwitch 项目提供的支持 Docker 容器的辅助脚本 ovs-docker
3 wget https://github.com/openvswitch/ovs/raw/master/utilities/ovs-docker
4 chmod a+x ovs-docker

三.配置                                                   

1.在host1上面用ovs创建一个虚拟网桥,并给网桥一个ip

1 sudo ovs-vsctl add-br vxbr
2 sudo ifconfig vxbr 10.1.2.1/24

2.给网桥添加一个vxlan类型的端口,remote_ip就是host2的eth0地址!!!

1 sudo ovs-vsctl add-port vxbr vxlan -- set interface vxlan type=vxlan options:remote_ip=192.168.2.2

3.启动一个没有以太网卡的docker容器

1 sudo docker run --net=none --privileged=true -it ubuntu

并记下这个容器的ID,我这里是:b062406bc6b6。此时在这个容器里面ifconfig只能看到一个lo的设备。

4.给容器机指定一个eth0并绑定到宿主机的vxbr网桥

1 sudo ./ovs-docker add-port vxbr eth0 b062406bc6b6

此时回到容器里面,ifconfig会看到出现了一个eht0。给它一个ip:

1 ifconfig eth0 10.1.2.3/24

5.查看ovs配置

1 sudo ovs-vsctl show

我们可以看到vxbr网桥上面有3个端口,一个是自己跟本机通信(这里是本机的eth0)的端口,一个是vxlan的端口,最后一个是docker容器机的eth0。

host2配置跟上面差不多,把host2的虚拟网桥vxbr改为10.1.2.2/24,vxlan的remote_ip改成host1的192.168.2.1,host2的docker容器机ip改为10.1.2.4/24

四.验证                                                   

此时的网络结构:

host1的eth0:192.168.2.1,虚拟网桥vxbr:10.1.2.1,docker容器机的eth0:10.1.2.3。docker容器的eth0插在宿主机host1的虚拟网桥vxbr上面。

host2的eth0:192.168.2.2,虚拟网桥vxbr:10.1.2.2,docker容器机的eth0:10.1.2.4。docker容器的eth0插在宿主机host2的虚拟网桥vxbr上面。

在host1的docker容器机里面ping host2的docker容器机,wireshark抓包:

可以看到容器机之间的通信被封装在一个UDP报文里面,这个UDP的通信是通过host1和host2的eth0转发。

时间: 2024-08-26 07:18:57

Docker+OpenvSwitch搭建VxLAN实验环境的相关文章

如何利用PC机搭建综合实验环境之Vmware workstation篇

无论学习windows还是linux,还是学习这些系统上的应用,我们都需要一台甚至多台服务器.但一台服务器动辄上万元,做为正在学习的学生或个人根本无力购买.况且一些实验不止需要一台,还需要多台服务器.再加上供电等因素,个人买服务器来做实验真的是不可能的事情.但不通过实验的话又很难将知识串联起来,实践是检验真理的唯一标准.因此,今天我们来讲如何通过一台PC模拟多台服务器.PC,并且模拟交换机.路由器.防火墙.AAA服务器,最后将交换机,路由器.防火墙.服务器连接起来,搭建成一个综合的实验环境,完成

一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

原文:一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏 欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site 小哈今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是小哈在工作中经常用到的,其中包括 Mysql

Docker-教你如何通过 Docker 快速搭建各种测试环境

今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通过几行命令秒秒钟就能轻松搞定.友情提示:搭建之前,你需要先安装 Docker 哟,本文基于您已经安装好 Docker 的基础上!废话少说,正文开始! 一.镜像加速 Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢.为了提升镜像的下载

Docker秒搭建Php7开发环境

原文:Docker秒搭建Php7开发环境 一直听说Docker比较厉害,但是一直没有了解,今天在哔哩哔哩上刷了一下入门课后,简直发现新大陆般,Docker的强大真的了解太晚了.这篇使用Docker搭建php7环境的文章需要一点入门知识.下面开始. 环境 首先安装Docker,无论你是Windows还是Linux.MocOS都可以.安装Docker自行百度. Docker镜像源 访问https://hub.docker.com即可,它是镜像大仓库. 安装Ngnix镜像 输入: docker pul

搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)

在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率. 因为是我们自己学习用的实验环境,CloudMan 推荐使用 DevStackhttp://docs.openstack.org/developer/devstack/DevStack 丰富的选项让我们能够灵活地选取和部署想要的 OpenStack 服务,非常适合学习和研究. 部署拓扑 首先我们来设计 OpenStack 的部署拓扑.

基于 Docker 快速搭建 Oracle 开发环境

要给开发人员搭建 Oracle 测试环境,准备基于 Docker 构建,同时建立一个 Docker 私有仓库,谁需要就让他装一个 Docker,才从这私有仓库 pull 镜像即可. 环境如下: CentOS 7 docker-ce-18.03.1.ce-1.el7.centos.x86_64Oracle 12c 安装Docker # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 #

使用vagrant快速搭建linux实验环境

简介 本文主要介绍如何使用vagrant配合virtualbox快速搭建实验环境.virtualbox是一个开源跨平台虚拟机管理软件,功能类似收费的vmwarevagrant是一个开源的虚拟机配置编排软件,可以在命令行快速启动管理虚拟机. 相关资源的百度云下载链接链接:https://pan.baidu.com/s/1nt_b96SEOIIWl2gIrabPpg 密码:6c3d 安装 1.安装virtualbox 官方下载virtualbox对应平台的软件包安装 2.安装vagrant 官方下载

第 2 章 OpenStack 架构 - 016 - 搭建 OpenStack 实验环境

先搭建起一个实验环境. 推荐使用 DevStackhttp://docs.openstack.org/developer/devstack/ DevStack 丰富的选项让我们能够灵活地选取和部署想要的 OpenStack 服务,非常适合学习和研究. 部署拓扑 首先设计 OpenStack 的部署拓扑. OpenStack 是一个分布式系统,由若干不同功能的节点(Node)组成: 控制节点(Controller Node) 管理 OpenStack,其上运行的服务有 Keystone.Glanc

(赵强老师原创)搭建CDH实验环境,三个节点的安装配置

赵强老师简介 ------------------------------------------------------- 清华大学软件工程专业毕业.现就职于Oracle(中国)有限公司高级技术顾问,在Oracle公司服务已超过10年.业界知名的Oracle数据库专家和大数据专家,精通Oracle数据库.大数据.Weblogic中间件和Java技术.同时,受聘于多家知名IT培训机构,线下培训的学员已超过万人. 赵强老师在线视频课程主页 http://edu.51cto.com/lecturer