云计算: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…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...