一、关于VXLAN

VXLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多。Linux 内核的 upstream 中也刚刚加入 VXLAN 的实现。相比 GRE tunnel 它有着很好的扩展性,同时解决了很多其它问题。

二、实验背景

Linux内核模块在支持Open vSwitch之后又加入了支持隧道的功能,但是某些内核版本的的Linux可能只支持Open vSwitch而不支持隧道技术。支持隧道技术的对应最低Linux内核版本如下:

从内核3.7版本开始,Linux就开始支持VXLAN。
到了内核3.12版本,Linux对VXLAN的支持已经完备,支持单播和组播,IPv4和IPv6。

本实验操作系统是在两台虚拟机中安装的基于4.20Linux内核版本的centos 7.2,满足VXLAN正常运行的条件。同时需要安装好Open vSwitch,本实验安装的是Open vSwitch 2.3.0版本。

centos7.2内核默认为3.10,需要升级:https://www.cnblogs.com/jinyuanliu/p/10368780.html

服务器 操作系统版本 内核版本 ovs版本  
10.1.80.110 centos7.2 4.20.8 2.5.0  
10.1.80.111 centos7.2 4.20.8 2.5.0  

注:因为实验本身就是在虚拟环境下操作,所以实验中br1桥上实际上并没有再下挂任何主机,

实验中我们是分别给两台虚拟机的br1指定两个不同网段的ip,然后通过搭建VXLAN隧道让这两个不同网段的网桥能够实现通信

三、基础环境配置

1、关闭防火墙、selinux、networkmanager

hostnamectl set-hostname node1
#修改hosts文件
#关闭firewalld
[root@node1 ~]# systemctl stop firewalld.service
[root@node1 ~]# systemctl disable firewalld.service
#关闭NetworkManager
[root@node1 ~]# systemctl stop NetworkManager.service
[root@node1 ~]# systemctl disable NetworkManager.service
#关闭selinux
#重启网卡
service network restart

2、安装OVS

参考文档,在两个节点安装ovs软件:

https://www.cnblogs.com/jinyuanliu/p/10369415.html

四、VXLAN隧道搭建

4.1配置node1

在node1上添加名为br0和br1的两个网桥:

ovs-vsctl add-br br0
ovs-vsctl add-br br1
#列出所有网桥
ovs-vsctl list-br

在br0上添加一个端口,将ens160挂载到br0上。

这样做的目的是方便我们在虚拟网桥上添加多个端口供我们使用,这样不必受限于ens160的有限端口。

注意:执行后会导致失去连接

ovs-vsctl add-port br0 ens160

此时我们将原先ens160分配的ip清除并指定给br0,并且根据实际情况配置一下br0的网关。让虚拟机网络能通过br0继续工作。

ifconfig ens160 0 up
ifconfig br0 10.1.80.119/24 up
route add default gw 10.1.80.254 br0

给br1网桥分配一个ip。

ifconfig br1 11.0.0.1/24 up

4.2 配置node2

按照node1同样的方式来配置node2

ovs-vsctl add-br br0
ovs-vsctl add-br br1
ovs-vsctl add-port br0 ens160
ifconfig ens160 0 up && ifconfig br0 10.1.80.111/24 up
route add default gw 10.1.80.254 br0

给node2的br1网桥分配一个和Host1中br1不同网段的ip。

ifconfig br1 11.0.1.1/24 up

4.3 搭建VXLAN隧道

在搭建隧道之前我们先测试一下两台虚拟机Host1和Host2上的br0和br1两两之间是否能相互通信。

#node1 ping node2的br0,通
[root@node1 ~]# ping 10.1.80.111
PING 10.1.80.111 (10.1.80.111) 56(84) bytes of data.
64 bytes from 10.1.80.111: icmp_seq=1 ttl=64 time=0.355 ms
64 bytes from 10.1.80.111: icmp_seq=2 ttl=64 time=0.482 ms
64 bytes from 10.1.80.111: icmp_seq=3 ttl=64 time=0.463 ms
#node1  ping  node2的br1,不通
[root@node1 ~]# ping 11.0.1.1
PING 11.0.1.1 (11.0.1.1) 56(84) bytes of data.

我们搭建隧道的目的就是让两台机器的br1(数据层面)能够实现通信。

1)在node1上设置VXLAN,远端ip设置为node2能对外通信的br0的ip。

ovs-vsctl add-port br1 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=10.1.80.111

ovs-vsctl show

ip addr add 11.0.1.1/24 dev br1

  

2) 在node2上设置VXLAN,远端ip设置为node1能对外通信的br0的ip。

ovs-vsctl add-port br1 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=10.1.80.110

ovs-vsctl show

ip addr add 11.0.0.1/24 dev br1

  

4.4 验证VXLAN隧道的可用性

两台机器的br1互ping可以实现正常通信:

基于Open vSwitch的VXLAN隧道,实现了不同网段内网机器的通信。

OVS-----CentOS7上搭建基于Open vSwitch的VxLAN隧道实验的更多相关文章

  1. [深度学习] centos7上搭建基于Anaconda3的caffe+pycaffe环境(python3.6)

    本文记录从零开始在CentOS7.x系统上搭建Caffe深度学习平台,并配置pycaffe环境.(由于在虚拟机上搭建,所以为CPU_ONLY模式) 1.选择CentOS7 mini版镜像安装虚拟机 镜 ...

  2. Open vSwitch系列实验(三):Open vSwitch的VxLAN隧道网络实验

    1 实验目的 该实验通过Open vSwitch构建Overlay的VxLAN网络,更直观的展现VxLAN的优势.在实验过程中,可以了解如何建立VxLAN隧道并进行配置,并实现相同网段和不同网段之间的 ...

  3. Mac 上搭建基于 Hexo + GitHub 个人博客

    环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...

  4. centos7上搭建开源系统jforum

    centos7上搭建好tomcat,mysql; 将 jforum-2.6.2.war放到tomcat目录的webapps下: 启动tomcat,./startup.sh ,查看webapp下jfor ...

  5. 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客

    前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...

  6. 如何在ASP.NET 5上搭建基于TypeScript的Angular2项目

    一.前言 就在上月,公司的一个同事建议当前的前端全面改用AngularJs进行开发,而我们采用的就是ASP.NET 5项目,原本我的计划是采用TypeScript直接进行Angular2开发.所以借用 ...

  7. Centos7上搭建redis主从

    1. 节点(服务器)数量说明 按照redis官方建议:salve和master的数量按照2n+1台服务器(1台master节点,2n台slave节点) 有兴趣的可以了解下redis的master选举机 ...

  8. 基于Apache服务在centos7上搭建文件列表

    参考文献: https://www.cnblogs.com/snake553/p/8856729.html https://blog.csdn.net/yejinxiong001/article/de ...

  9. centos7上搭建http服务器以及设置目录访问

    参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改. 步骤: 1. 安装httpd服务 sudo yum install ...

随机推荐

  1. Circular view path xxx would dispatch back to the current handler URL,Check your ViewResolver setup

    Circular view path xxx would dispatch back to the current handler URL 通过原因分析,造成问题有两个因素:1). 缺省转发, 2). ...

  2. grub.conf解析

    一.grub简介系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载.传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化 ...

  3. MySQL准备

    目录 数据库管理软件的由来 什么是数据? 什么是数据库管理系统/软件? 数据库管理的三个阶段 MySQL 概述SQL语句 安装MySQL(在命令行的操作全要用管理员权限) 将MySQL服务制作为win ...

  4. Linux 中用 dd 命令来测试硬盘读写速度

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file ...

  5. (转载) python3: beautifulsoup的使用

    转载: https://www.cnblogs.com/chimeiwangliang/p/8649003.htmlfrom bs4 import BeautifulSoup import reque ...

  6. 原版js生成银行卡号

    function init() { undefined = "undefined"; mkCClist(); } function ccchk(cdi) { document.co ...

  7. 剑指Offer_编程题_12

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. class Solution { public: double Power(d ...

  8. spark常见异常汇总

    spark常见异常汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 温馨提示:   如果开发运行spark出现问题啦,可能需要运维这边做一些调优,也可能是开发那边需要修改代码.到 ...

  9. C#中 Reference Equals, == , Equals的区别

    原文地址:http://blog.csdn.net/wuchen_net/archive/2010/03/23/5409327.aspx ReferenceEquals, == , Equals Eq ...

  10. Spring 快速开始 配置Spring Framework

    [配置Spring Framework] 1.XML配置依赖关系 bean是由Springframework管理,我们自己编写bean,Spring也内建了bean,比如ApplicationCont ...