OVS-----CentOS7上搭建基于Open vSwitch的VxLAN隧道实验
一、关于VXLAN
VXLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多。Linux 内核的 upstream 中也刚刚加入 VXLAN 的实现。相比 GRE tunnel 它有着很好的扩展性,同时解决了很多其它问题。
二、实验背景
Linux内核模块在支持Open vSwitch之后又加入了支持隧道的功能,但是某些内核版本的的Linux可能只支持Open vSwitch而不支持隧道技术。支持隧道技术的对应最低Linux内核版本如下:

本实验操作系统是在两台虚拟机中安装的基于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隧道实验的更多相关文章
- [深度学习] centos7上搭建基于Anaconda3的caffe+pycaffe环境(python3.6)
本文记录从零开始在CentOS7.x系统上搭建Caffe深度学习平台,并配置pycaffe环境.(由于在虚拟机上搭建,所以为CPU_ONLY模式) 1.选择CentOS7 mini版镜像安装虚拟机 镜 ...
- Open vSwitch系列实验(三):Open vSwitch的VxLAN隧道网络实验
1 实验目的 该实验通过Open vSwitch构建Overlay的VxLAN网络,更直观的展现VxLAN的优势.在实验过程中,可以了解如何建立VxLAN隧道并进行配置,并实现相同网段和不同网段之间的 ...
- Mac 上搭建基于 Hexo + GitHub 个人博客
环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...
- centos7上搭建开源系统jforum
centos7上搭建好tomcat,mysql; 将 jforum-2.6.2.war放到tomcat目录的webapps下: 启动tomcat,./startup.sh ,查看webapp下jfor ...
- 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客
前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...
- 如何在ASP.NET 5上搭建基于TypeScript的Angular2项目
一.前言 就在上月,公司的一个同事建议当前的前端全面改用AngularJs进行开发,而我们采用的就是ASP.NET 5项目,原本我的计划是采用TypeScript直接进行Angular2开发.所以借用 ...
- Centos7上搭建redis主从
1. 节点(服务器)数量说明 按照redis官方建议:salve和master的数量按照2n+1台服务器(1台master节点,2n台slave节点) 有兴趣的可以了解下redis的master选举机 ...
- 基于Apache服务在centos7上搭建文件列表
参考文献: https://www.cnblogs.com/snake553/p/8856729.html https://blog.csdn.net/yejinxiong001/article/de ...
- centos7上搭建http服务器以及设置目录访问
参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改. 步骤: 1. 安装httpd服务 sudo yum install ...
随机推荐
- mac 修改root密码
1.用当前用户登录进去bash: 输入命令: sudo passwd root
- console控制台的小问题
第一个foo里面应该是123,但是当执行完下面的代码之后,console控制台会自动将里面的内容改成我们修改之后的
- http协议中的请求方式
get:获取url传的查询字符串(action=show)表单和连接的url中传的值.容量2K左右. post:以post方式提交,获取表单和连接的url中传的值.容量8M左右. delete:删除某 ...
- 2017-12-15python全栈9期第二天第三节之使用while循环输出0到10不包含7
#!/user/bin/python# -*- coding:utf-8 -*-count = 0while count < 10: count += 1 if count == 7 : con ...
- pickle详解
一.简介 在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间 Python提供的pickle模块就很好地解决了这个问题,它可以 ...
- Spring Boot笔记九:AOP面向切面编程
我参考的这篇文章,以验证身份为例讲解了什么是AOP AOP 这里只讲解一下怎么去实现AOP 新建一个类,叫HttpAspect用来切面 package com.vae.springboot.study ...
- Unity-使用面向对象的思想
在做游戏之初,老师曾经说过要用面向对象的思想去做.当时满口答应,应为学了一点C#的原因感觉面向对象很简单嘛,但是事实上在做游戏的过程中,为了赶进度我的代码写的很冗余,很乱.这就导致了我不得不重新修改. ...
- Hbase记录-hbase部署
#版本支持 #官网下载二进制包,解压到/usr/app下,配置/etc/profile: export HBASE_HOME=/usr/app/hbase export PATH=$HBASE_HOM ...
- java深copy (伪深copy)【原】
Teacher.java package test.clone; /** * 老师 * 深copy需要实现Cloneable接口 * @author King * */ public class Te ...
- ACM-ICPC 2018 南京赛区网络预赛 G Lpl and Energy-saving Lamps(模拟+线段树)
https://nanti.jisuanke.com/t/30996 题意 每天增加m个灯泡,n个房间,能一次性换就换,模拟换灯泡过程.询问第几天的状态 分析 离线做,按题意模拟.比赛时线段树写挫了. ...