云计算:Linux 部署 OVS 集群(服务端)实现VXLAN

2024-04-12 05:36

本文主要是介绍云计算:Linux 部署 OVS 集群(服务端)实现VXLAN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、实验

1.环境

2.Linux 部署 OVS 集群(服务端)

3.Linux 部署VXLAN 


一、实验

1.环境

(1) 主机

表1 宿主机

主机架构软件IP备注
ovs_controller控制端192.168.204.63

1个NAT网卡

(204网段)

ovs_server01服务端

OpenvSwitch

     v2.5.1

192.168.204.61

1个NAT网卡

(204网段),

1个仅主机网卡

(88网段)

ovs_server02服务端

OpenvSwitch

     v2.5.1

192.168.204.62

1个NAT网卡

(204网段),

1个仅主机网卡

(88网段)

表2 目标云主机

云主机IP备注

cloudserver01

172.16.1.1

宿主机ovs_server01

cloudserver02172.16.1.2

宿主机ovs_server02

(2) 查看IP

ovs_controller

ovs_server01

ovs_server02

(3)修改hostname

[root@localhost ~]# vim /etc/hostname

ovs_controller

ovs_server01

ovs_server02

(4) 修改hosts

[root@localhost ~]# vim /etc/hosts

修改前:

修改后:

 ovs_controller

ovs_server01ovs_server02

2.Linux 部署 OVS 集群(服务端)

(1)查阅

1)官网
https://www.openvswitch.org/download/2)GitHub
https://github.com/openvswitch/ovs

(2) 安装OVS依赖软件

yum  install -y openssl-devel kernel-devel
yum  groupinstall -y "Development Tools"

ovs_server01

ovs_server02

(2)添加用户

adduser ovswitch
su - ovswitch

ovs_server01

ovs_server02

(3)下载并解压

选择一个稳定版

wget https://www.openvswitch.org/releases/openvswitch-2.5.1.tar.gz
tar xfz openvswitch-2.5.1.tar.gz

ovs_server01

ovs_server02

(4) 源码包⽅式⽣成RPM包

mkdir -p ~/rpmbuild/SOURCESsed 's/openvswitch-kmod, //g' openvswitch-2.5.1/rhel/openvswitch.spec > openvswitch-2.5.1/rhel/openvswitch_no_kmod.speccp openvswitch-2.5.1.tar.gz rpmbuild/SOURCESrpmbuild -bb --without=check ~/openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec

ovs_server01

ovs_server0​​​​2

(5)查看并退出用户

ls /home/ovswitch/rpmbuild/RPMS/x86_64/exit

ovs_server01

ovs_server0​​​​2

(6)RPM包安装

yum localinstall -y /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm

ovs_server01

ovs_server02

(7)设置开机自启

1)查看
systemctl status openvswitch.service2)启动
systemctl start  openvswitch.service3)开机自启
systemctl enable openvswitch.service4)再次查看
systemctl status openvswitch.service

ovs_server01

ovs_server02

(7)安装virt-manager与virsh(libvrit-client)

yum install  -y  virt-manager  libvirt-client

ovs_server01

ovs_server02

(8)关闭防⽕墙

systemctl  stop firewalld.service
systemctl  disable  firewalld.service 

ovs_server01

ovs_server02

(9)查看

ovs-vsctl show

ovs_server01

ovs_server02

3.Linux 部署VXLAN 

(1)添加OVS

ovs_server01

ovs-vsctl  add-br ovs01

ovs_server02

ovs-vsctl  add-br ovs02

(2)添加OVS internal

ovs_server01

ovs-vsctl  add-port ovs01  if01 -- set interface if01 type=internal

ovs_server02

ovs-vsctl  add-port ovs02  if02 -- set interface if02 type=internal

(3)查看

ovs-vsctl show

ovs_server01

ovs_server02

(4)ovs_server01创建云主机

virt-manager

新建虚拟机

前进

使用镜像

修改内存

选择网络if01

强制关机

挂载镜像

修改启动项为光驱

开机选择第3个命令行

 (5)ovs_server02创建云主机

virt-manager

 新建虚拟机

前进

使用镜像

修改内存

选择网络if01

强制关机

挂载镜像

修改启动项为光驱

开机选择第3个命令行

(7)查看云主机网卡并修改

cloudserver01

sudo ifconfigsudo ifconfig eth0 172.16.1.1 netmask 255.255.255.0

cloudserver02

sudo ifconfigsudo ifconfig eth0 172.16.1.2 netmask 255.255.255.0

(8) 测试网络

云主机1 ping 云主机2 ,目前不通

(9)部署VXLAN端⼝

ovs_server01

ovs-vsctl add-port  ovs01 vxlan0 -- set interface vxlan0  type=vxlan options:remote_ip=192.168.204.62 options:key=10001

ovs_server02

ovs-vsctl add-port  ovs02 vxlan0 -- set interface vxlan0  type=vxlan options:remote_ip=192.168.204.61 options:key=10001

(10)查看

ovs-vsctl show

ovs_server01

ovs_server02

 (11) 测试网络

云主机1 ping 云主机2 ,目前已通

(12)流量抓包(tcpdump)

ovs_server01

云主机1 ping 云主机2

观察抓取的流量(源端口一直在变化,目的端口都为4789)

(13) 流量抓包(Wireshark)

 云主机1 ping 云主机2

观察抓取的流量

(14)流量分析(Wireshark)

原始数据:

VXLAN隧道封装了VNI (实现多租户隔离)

原始数据(二层包)封装在UDP,原端口随机,目的端口为4789

新IP头:

这篇关于云计算:Linux 部署 OVS 集群(服务端)实现VXLAN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896240

相关文章

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的