阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker+OpenvSwitch搭建VxLAN实验环境

146次阅读
没有评论

共计 2342 个字符,预计需要花费 6 分钟才能阅读完成。

一. 概述                                                  

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

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

3. 网络结构:

    2.1:host1 的eth0192.168.2.1,host1 里面的 docker 容器 ip 地址是10.1.2.3

    2.2:host2 的eth0192.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

Docker+OpenvSwitch 搭建 VxLAN 实验环境

我们可以看到 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 抓包

Docker+OpenvSwitch 搭建 VxLAN 实验环境

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

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-02/128397.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2342字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中