Open vSwitch系列实验(二):Open vSwitch的GRE隧道实验网络
一、实验目的
- 了解GRE协议及原理
- 理解 Open vSwitch如何配置GRE隧道
二、实验原理
Open vSwitch创建GRE原理很简单,就是把对GRE头和外部IP头的一些操作从原来的代码中抽象出来,做成内核“库函数”的形式,然后 Open vSwitch中就可以直接调用它们了。 Open vSwitch GRE tunnel没有注册网络设备,因此无法通过iplink看到它,它只是一个vport而已,所以能通过ovs-vsctl show可以看到。
三、实验任务
本实验需要创建两台虚拟机来模拟一个虚网,在虚拟机中启动 Open vSwitch服务,最后配置 Open vSwitch,创建GRE隧道并进行验证。
实验中用到的网络拓扑如下:

本实验需要两台虚拟机,因此我又克隆了同样的一台虚拟机。
然后在其中一台虚拟机上输入如下指令:
ovs-vsctl del-br br0
ovs-vsctl del-br br1
ovs-vsctl add-br br0
ovs-vsctl add-br br1
ifconfig ens33 0 up
ifconfig br0 20.0.2.12 netmask 255.255.255.248
route add default gw 20.0.2.9
ovs-vsctl add-port br0 ens33
ifconfig br1 172.171.6.6/24 up
1~2:删除之前的桥以清除记录
3~4:创建新的桥用来构建
5~6:将本机的IP地址取消然后将20.0.2.12赋予br0然后设置子网掩码
7:配置默认网关地址为20.0.2.9
8~9:添加端口然后给br1赋予IP地址
最后可用ovs-vsctl show查看配置情况:
然后创建隧道:
ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre option:remote_ip=20.0.2.1
分别用ovs-vsctl show 和 ifconfig查看如下:
2号虚拟机也是如此:
ovs-vsctl del-br br0
ovs-vsctl del-br br1
ovs-vsctl add-br br0
ovs-vsctl add-br br1
ifconfig ens33 0 up
ifconfig br0 20.0.2.11 netmask 255.255.255.248
route add default gw 20.0.2.9
ovs-vsctl add-port br0 ens33
ifconfig br1 172.171.6.7/24 up
ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre option:remote_ip=20.0.2.12
最后互ping可发现在设置隧道隧道以前只有两机的BR0可以互相通信而br1不行,但是创建了gre隧道之后就可以互相通信了:
VM1:
VM2:
结论:
1.如果网桥上接上主机那么这两主机就可以互相通信
2.这在连接两个不同域之间的SDN网络有很大的作用
Open vSwitch系列实验(二):Open vSwitch的GRE隧道实验网络的更多相关文章
- Open vSwitch系列之二 安装指定版本ovs
在ovs学习过程中,如果自己想要安装一个ovs交换机其实一条简单的命令 apt install openvswitch 就可以了,但是这种方法只能安装低版本的ovs.在特殊情况下需要安装指定版本,例 ...
- 20162308 实验二《Java面向对象程序设计》实验报告
20162308 实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...
- 20162330 实验二 《Java面向对象程序设计》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:162 ...
- 2018-2019-2 20175217 实验二《Java面向对象程序设计》实验报告
一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:吴一凡 学号:20175217 指导教师:娄嘉鹏 实验日期:2019年4月15日 实验时间:--- 实验序号:实验二 实验名称:Jav ...
- 20175209 实验二《Java面向对象程序设计》实验报告
20175209 实验二<Java面向对象程序设计>实验报告 一.实验前期准备 了解三种代码 伪代码 产品代码 测试代码 我们先写伪代码,伪代码 从意图层面来解决问题: 有了伪代码 我们用 ...
- 20175315 实验二《Java面向对象程序设计》实验报告
20175315 实验二<Java面向对象程序设计>实验报告 一.实验内容及步骤 1.初步掌握单元测试和TDD 单元测试 任务一:三种代码 用程序解决问题时,要学会写以下三种代码: 伪代码 ...
- 2018-2019-2 20175320实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175320实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 (一)了解使用JUint,并对示例代码MyUtil进行测试 1.先在IDEA中安装J ...
- 2018-2019-2 20175317 实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175317 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 面向对象程序设计-1 参考 http://www.cnblogs.com/roce ...
- 2018-2019-2 学号20175223 实验二《Java面向对象程序设计》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验二 面向对象程序设计 实验内容.步骤与体会: 一.实验二 面向对象程序设计-1 二.实验二 面向对象程序设计-2 三.实验二 面向对象程序设 ...
- 2018-2019-2 20175202实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175202实验二<Java面向对象程序设计>实验报告 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初 ...
随机推荐
- FreeRTOS计数型信号量
API函数 //创建 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #define xSemaphoreCreateCounting( uxMaxCount ...
- vs code 调试设置
首先vs code 安装插件:Debugger for Chrome vscode 设置:点击调试按钮,然后调试面板界面再点击设置按钮,添加一个配置,选择环境为:chrome编辑器自动生成一个laun ...
- C++(四十)— C++中一个class类对象占用多少内字节
一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数存储在内存中什么部分? 一个Class对象需要占用多大的内存空间.最权威的结论是: 非静态成员变量总合. 加上编译器为了C ...
- ASP.NET Core 2.2 项目升级至 3.0 备忘录
将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中. TargetFramework 改为 netcoreapp3.0 <Target ...
- Java中创建线程主要有三种方式
一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实 ...
- pod-test
apiVersion: v1 kind: Pod metadata: name: init-demo # 命名空间 namespace: default labels: app ...
- pyserial 挺强大的
Ref: https://pythonhosted.org/pyserial/ pyserial写的很规范,无论安装和使用都非常的容易,目前使用下来非常好. 没有使用它做过压力测试,不知道表现如何. ...
- 数据分析常用shell命令
目录 0.vim编辑器 1.awk命令(重要) 1.1 基本语法 1.2 基本用法 1.3 运算符 1.4 内建变量 1.5 其他 1.6 awk是一门变成语言,支持条件判断.数组.循环等功能.所以我 ...
- Django之路——8 cookie 和sessions
会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10 ...
- 【Java】《Java程序设计基础教程》第四章学习
4.1 类的封装 封装指的是将东西包装在一起,然后以新的完整形式呈现.包含两个意义: 1). 把对象的全部属性和方法结合在一起,形成一个不可分割的独立单位(即对象). 2). 信息隐藏,即尽可能隐藏对 ...