OpenStack的Neutron来管理基础资源-网络

2024-03-11 03:36

本文主要是介绍OpenStack的Neutron来管理基础资源-网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Neutron理论(下)及实验

Neutron ML2 解决 core plugin 的问题

1.ML2插件是一种允许OpenStack网络同时地利用多种二层网络技术的框架。目前与openswitch、linuxbridge、hyperv L2 agent协同工作。ml2框架对简化新增L2网络技术的做了很好支持,比起以往新增加的核心插件,ML2框架需要更少的初期以及后期维护工作,简单来说,就是来管理基础资源的

2.Core plugin 负责管理和维护Neutron 的network,subnet 和 port 的状态信息,这些信息是全局的,只需要也只能由一个core plugin 管理。

3.所有传统的 core plugin 都需要编写大量重复和类似的数据库访问的代码,大大增加了 plugin开发和维护的工作量。

4.采用ML2 plugin后,可以在不同节点上分别部署 linux bridge agent, open vswitch agent, hyper-v agent 以及其他第三方agent。

5.ML2不但支持异构部署方案,同时能够与现有的agent无缝集成:以前用的agent不需要变,只需要将Neutron server上的传统core plugin 替换为ML2.

6.有了ML2,要支持新的network provider(网络供应商)就变得简单多了:无需从头开发core plugin,只需要开发相应的 mechanism driver,大大减少了要编写和维护的代码

Neutron ML2 架构

1.Type Drivers (类型驱动程序)

  1)Neutron 支持的每一种网络类型都有一个对应的 ML2 type driver。

  2)Type driver 负责维护网络类型的状态,执行验证,创建网络等。

  3)ML2 支持的网络类型包括 local.flat.vlan.vxlan和gre。

2.Mechansim Driver(机械驱动程序)

  1)Neutron 支持的每一种网络机制都有一个对应的ML2 mechansim driver

  2)Mechansim driver 负责获取由type driver 维护的网络状态,并确保在相应的网络设备(物理或虚拟)上正确实现这些状态。

Type驱动负责记录,机制驱动来干活

3.Mechansim driver 有三种类型:

  1)Agent-based -- 包括linux bridge,open vswitch 等。

  Linux bridge和open vswitch的ML2 mechansim driver作用是配置各个节   点上的虚拟交换机。

  2)Controller-based -- 包括 OpenDaylight.VMWare NSX等。

  3)基于物理交换机 -- 包括Cisco Nexus,Arista,Mellanox 等。

Linux bridge driverzhi支持的type包括:local、flat、vlan、vxlan

Open vswitch driver支持的type不但包括以上四种,还支持gre

   L2 population driver 作用是优化和限制overlay网络中的广播流量。

注:在公有云环境下是禁止发广播的

OpenStack Neutron的首选plugin:ML2 core plugin

Neutron Service Plugin/Agent

  1. Core Plugin/Agent -- 负责管理核心实体:net,subnet和port。将 instance 连接到 OpenStack layer 2 虚拟网络

注:2层只负责接入,不负责通(←3层控制)

  2.Service Plugin/Agent -- 负责管理更高级的网络服务扩展功能,route,load balance,firewall等

3.DHCP -- dhcp agent 通过 dnsmasq(一个工具)为 instance提供 dhcp服务。(IP池)

4.Routing -- I3 agent 可以为project(租户)创建router,提供 Neutron subnet之间的路由服务。路由功能默认通过IPtables实现。

5.Firewall -- I3 agent 可以在 router 上配置防火墙策略,提供网络安全防护。

6.Security Group -- 通过 IPtables实现。

  1)Firewall 安全策略位于 router,保护的是某个project 的所有network。

  2)Security Group 安全策略位于 instance,保护的是单个instance。

7.Load Balance -- neutron 默认通过HAProxy 为 project中的多个 instance 提供 load balance服务。

自由提供,只需提供IP即可,无需进行额外配置

Neutron 总结

Neutron 采用的是分布式架构,包括 Neutron Server、各种plugin/agent、database 和 message queue.

  1) Neutron server 接收api 请求。

  2)Plugin/agent 实现请求。

  3)Database 保存 neutron 网络状态。

  4)Message queue 实现组件之间通信。

Neutron 通过 plugin和 agent 提供的网络服务

Plugin 位于 Neutron server,包括core plugin 和service plugin。

Agent 位于各个节点,负责实现网络服务。

core plugin 提供 L2 功能, ML2 是推荐的 plugin。

使用最广泛的L2 agent 是 linux bridage 和 open vswitch。

Service plugin和 agent 提供扩展功能,包括dhcp,routing,load   balance,firewall,vpn等。

数据中心的东西流量和南北流量什么意思?

南北向流量指的是数据中心外部用户和内部服务器之间交互的流量;东西向流量指的是数据中心内部服务器之间交互的流量,也叫横向流量

东西向流量:图中①,②分别代表租户内部的流量,称之为东西向;

南北向流量:图中③,④分别代表出租户的流量,称之为南北向;

Neutron 实验

一、在base节点:

创建数据库,赋权,操作如下:

mysql -uroot -p123

CREATE DATABASE neutron;

GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';

GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';

二、在Ctrl节点

  1. 创建neutron相关用户、为用户设置角色、创建服务

相关指令如下:

. admin-openrc

openstack user create --domain default --password NEUTRON_PASS neutron

openstack role add --project service --user neutron admin

openstack service create --name neutron --description "OpenStack Networking" network

2.创建endpoint

相关指令如下:

openstack endpoint create --region RegionOne network public http://zy-2.lm.com:9696

openstack endpoint create --region RegionOne network internal http://zy-2.lm.com:9696

openstack endpoint create --region RegionOne network admin http://zy-2.lm.com:9696

3.安装软件

yum install \

openstack-neutron \

openstack-neutron-ml2 \

openstack-neutron-linuxbridge \

ebtables

4.修改/etc/neutron/neutron.conf配置文件

(1)备份并简化配置文件

cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.zy.bak

cat /etc/neutron/neutron.conf.zy.bak | grep -v ^# | uniq >/etc/neutron/neutron.conf

(2)修改

vim /etc/neutron/neutron.conf

[database]

connection = mysql+pymysql://neutron:NEUTRON_DBPASS@zy-1.lm.com/neutron

[DEFAULT]

core_plugin = ml2

service_plugins =

transport_url = rabbit://openstack:RABBIT_PASS@zy-1.lm.com

auth_strategy = keystone

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

[keystone_authtoken]

auth_uri = http://zy-2.lm.com:5000

auth_url = http://zy-2.lm.com:35357

memcached_servers = zy-1.lm.com:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = NEUTRON_PASS

[nova]

auth_url = http://zy-2.lm.com:35357

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = NOVA_PASS

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

:wq

5.修改/etc/neutron/plugins/ml2/ml2_conf.ini配置文件

    (1)备份并简化配置文件

cp /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.ini.zy.bak

cat /etc/neutron/plugins/ml2/ml2_conf.ini.zy.bak | grep -v ^# | uniq > /etc/neutron/plugins/ml2/ml2_conf.ini

    (2)修改

vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]

type_drivers = flat,vlan,gre,vxlan,geneve

tenant_network_types = flat,vlan,gre,vxlan,geneve

mechanism_drivers = linuxbridge

extension_drivers = port_security

[ml2_type_flat]

flat_networks = provider

[securitygroup]

enable_ipset = true

:wq

6.修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini配置文件

(1)备份并简化配置文件

cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini.zy.bak

cat /etc/neutron/plugins/ml2/linuxbridge_agent.ini.zy.bak | grep -v ^# | uniq > /etc/neutron/plugins/ml2/linuxbridge_agent.ini

(2)修改

vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]

physical_interface_mappings = provider:eth1

[vxlan]

enable_vxlan = false

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

:wq

7.修改/etc/neutron/dhcp_agent.ini配置文件

    (1)备份并简化配置文件

cp /etc/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.ini.zy.bak

cat /etc/neutron/dhcp_agent.ini.zy.bak | grep -v ^# | uniq > /etc/neutron/dhcp_agent.ini

    (2)修改

vim /etc/neutron/dhcp_agent.ini

[DEFAULT]

interface_driver = linuxbridge

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata = true

:wq

8.修改/etc/neutron/metadata_agent.ini配置文件

(1)备份并简化配置文件

cp /etc/neutron/metadata_agent.ini /etc/neutron/metadata_agent.ini.zy.bak

cat /etc/neutron/metadata_agent.ini.zy.bak | grep -v ^# | uniq > /etc/neutron/metadata_agent.ini

(2)修改

vim /etc/neutron/metadata_agent.ini

[DEFAULT]

nova_metadata_ip = zy-2.lm.com

metadata_proxy_shared_secret = METADATA_SECRET

:wq

9.修改/etc/nova/nova.conf配置文件

vim /etc/nova/nova.conf

[neutron]

url = http://zy-2.lm.com:9696

auth_url = http://zy-2.lm.com:35357

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = neutron

password = NEUTRON_PASS

service_metadata_proxy = true

metadata_proxy_shared_secret = METADATA_SECRET

:wq

10.做软连接,使plugin.ini文件指向ml2_conf.ini

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

11.同步数据库

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

12.重启服务并设置开机自启

systemctl restart openstack-nova-api.service

systemctl enable \

neutron-server.service \

neutron-linuxbridge-agent.service \

neutron-dhcp-agent.service \

neutron-metadata-agent.service

systemctl restart \

neutron-server.service \

neutron-linuxbridge-agent.service \

neutron-dhcp-agent.service \

neutron-metadata-agent.service

三、在compute节点:

     1.安装软件

yum install openstack-neutron-linuxbridge ebtables ipset

    2.修改/etc/neutron/neutron.conf配置文件

    (1)备份并简化配置文件

cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.zy.bak

cat /etc/neutron/neutron.conf.zy.bak | grep -v ^# | uniq > /etc/neutron/neutron.conf

    (2)修改

vim /etc/neutron/neutron.conf

[DEFAULT]

transport_url = rabbit://openstack:RABBIT_PASS@zy-1.lm.com

auth_strategy = keystone

[keystone_authtoken]

auth_uri = http://zy-2.lm.com:5000

auth_url = http://zy-2.lm.com:35357

memcached_servers = zy-1.lm.com:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = NEUTRON_PASS

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

:wq

    3.修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini配置文件

(1) 备份并简化配置文件

cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini.zy.bak

cat /etc/neutron/plugins/ml2/linuxbridge_agent.ini.zy.bak | grep -v ^# | uniq > /etc/neutron/plugins/ml2/linuxbridge_agent.ini

(2) 修改

vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]

physical_interface_mappings = provider:eth1

[vxlan]

enable_vxlan = false

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

:wq

4.修改/etc/nova/nova.conf配置文件

vim /etc/nova/nova.conf

[neutron]

url = http://zy-2.lm.com:9696

auth_url = http://zy-2.lm.com:35357

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = neutron

password = NEUTRON_PASS

:wq

5.重启服务并设置开机自启

systemctl restart openstack-nova-compute.service

systemctl enable neutron-linuxbridge-agent.service

systemctl restart neutron-linuxbridge-agent.service

四、在ctrl节点验证

. admin-openrc

openstack extension list –network

openstack network agent list

dashboard

五、ctrl 节点

  1. 安装软件

yum install openstack-dashboard

2.修改/etc/openstack- dashboard/local-settings

(1)备份

cp /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings.zy.bak

(2)修改

159 OPENSTACK_HOST = "zy-2.lm.com"

28  ALLOWED_HOSTS = ['one.example.com', 'two.example.com', '*']

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

  'LOCATION': 'zy-1.lm.com:11211',

}

}

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 2,

}

73 OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"

161 OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

OPENSTACK_NEUTRON_NETWORK = {

'enable_router': False,

'enable_quotas': False,

'enable_distributed_router': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_firewall': False,

'enable_vpn': False,

'enable_fip_topology_check': False,

}

:wq

3.重启服务

ctrl节点:systemctl restart httpd.service

base节点:systemctl restart memcached.service

4.网页验证

打开浏览器,输入http:ctrlIP/dashboard

域:default

用户名:admin(demo等)

密码:ADMIN_PASS(DEMO_PASS等)

六、创建Ubuntu虚拟机

新建虚拟机-选择镜像文件-设置内存大小,cpu数量-开始安装

1.选择语言

2.选择键盘

3.选择系统

4.配置网络参数

5.设置磁盘

6.设置参数

7.等待安装

8.重启

固定IP

修改DNS

KVM

这篇关于OpenStack的Neutron来管理基础资源-网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念