云计算:OpenStack 分布式架构管理VXLAN网络(单控制节点与多计算节点)
目录
一、实验
1.环境
2.各节点新增网卡准备VXLAN网络
3.控制节点配置私有网络
4.计算节点1配置私有网络
5.计算节点2配置私有网络
6.重启服务
7.修改Dashboard
8.新建项目(租户)及用户
9.新建网络与子网
10.新建实例
11.新建路由
12.新增浮动IP关联云主机实例
二、问题
1.私有网络主要组件相互关系
2.VXLAN底层如何实现
一、实验
1.环境
(1) 主机
表1 主机
| 主机 | 架构 | IP | 备注 |
| controller | 控制节点 | 192.168.204.210 | 已部署 |
| compute01 | 计算节点1 | 192.168.204.211 | 已部署 |
| compute02 | 计算节点2 | 192.168.204.212 | 已部署 |
| storage01 | 存储节点1 | 192.168.204.221 | 已部署 |
| storage02 | 存储节点2 | 192.168.204.222 | 已部署 |
| nas | nfs节点 | 192.168.204.229 | 已部署 |
(2)官网
OpenStack Docs: OpenStack Installation Guide for Red Hat Enterprise Linux and CentOS
2.各节点新增网卡准备VXLAN网络
(1)控制节点修改eth1网卡

(2)计算节点1修改eth1网卡

(3)计算节点2修改eth1网卡

(4)控制节点新增网络 ping 计算节点新增网络


3.控制节点配置私有网络
(1)编辑/etc/neutron/neutron.conf 文件
① 在[DEFAULT]部分,启用Modular Layer 2 (ML2)插件,路由服务和重叠的IP地址
[DEFAULT]
...
service_plugins = router
allow_overlapping_ips = True
②备份修改


(2)配置 Modular Layer 2 (ML2) 插件,编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件
① 在[ml2]部分,启用flat,VLAN以及VXLAN网络:
[ml2]
...
type_drivers = flat,vlan,vxlan
② 在[ml2]部分,启用VXLAN私有网络
[ml2]
...
tenant_network_types = vxlan
③ 在[ml2]部分,启用Linuxbridge和layer-2机制
[ml2]
...
mechanism_drivers = linuxbridge,l2population
④ 在[ml2]部分,启用端口安全扩展驱动:
[ml2]
...
extension_drivers = port_security
⑤ 在[ml2_type_vxlan]部分,为私有网络配置VXLAN网络识别的网络范围:
[ml2_type_vxlan]
...
vni_ranges = 20000:30000
⑥备份修改
![]()


(3)配置Linuxbridge代理,编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
① 在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
[vxlan]
enable_vxlan = True
local_ip = 192.168.199.210
l2_population = True
② 直接修改


(4)配置layer-3代理,编辑/etc/neutron/l3_agent.ini文件
① 在[DEFAULT]部分,配置Linuxbridge接口驱动和外部网络网桥:
[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =
② 直接修改


4.计算节点1配置私有网络
(1)配置Linuxbridge代理,编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
①在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
[vxlan]
enable_vxlan = True
local_ip = 192.168.199.211
l2_population = True
② 直接修改


5.计算节点2配置私有网络
(1)配置Linuxbridge代理,编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
① 在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
[vxlan]
enable_vxlan = True
local_ip = 192.168.199.212
l2_population = True
② 直接修改


6.重启服务
(1)控制节点重启服务
[root@controller network-scripts]# systemctl restart neutron-server.service \
> neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
> neutron-metadata-agent.service[root@controller network-scripts]# systemctl enable neutron-l3-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service to /usr/lib/systemd/system/neutron-l3-agent.service.[root@controller network-scripts]# systemctl start neutron-l3-agent.service

(2)计算节点1重启服务
[root@compute01 network-scripts]# systemctl restart neutron-linuxbridge-agent.service
![]()
(3)计算节点2重启服务
[root@compute02 network-scripts]# systemctl restart neutron-linuxbridge-agent.service
![]()
(4)新增L3代理
[root@controller network-scripts]# neutron agent-list

7.修改Dashboard
(1)查看系统网络功能,目前暂无路由功能

(2)控制节点编辑文件 /etc/openstack-dashboard/local_settings
[root@controller ~]# vim /etc/openstack-dashboard/local_settings
① 修改前

②修改后

(3)重启服务
[root@controller ~]# systemctl restart httpd.service memcached.service

(4)重新登录

(5)网络新增路由器功能


8.新建项目(租户)及用户
(1)新建项目
[root@controller ~]# openstack project create --domain default devops03

(2)新建用户
[root@controller ~]# openstack user create --domain default --password Admin@123 --project devops03 user01

(3)修改配置文件
[root@controller ~]# vim keystone_user01
![]()

(4)创建角色并关联
[root@controller ~]# openstack role create user[root@controller ~]# openstack role add --project devops03 --user user01 user

(5)浏览器新建Private窗口

(6)用户user01登录

(7)登录成功

9.新建网络与子网
(1)查看网络

(2)查看网络拓扑

(3)创建测试网络

(4)完成创建

(5)控制节点查看网络
[root@controller ~]# neutron net-show test_user_network | grep provider

(6)修改网络名称

(7)完成更新

(8)新建子网(切换user01用户所在项目环境)
[root@controller ~]# source keystone_user01[root@controller ~]# neutron subnet-create --name vxlan_subnet_01 \
> --allocation-pool start=172.16.100.50,end=172.16.100.59 \
> --dns-nameserver 8.8.8.8 \
> --gateway 172.16.100.254 \
> Vxlan_user_network01 172.16.100.0/24

(9)查看

10.新建实例
(1)控制节点新建实例cloud-server-vxlan01-01
[root@controller ~]# nova boot --flavor m2.micro --image cirros --nic net-name=Vxlan_user_network01 --security-group default cloud-server-vxlan01-01
(2)新建实例cloud-server-vxlan01-03
[root@controller ~]# nova boot --flavor m2.micro --image cirros --nic net-name=Vxlan_user_network01 --security-group default cloud-server-vxlan01-03

(3) 查看云主机列表
[root@controller ~]# nova list

(4)查看

11.新建路由
(1)查看当前网络

(2)查看当前网络拓扑

(3)admin管理员修改flat网络为外部网络

(4)再次查看网络拓扑

(5)新建路由
[root@controller ~]# neutron router-create router01

(6)查看路由器

(7)查看网络拓扑

(8)查看网络列表
[root@controller ~]# neutron net-list

(9)路由器添加外部网关
[root@controller ~]# neutron router-gateway-set router01 flat_network_01

(10)查看网络拓扑

(11)查看子网信息
[root@controller ~]# neutron subnet-list

(12)路由器添加内部网关
[root@controller ~]# neutron router-interface-add router01 vxlan_subnet_01

(13)查看网络拓扑

(14)查看路由列表
[root@controller ~]# neutron router-list

(15)查看路由器

(16)user01查看接口(devops03项目下用户只能看到内部接口)

(17)admin查看接口(管理员用户能看到内外部接口)

(18)查看交换机

12.新增浮动IP关联云主机实例
(1)新增浮动IP
[root@controller ~]# neutron floatingip-create flat_network_01

(2)查看
[root@controller ~]# neutron floatingip-list

(3)查看云主机列表
[root@controller ~]# nova list

(4)查看端口列表
[root@controller ~]# neutron port-list

(5)浮动IP关联云主机实例cloud-server-vxlan01-01(通过id绑定)
[root@controller ~]# neutron floatingip-associate b4289c34-6cf4-4f16-abb4-303ed987ed0e 362c9a97-9ded-46bc-b16b-1b32f5da8e9b

(6)查看
[root@controller ~]# neutron floatingip-list

(7)可视化界面查看实例(1台云主机都绑定浮动IP)

(8)查看当前安全组


(9)新增安全组入口规则
[root@controller ~]# openstack security group rule create --proto icmp default[root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default

(10)查看安全组规则

(11)新增浮动IP
[root@controller ~]# neutron floatingip-create flat_network_01

(12)查看
[root@controller ~]# neutron floatingip-list

(13)浮动IP关联云主机实例cloud-server-vxlan01-03(通过id绑定)
[root@controller ~]# neutron floatingip-associate f9b14337-02c8-48d6-af95-1f36760c5742 fa224427-aa68-451b-bd12-708d6ac1ec84

(14)查看
[root@controller ~]# neutron floatingip-list

(15)可视化界面查看实例(2台云主机都已绑定浮动IP)

二、问题
1.私有网络主要组件相互关系
(1) Modular Layer 2 (ML2) 插件
ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施。
(2)Linuxbridge代理
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
(3)layer-3代理
Layer-3代理为私有虚拟网络提供路由和NAT服务。
(4)DHCP代理
DHCP代理为虚拟网络提供DHCP服务。
2.VXLAN底层如何实现
(1)查看实例cloud-server-vxlan01-01详细信息
[root@controller ~]# nova show cloud-server-vxlan01-01

![]()
(2)查看实例cloud-server-vxlan01-03详细信息
[root@controller ~]# nova show cloud-server-vxlan01-03


(3)查看各计算节点实例


(4)获取2个云主机实例信息

(5)查看交换机

(6)计算节点2查看交换机

(7)查看实例cloud-server-vxlan01-01配置文件
![]()
关键信息

(8)查看实例cloud-server-vxlan01-03配置文件
关键信息
相关文章:
云计算:OpenStack 分布式架构管理VXLAN网络(单控制节点与多计算节点)
目录 一、实验 1.环境 2.各节点新增网卡准备VXLAN网络 3.控制节点配置私有网络 4.计算节点1配置私有网络 5.计算节点2配置私有网络 6.重启服务 7.修改Dashboard 8.新建项目(租户)及用户 9.新建网络与子网 10.新建实例 11.新建路由 12.新增浮…...
MATLAB --- dlmread( )函数的用法
dlmread() 是 MATLAB 中用于读取以特定分隔符分隔的文本文件数据的函数 下面是 dlmread() 函数的用法: M dlmread(filename) M dlmread(filename, delimiter) M dlmread(filename, delimiter, R, C) M dlmread(filename, delimiter, range)参数说明࿱…...
STM32CubeMX RS485接口使用
一、基本知识 TTL(Transistor-Transistor Logic): 电平范围: 逻辑1对应于2.4V–5V,逻辑0对应于0V–0.5V。通信特点: 全双工。特点: 常见于单片机和微控制器的IO电平,USB转TTL模块通常…...
ClickHouse(20)ClickHouse集成PostgreSQL表引擎详细解析
文章目录 PostgreSQL创建一张表实施细节用法示例 资料分享参考文章 PostgreSQL PostgreSQL 引擎允许 ClickHouse 对存储在远程 PostgreSQL 服务器上的数据执行 SELECT 和 INSERT 查询. 创建一张表 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] (name…...
R304S 指纹识别模块功能实现示例
1 基本通信流程 1.1 UART 命令包的处理过程 1.2 UART 数据包的发送过程 UART 传输数据包前,首先要接收到传输数据包的指令包,做好传输准备后发送成功应答包,最后才开始传输数据包。数据包主要包括:包头、设备地址、包标识、包长…...
2、Excel:基础概念、表格结构与常见函数
数据来源:八月成交数据 数据初探 业务背景 数据来源行业:金融行业(根据应收利息和逾期金额字段来判断) 可以猜测: 业务主体:某互联网金融公司(类似支付宝)也业务模式:给…...
鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法
一、介绍 鱼类识别系统。使用Python作为主要编程语言开发,通过收集常见的30种鱼类(‘墨鱼’, ‘多宝鱼’, ‘带鱼’, ‘石斑鱼’, ‘秋刀鱼’, ‘章鱼’, ‘红鱼’, ‘罗非鱼’, ‘胖头鱼’, ‘草鱼’, ‘银鱼’, ‘青鱼’, ‘马头鱼’, ‘鱿鱼’, ‘鲇…...
ThreadLocal线程重用导致用户信息错乱的 Bug
在生产上遇到一个诡异的问题,有时获取到的用户信息是别人的。查看代码后,我发现他使用了 ThreadLocal 来缓存获取到的用户信息。 我们知道,ThreadLocal 适用于变量在线程间隔离,而在方法或类间共享的场景。如果用户信息的获取比较…...
洛谷——P1143 进制转换
文章目录 一、题目进制转换题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 二、题解基本思路: 一、题目 进制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换。 输入格式 共三行,第一行是一个正整数,表示需要转换的…...
linux stop_machine 停机机制应用及一次触发 soft lockup 分析
文章目录 stop_mchine 引起的 soft lockup触发 soft lockup 原因分析(一):触发 soft lockup 原因分析(二)触发 soft lockup 原因分析(三) stop_mchine 引起的 soft lockup 某次在服务器上某节点…...
ARM 链接器优化功能介绍
消除公共部分组 链接器可以检测节组的多个副本,并丢弃其他副本。 Arm Compiler for Embedded 生成用于链接的完整对象。因此: 如果 C 和 C 源代码中存在内联函数,则每个对象都包含该对象所需的内联函数的外联副本。如果在 C 源代码中使用…...
动手学深度学习之卷积神经网络之池化层
池化层 卷积层对位置太敏感了,可能一点点变化就会导致输出的变化,这时候就需要池化层了,池化层的主要作用就是缓解卷积层对位置的敏感性 二维最大池化 这里有一个窗口,来滑动,每次我们将窗口中最大的值给拿出来 还是上…...
HackTheBox - Medium - Linux - Ambassador
Ambassador Ambassador 是一台中等难度的 Linux 机器,用于解决硬编码的明文凭据留在旧版本代码中的问题。首先,“Grafana”CVE (“CVE-2021-43798”) 用于读取目标上的任意文件。在研究了服务的常见配置方式后,将在其…...
嵌入式——循环队列
循环队列 (Circular Queue) 是一种数据结构(或称环形队列、圆形队列)。它类似于普通队列,但是在循环队列中,当队列尾部到达数组的末尾时,它会从数组的开头重新开始。这种数据结构通常用于需要固定大小的队列,例如计算机内存中的缓冲区。循环队列可以通过数组或链表实现,…...
2024.1.7-实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功)
实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功) 目录 最终效果 原文链接 https://onedayxyy.cn/docs/prometheus-grafana-ecs 参考模板 https://i4t.com/ https://grafana.frps.cn 🔰 额,注意哦: 他这个是通过frp来…...
20240107 SQL基础50题打卡
20240107 SQL基础50题打卡 1978. 上级经理已离职的公司员工 表: Employees ----------------------- | Column Name | Type | ----------------------- | employee_id | int | | name | varchar | | manager_id | int | | salary | int | -…...
阿里云公网带宽出网和入网是什么?上行和下行是什么?
什么是阿里云服务器ECS的入网带宽和出网带宽?以云服务器为中心,流入云服务器占用的带宽是入网带宽,流量从云服务器流出的带宽是出网带宽。阿里云服务器网aliyunfuwuqi.com分享入网带宽和出网带宽说明表: 带宽类别说明入网带宽&am…...
eureka工作原理是什么
EUREKA 是一个基于 RESTful 风格的服务发现系统,它主要用于帮助实现在微服务架构中的服务自动发现与注册。其工作原理主要包括以下几个步骤: 注册中心:EUREKA 中有一个集中的注册中心,所有的服务都将在此注册和发现。注册中心可以…...
Vue中的事件委托(事件代理)使用方法介绍
事件委托(事件代理) 将原本需要绑定在子元素上的事件监听器委托在父元素上,让父元素充当事件监听的职务。 事件委托是一种利用事件冒泡的特性,在父节点上响应事件,而不是在子节点上响应事件的技术。它能够改善性能&a…...
「HDLBits题解」Wire decl
本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Wire decl - HDLBits default_nettype none module top_module(input a,input b,input c,input d,output out,output out_n ); w…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

