LOADING

Follow me

Docker+OpenvSwitch走进VxLAN的世界【zoues.com】
五月 18, 2017|DockerPaaS

Docker+OpenvSwitch走进VxLAN的世界【zoues.com】

Docker+OpenvSwitch走进VxLAN的世界【zoues.com】

Docker+OpenvSwitch走进VxLAN的世界

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

导读 docker是非常火的容器技术,虚拟网络、SDN等网络也在不断的发展,VxLAN是新型的虚拟扩展网络,作者在整理文档时候发现网上实验:使用OpenvSwith 在Docker上搭建VxLAN环境,拿来分享。

一.概述

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

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

3.网络结构:

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

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

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

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

二.安装基本软件

1.安装docker并获取ubuntu镜像

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

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

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

三.配置

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

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

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

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

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

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

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

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

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

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

ifconfig eth0 10.1.2.3/24

5.查看ovs配置

 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转发 。

原文来自:  http://www.cnblogs.com/yuuyuu/p/5180827.html

本文地址:  http://www.linuxprobe.com/docker-openvswitch-vxlan.html编辑:陶武杰,审核员:冯琪

Docker+OpenvSwitch走进VxLAN的世界

让您学习到的每一节课都有所收获

《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

☀ 刘遄老师QQ:5604241  微信:gnu_chuan

☀ 学员助教QQ:5604674

 Linux技术交流A群(满):560843

☀ Linux技术交流B群:340829

☀ Linux技术交流C群:463590

☀ Linux技术交流D群:915246(新群,火热加群中……

☀ 官方站点:www.linuxprobe.com

☀ 电脑在线阅读效果更佳:

http://www.linuxprobe.com/chapter-00.html

Docker+OpenvSwitch走进VxLAN的世界

按住图片3秒,即可自动关注。

点击左下角查看更多热门技术

no comments
Share

发表评论