专项技能训练五《云计算网络技术与应用》实训8-1:建立基于OpenvSwitch的GRE隧道

文章目录

  • 建立基于OpenvSwitch的GRE隧道
        • 1. 使用VMware安装2个CentOS 7虚拟机,安装时记得都开启CPU虚拟化,第一台命名为“Docker”,第二台命名为“KVM”。
        • 2. 安装完虚拟机后,进入虚拟机,修改网络配置(onboot改为yes)并重启网络服务,查看相应IP地址,并使用远程连接软件进行连接。
        • 3. 把老师所给Packages包、centos的docker镜像以及cirros镜像使用winSCP传送至虚拟机(centos6.5传送至docker虚拟机,cirros传送至KVM虚拟机),并解压Packages包至/opt目录下。
        • 4. 两台虚拟机都配置默认镜像yum源,并且把Packages包也一起配置到本地yum源当中。
        • 5. 修改主机名,方便区分。第一台虚拟机(命名为Docker那台)修改主机名为docker,第二台虚拟机(命名为KVM那台)修改主机名为kvm。如下图所示。
    • 配置虚拟机Docker
        • 6. 修改网络配置,新增一行NM_CONTROLLER=no,如下图所示:
        • 7. 关闭防火墙
        • 8. 开启内核转发
        • 9. 安装openvswitch、bridge-utils、tunctl、docker-io服务
        • 10. 更新下路由,看是否有最新路由版本。
        • 11. 启动openvswitch服务以及docker服务。
        • 12. 检查OVS是否安装好。
        • 13. 创建br0网桥,并创建名字为br-int的OVS开放虚拟交换机,并重启网络。
        • 14. 安装net-tools,并给br0设置地址为30.1.0.1/24
        • 15. 把br0桥接到br-int上
        • 17. 在OVS交换机br-int上创建gre接口,地址指向kvm虚拟机IP
        • 18. 启动br0和br-int;
        • 19. 添加一条路由信息,使30.2.0.0网段的路由指向kvm虚拟机的ens33网卡
        • 20. 修改docker配置信息。配置完成后启动docker。
        • 21. 把开始上传的镜像包导入docker,并添加tag。
        • 22. 启动docker,并查看docker的CONTAINER ID
        • 23. 进入docker,查看docker的IP
    • 配置虚拟机KVM
        • 24. 进入网络配置目录,复制一个网络配置文件,命名为ifcfg-br-ex,并修改其配置,如下图所示
        • 25. 修改ens33网卡配置,如下图所示
        • 25. 关闭防火墙规则
        • 26. 开启内核转发
        • 27. 关闭防火墙
        • 28. 更新路由到最新版本
        • 28. 安装openvswitch、qemu-kvm、libvirt、dnsmasq、net-tools服务
        • 29. 开启openvswitch服务,并新建br-int虚拟交换机
        • 30. 给br-int设置ip地址为30.2.0.1/24并开启,添加br-ex网桥,把ens33嫁接到br-ex网桥上并重启网络。
        • 31. 在br-int上新添加gre接口,使其指向docker虚拟宿主机
        • 32. 新增一条路由信息,指向docker虚拟宿主机的IP地址
        • 33. 配置dnsmasq;
        • 34. 重新启动dnsmasq;
        • 35. 新建ovs-ifup和if-down脚本。
        • 36. 给两个脚本赋予执行权限
        • 37. 为防止冲突,删除tap0接口
        • 38. 启动kvm虚拟机
        • 39. 使用给的账号密码登录进入
        • 40. 查看kvm虚拟机ip地址
    • 测试连通性
        • 1.kvm虚拟宿主机ping docker虚拟宿主机网桥br0的IP(30.1.0.1),证明两个主机间连通。
        • 2.docker虚拟宿主机ping kvm虚拟宿主机网桥br0的IP(30.2.0.1),证明两个主机间连通。
        • 3.docker中ping kvm虚拟宿主机IP。
        • 4.docker中ping docker宿主机IP。
        • 5.kvm虚拟机中ping通docker
        • 6.docker虚拟机中ping通kvm

建立基于OpenvSwitch的GRE隧道

在这里插入图片描述

实验前准备:编辑虚拟机网络配置,使VMnet8处在192.168.10.0网段。

1. 使用VMware安装2个CentOS 7虚拟机,安装时记得都开启CPU虚拟化,第一台命名为“Docker”,第二台命名为“KVM”。
2. 安装完虚拟机后,进入虚拟机,修改网络配置(onboot改为yes)并重启网络服务,查看相应IP地址,并使用远程连接软件进行连接。
3. 把老师所给Packages包、centos的docker镜像以及cirros镜像使用winSCP传送至虚拟机(centos6.5传送至docker虚拟机,cirros传送至KVM虚拟机),并解压Packages包至/opt目录下。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 两台虚拟机都配置默认镜像yum源,并且把Packages包也一起配置到本地yum源当中。

镜像yum源配置教程详见:CentOS如何配置本地yum源。
Packages包本地yum源配置详见:实训5-1

5. 修改主机名,方便区分。第一台虚拟机(命名为Docker那台)修改主机名为docker,第二台虚拟机(命名为KVM那台)修改主机名为kvm。如下图所示。

docker那台:
在这里插入图片描述
KVM那台:
在这里插入图片描述

配置虚拟机Docker

6. 修改网络配置,新增一行NM_CONTROLLER=no,如下图所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 关闭防火墙

在这里插入图片描述

在这里插入图片描述

8. 开启内核转发

小知识:为什么我们需要开启内核转发?
linux服务器经常被用来提供防火墙、路由器、NAT等功能,在这些场景下,linux内核需要将网卡上收到的报文转发给其他网络设备。linux内核提供了ip_forward参数用于开关内核的报文转发功能,只有这个开关被打开时,内核才会执行报文的转发。
在这里插入图片描述

9. 安装openvswitch、bridge-utils、tunctl、docker-io服务

在这里插入图片描述
在这里插入图片描述

10. 更新下路由,看是否有最新路由版本。

在这里插入图片描述

11. 启动openvswitch服务以及docker服务。

在这里插入图片描述
在这里插入图片描述

12. 检查OVS是否安装好。

在这里插入图片描述

13. 创建br0网桥,并创建名字为br-int的OVS开放虚拟交换机,并重启网络。

在这里插入图片描述
在这里插入图片描述

14. 安装net-tools,并给br0设置地址为30.1.0.1/24

在这里插入图片描述
在这里插入图片描述

15. 把br0桥接到br-int上

在这里插入图片描述

17. 在OVS交换机br-int上创建gre接口,地址指向kvm虚拟机IP
ovs-vsctl add-port br-int gre0 -- set interface gre0 type=gre options:remote_ip=192.168.10.*(这里为KVM宿主机IP地址)
18. 启动br0和br-int;

在这里插入图片描述

19. 添加一条路由信息,使30.2.0.0网段的路由指向kvm虚拟机的ens33网卡
ip route add 30.2.0.0/24 via 192.168.10.*(这里为kvm虚拟宿主机IP地址) dev ens33
20. 修改docker配置信息。配置完成后启动docker。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

21. 把开始上传的镜像包导入docker,并添加tag。

在这里插入图片描述

22. 启动docker,并查看docker的CONTAINER ID

在这里插入图片描述

在这里插入图片描述

23. 进入docker,查看docker的IP

在这里插入图片描述

在这里插入图片描述

配置虚拟机KVM

24. 进入网络配置目录,复制一个网络配置文件,命名为ifcfg-br-ex,并修改其配置,如下图所示

在这里插入图片描述
在这里插入图片描述

25. 修改ens33网卡配置,如下图所示

在这里插入图片描述

25. 关闭防火墙规则

在这里插入图片描述

26. 开启内核转发

在这里插入图片描述

27. 关闭防火墙

(执行 setenforce 0 时,它会关闭 SELinux 防火墙。SELinux 是一个内核模块,它提供了访问控制安全策略,以防止未授权的进程访问系统资源。)
在这里插入图片描述

28. 更新路由到最新版本

在这里插入图片描述

28. 安装openvswitch、qemu-kvm、libvirt、dnsmasq、net-tools服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

29. 开启openvswitch服务,并新建br-int虚拟交换机

在这里插入图片描述

30. 给br-int设置ip地址为30.2.0.1/24并开启,添加br-ex网桥,把ens33嫁接到br-ex网桥上并重启网络。

在这里插入图片描述
在这里插入图片描述

31. 在br-int上新添加gre接口,使其指向docker虚拟宿主机
ovs-vsctl add-port br-int gre0 -- set interface gre0 type=gre options:remote_ip=192.168.10.*(这里为docker虚拟宿主机的IP地址)
32. 新增一条路由信息,指向docker虚拟宿主机的IP地址

在这里插入图片描述

33. 配置dnsmasq;
/usr/sbin/dnsmasq --strict-order --bind-interfaces --interface=br-int --except-interface=lo --pid-file=/var/run/qdhcp.pid --leasefile-ro --dhcp-range=30.2.0.3,30.2.0.254,255.255.255.0,12h --conf-file=
34. 重新启动dnsmasq;

在这里插入图片描述

35. 新建ovs-ifup和if-down脚本。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

36. 给两个脚本赋予执行权限

在这里插入图片描述

37. 为防止冲突,删除tap0接口

在这里插入图片描述

38. 启动kvm虚拟机
/usr/libexec/qemu-kvm -m 512 -drive file=cirros-0.3.3-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=ovs-ifup -nographic -vnc :1 

在这里插入图片描述

39. 使用给的账号密码登录进入

在这里插入图片描述

40. 查看kvm虚拟机ip地址

在这里插入图片描述

测试连通性

1.kvm虚拟宿主机ping docker虚拟宿主机网桥br0的IP(30.1.0.1),证明两个主机间连通。

在这里插入图片描述

2.docker虚拟宿主机ping kvm虚拟宿主机网桥br0的IP(30.2.0.1),证明两个主机间连通。

在这里插入图片描述

3.docker中ping kvm虚拟宿主机IP。

在这里插入图片描述

4.docker中ping docker宿主机IP。

在这里插入图片描述

5.kvm虚拟机中ping通docker

在这里插入图片描述

6.docker虚拟机中ping通kvm

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程间通信(二)

共享内存 当进程A和进程B有一块共享的内存空间时,这两个进程之间的数据交互就会变的很简单,只需要像读取自己内存空间中的元素一样去读取数据即可。实现共享内存进行数据交互的一般步骤: 创建/打开共享内存内存映射数据交换断开与共享内存的…

任务:单域,域树的搭建

一、单域: 搭建所需的系统:win2016 sever,win10 1.在创建域前,先设置静态ip 先查看win2016 sever的IP, ip:192.168.154.133 网关:192.168.154.2 DNS服务器:192.168.154.2 设置…

【nodejs 命令行交互神器 - inquirer.js】

需求 大家在开发时,有时需要从命令行读取用户的输入,或者让用户选择。在nodejs中,这个怎么实现? 原生实现 ❌ process.stdin.setEncoding(utf8);process.stdin.on(readable, () > {let chunk;// 使用循环确保我们读取所有的可用输入wh…

局域网内监控软件有哪些:五款好用的网络监控神器分享

面对员工这种现象怎么办? 监控电脑最有效! 局域网监控软件,你值得拥有! 要想轻松监控电脑,这几款局域网内监控软件不容错过!!! 一、域智盾软件 是一款专注于企业终端安全管理的软…

中职大数据专业介绍:大数据技术应用

近年来,人工智能在经济发展、社会进步、国际政治经济格局等方面已经产生重大而深远的影响。规划纲要对“十四五”及未来十余年我国人工智能的发展目标、核心技术突破、智能化转型与应用,以及保障措施等多个方面都作出了部署。 据2020年全国教育事业发展统…

两重惊喜!奥特曼预告GPT-4和ChatGPT重大更新,Open AI要放大招

OpenAI在今天官宣13日(下周一10点)开启线上直播,将会展示全新的ChatGPT demo的演示以及GPT-4的重大更新! OpenAI首席执行官Sam Altman在X上表示,这些的发布会,公司不会宣布下一代对话式人工智能GPT-5或人工…

ue引擎游戏开发笔记(37)——实现造成伤害

1.需求分析: 在游戏中已经能够射击,并且能得到实际的落点反馈,但本质上这种射击没有任何实际数值伤害,为射击添加实际的子弹伤害数值。 2.操作实现: 1.思路:ue本身函数FPointDamageEvent就可以解决&#x…

win11安装各银行的网银助手都无法打开,双击没反应?

大神贴 右键网银助手属性,在目标后面敲一下空格,输入**-runapp**,应用即可。 如图示例:

【HDFS】关于HDFS-17497:在commit block时更新quota

链接:https://github.com/apache/hadoop/pull/6765 Ticket标题:The number of bytes of the last committed block should be calculated into the file length。 HDFS里,一个在写入的文件可能包含多个commited状态的块。 但是计算文件大小的时候,最后一个commited block并…

Vue3人员选择组件封装

一、组件介绍 人员组件在各系统的应用都是比较广泛的&#xff0c;因此可以将其封装为可配置的人员组件&#xff0c;根据不同角色权限显示对应的人员供选择&#xff0c;代码目前只是一部分&#xff0c;需要源码的私聊。 二、直接上代码 use.vue 父组件 <div class&q…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签&#xff0c;但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

音频—WAV格式及写入wav文件代码实现

1.RIFF规范 FIFF 是 Resource Interchange File Format&#xff08;资源交换文件格式&#xff09;的简称。RIFF 是一种文件格式规范&#xff0c;用于在计算机系统之间交换和存储多媒体资源。WAV 文件格式是 Microsoft 的 RIFF 规范的一个子集。 RIFF 规则定义了文件的结构和数…

【案例分享】校园服务小程序开发经验和主要功能,引领校园生活新方式

随着移动互联网的普及&#xff0c;学生们对于校园生活的需求也在不断增长。校园圈子、校园跑腿、校园外卖、校园服务等小程序等应用应运而生&#xff0c;为学生们提供了更加便捷、高效的生活方式。那么&#xff0c;如何开发一款能够满足学生需求的校园服务小程序呢&#xff1f;…

JavaScript创建日期

创建日期 在JavaScript中创建日期有四种方法 ● 使用new Date() const now new Date(); console.log(now);● 直接输入月、日、年、时间 console.log(new Date(Aug 02 2024 18:05:41));● 也可以输入年月日 console.log(new Date(December 24, 2015));● 直接按照年、月、…

C++入门系列-析构函数

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 析构函数 概念 析构函数&#xff0c;与构造函数功能相反&#xff0c;析构函数不是完成对对象本身的销毁&#xff0c;局部对象销毁工作是由编译器完成的&#xff0c;而对象在销…

基于深度学习的人体关键点检测与姿态识别

文章目录 源码下载地址&#xff1a; 源码地址在视频简介中 深度学习人体关键点检测&#xff0c;姿态识别 界面效果&#xff1a; 界面代码&#xff1a; from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * f…

OGG几何内核开发-BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound比较

最近在与同事讨论BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound有什么区别。 一、从直觉上来说&#xff0c;BRepAlgoAPI_Fuse会对两个实体相交处理&#xff0c;相交的部分会重新的生成相关的曲面。而BRep_Builder.MakeCompound仅仅是把两个实体组合成一个新的实体&#xff0c;…

Apache Sqoop:高效数据传输工具搭建与使用教程

目录 引言一、环境准备二、安装sqoop下载sqoop包解压文件 三、配置Sqoop下载mysql驱动拷贝hive的归档文件配置环境变量修改sqoop-env.sh配置文件替换版本的commons-lang的jar包 验证Sqoop安装查看Sqoop版本测试Sqoop连接MySQL数据库是否成功查看数据库查看数据表去除警告信息 四…

【免费】在线识别通用验证码接口

模块优势价格5元1000次&#xff0c;每天免费100次api文档支持 使用量小的完全够用了 <?phpfunction Post_base64($base64_str){$url http://api.95man.com:8888/api/Http/Recog?Taken41******QK&imgtype1&len0 ; $fields array( ImgBase64>$base64_str); $ch…

031.下一个排列Java实现

题意 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&#…