openstack (5)-- 部署 Neutron 网络服务
Neutron 概念:
传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备;而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建、修改和删除网络,网络的连通性和隔离不已经太可能通过手工配置来保证了。
如何快速响应业务的需求对网络管理提出了更高的要求。传统的网络管理方式已经很难胜任这项工作,而“软件定义网络(software-defined networking, SDN)”所具有的灵活性和自动化优势使其成为云时代网络管理的主流。
Neutron 的设计目标是实现“网络即服务(Networking as a Service)”。为了达到这一目标,在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。
SDN 模式服务— NeutronSDN( 软件定义网络 ), 通过使用它,网络管理员和云计算操作员可以通过程序来动态定义虚拟网络设备。Openstack 网络中的 SDN 组件就是 Quantum.但因为版权问题而改名为Neutron 。
Neutron 架构 :
Neutron 由如下组件构成:
Neutron Server
对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。
Plugin
处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。
Agent
处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。
network provider
提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。
Queue
Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。
Database
存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。
Neutron 架构非常灵活,层次较多,目的是:
1、为了支持各种现有或者将来会出现的优秀网络技术。
2、支持分布式部署,获得足够的扩展性。Neutron 架构非常灵活,层次较多。
Neutron 架构框架总结:
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 等。
环境准备
1、三台机器:主机名:lichaohost1 (控制节点)集群网ip:192.168.206.137 租户网ip: 192.168.206.142 外网ip:192.168.206.143
主机名:lichaohost2 (计算节点)集群网ip:192.168.206.138 租户网ip: 192.168.206.144
主机名:lichaohost3 (储存节点) 集群网ip :192.168.206.139
2、控制节点端三块网卡:
ens33: 集群网 (组件相互通信)
ens37:租户网 (实例相互通信)
ens38:外网
3、计算节点两块网卡
ens33:集群网
ens37:租户网
4、储存节点一块网卡
ens33:集群网
5、每台机器最少4G内存
6、静态域名解析
7、免密登录
openstacke ocata版 官方网站:https://docs.openstack.org/ocata/index.html
部署方案
控制节点:部署的服务包括:neutron server, core plugin 的 agent 和 service plugin 的 agent。
计算节点:部署 core plugin 的agent,负责提供二层网络功能。
#Open vSwitch: 网络拓扑图
Open vSwitch 中的网络设备:
br-ex:连接外部(external)网络的网桥。
br-int:集成(integration)网桥,所有 instance 的虚拟网卡和其他虚拟网络设备都将连接到该网桥。
br-tun:隧道(tunnel)网桥,基于隧道技术的 VxLAN 和 GRE 网络将使用该网桥进行通信。
tap interface:命名为 tapXXXX。
linux bridge:命名为 qbrXXXX。
veth pair:命名为 qvbXXXX, qvoXXXX
OVS integration bridge:命名为 br-int。
OVS patch ports:命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。
OVS provider bridge:命名为 br-ethX(X 为 interface 的序号)。
物理 interface:命名为 ethX(X 为 interface 的序号)。
OVS tunnel bridge:命名为 br-tun。
开始部署Neutron网络服务
1、 控制节点:登录数据库并创建数据库
- mysql -u root -p
- CREATE DATABASE neutron;
2、控制节点:授予对neutron数据库的正确访问权
- # GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
- # GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
3、控制节点:宣告环境变量
- . openrc 或者 source openrc
4、控制节点:添加neutron 用户
- openstack user create --domain default --password=neutron neutron
5、控制节点:将admin角色添加到server项目的neutron用户中
- openstack role add --project service --user neutron admin
6、控制节点:创建neutron服务实体
- openstack service create --name neutron --description "OpenStack Networking" network
7、控制节点:创建服务API端点
- # openstack endpoint create --region RegionOne network public http://lichaohost1:9696
- # openstack endpoint create --region RegionOne network internal http://lichaohost1:9696
- # openstack endpoint create --region RegionOne network admin http://lichaohost1:9696
8、控制节点:安装服务
- yum install openstack-neutron openstack-neutron-ml2 openvswitch openstack-neutron-openvswitch ebtables -y
9、控制节点:编辑 /etc/neutron/neutron.conf
# 备份
#编辑内容如下:
- [DEFAULT]
- state_path = /var/lib/neutron
- auth_strategy = keystone
- core_plugin = ml2
- service_plugins = router
- dhcp_agent_notification = true
- allow_overlapping_ips = True
- notify_nova_on_port_status_changes = true
- notify_nova_on_port_data_changes = true
- transport_url = rabbit://openstack:admin@lichaohost1
- [agent]
- [cors]
- [cors.subdomain]
- [database]
- connection = mysql+pymysql://neutron:NEUTRON_DBPASS@lichaohost1/neutron
- [keystone_authtoken]
- auth_uri = http://lichaohost1:5000
- auth_url = http://lichaohost1:35357
- memcached_servers = lichaohost1:
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = neutron
- password = neutron
- [matchmaker_redis]
- [nova]
- region_name = RegionOne
- auth_url = http://lichaohost1:35357
- auth_type = password
- project_domain_name = default
- project_name = service
- user_domain_name = default
- username = nova
- password = nova
- [oslo_concurrency]
- lock_path = $state_path/lock
- [oslo_messaging_amqp]
- [oslo_messaging_kafka]
- [oslo_messaging_notifications]
- [oslo_messaging_rabbit]
- [oslo_messaging_zmq]
- [oslo_middleware]
- [oslo_policy]
- [qos]
- [quotas]
- [ssl]
#
10、控制节点:编辑 /etc/neutron/plugins/ml2/ml2_conf.ini
#备份
#编辑内容如下
- [DEFAULT]
- [ml2]
- type_drivers = flat,vxlan
- tenant_network_types = vxlan
- mechanism_drivers = openvswitch,l2population
- extension_drivers = port_security
- [ml2_type_flat]
- [ml2_type_geneve]
- [ml2_type_gre]
- [ml2_type_vlan]
- [ml2_type_vxlan]
- vni_ranges = :
- [securitygroup]
- enable_ipset = true
11、控制节点:编辑 /etc/neutron/plugins/ml2/openvswitch_agent.ini
#备份
#编辑内容如下
- [DEFAULT]
- [agent]
- tunnel_types = vxlan
- l2_population = True
- [ovs]
- tunnel_bridge = br-tun
- local_ip = 192.168.206.142
- bridge_mappings =
- [securitygroup]
- firewall_driver = iptables_hybrid
- enable_security_group = true
- [xenapi]
12、控制节点:编辑 /etc/neutron/l3_agent.ini
#备份
#编辑内容如下:
- [DEFAULT]
- interface_driver = openvswitch
- external_network_bridge = br-ex
- [agent]
- [ovs]
13、控制节点:编辑 /etc/neutron/dhcp_agent.ini
#备份
#编辑内容如下:
- [DEFAULT]
- interface_driver = openvswitch
- dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
- enable_isolated_metadata = true
- [agent]
- [ovs]
14、控制节点:编辑 /etc/neutron/metadata_agent.ini
#备份
#编辑内容如下
- [DEFAULT]
- nova_metadata_ip = lichaohost1
- metadata_proxy_shared_secret = METADATA_SECRET
- [agent]
- [cache]
15、控制节点 计算节点:编辑 /etc/nova/nova.conf
添加以下内容
- [neutron]
- url = http://lichaohost1:9696
- auth_url = http://lichaohost1:35357
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- region_name = RegionOne
- project_name = service
- username = neutron
- password = neutron
- service_metadata_proxy = true
- metadata_proxy_shared_secret = METADATA_SECRET
# 计算节点:
16、控制节点:创建软连接
- ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
17、控制节点:同步数据库
- 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
18、控制节点:重新启动openstack-nova-api.service
- systemctl restart openstack-nova-api.service
19、控制节点:启动neutron 相关服务并设置开机自启
- # systemctl start neutron-server.service neutron-dhcp-agent.service openvswitch neutron-openvswitch-agent neutron-metadata-agent.service
- # systemctl enable neutron-server.service neutron-dhcp-agent.service openvswitch neutron-openvswitch-agent neutron-metadata-agent.service
20、控制节点:添加 br-ex网桥
- ovs-vsctl add-br br-ex
21、控制节点:网桥关联外网网卡 (添加个端口)
- ovs-vsctl add-port br-ex ens38
22、控制节点:查看网桥
- ovs-vsctl show
23、控制节点:开启 neutron-l3-agent.service 并设置开机自启
- # systemctl start neutron-l3-agent.service
- # systemctl enable neutron-l3-agent.service
24、控制节点: 查看网络服务状态
- openstack network agent list
25、计算节点: 安装相关服务
- yum install openvswitch openstack-neutron-openvswitch ebtables ipset -y
26、计算节点: 编辑 /etc/neutron/neutron.conf
#备份
#编辑内容如下
- [DEFAULT]
- #state_path = /var/lib/neutron
- auth_strategy = keystone
- #core_plugin = ml2
- #service_plugins = router
- #dhcp_agent_notification = true
- #allow_overlapping_ips = True
- #notify_nova_on_port_status_changes = true
- #notify_nova_on_port_data_changes = true
- transport_url = rabbit://openstack:admin@lichaohost1
- [agent]
- [cors]
- [cors.subdomain]
- [database]
- #connection = mysql+pymysql://neutron:NEUTRON_DBPASS@lichaohost1/neutron
- [keystone_authtoken]
- auth_uri = http://lichaohost1:5000
- auth_url = http://lichaohost1:35357
- memcached_servers = lichaohost1:
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = neutron
- password = neutron
- [matchmaker_redis]
- [nova]
- region_name = RegionOne
- auth_url = http://lichaohost1:35357
- auth_type = password
- project_domain_name = default
- project_name = service
- user_domain_name = default
- username = nova
- password = nova
- [oslo_concurrency]
- lock_path = $state_path/lock
- [oslo_messaging_amqp]
- [oslo_messaging_kafka]
- [oslo_messaging_notifications]
- [oslo_messaging_rabbit]
- [oslo_messaging_zmq]
- [oslo_middleware]
- [oslo_policy]
- [qos]
27、计算节点:编辑 /etc/neutron/plugins/ml2/openvswitch_agent.ini
#备份
#编辑内容如下
- [DEFAULT]
- [agent]
- tunnel_types = vxlan
- l2_population = True
- [ovs]
- tunnel_bridge = br-tun
- local_ip = 192.168.206.144
- bridge_mappings =
- [securitygroup]
- firewall_driver = iptables_hybrid
- enable_security_group = true
- [xenapi]
28、计算节点:编辑 /etc/nova/nova.conf
29、计算节点: 启动nova 服务
- systemctl restart openstack-nova-compute.service
30、计算节点:启动neutron 服务并设置开机自启
- systemctl start openvswitch neutron-openvswitch-agent
- systemctl enable openvswitch neutron-openvswitch-agent
31、控制节点:查看网络服务状态
- openstack network agent list
第二个计算节点Neutron 服务配置完成
openstack (5)-- 部署 Neutron 网络服务的更多相关文章
- openstack第四章:neutron— 网络服务
第四篇neutron— 网络服务 一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是 ...
- CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)
上一章介绍了独立的nova计算节点的安装方法,本章分享openstack的网络服务neutron的安装配制方法 ------------------- 完美的分割线 ----------------- ...
- openstack——neutron网络服务
一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
- OpenStack核心组件-neutron网络服务
1. neutron 介绍 1.1 Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能 ...
- openstack核心组件--neutron网络服务(4)
一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
- OpenStack组件——Neutron网络服务(1)
1.neutron 介绍: 1)Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
- neutron网络服务部署
控制节点执行 #第一步 登陆数据库 mysql -u root -p #导入neutron这个库 CREATE DATABASE neutron; #创建neutron这个用户和密码,并允许本地登陆和 ...
- openstack核心组件——neutron网络服务 抓取ip(9)
云计算openstack核心组件——neutron网络服务(9) 一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务 ...
- openstack核心组件——neutron网络服务(8)
云计算openstack核心组件——neutron网络服务(8) 一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云 ...
随机推荐
- console.log()与console.dir()
console.log()可以取代alert()或document.write(),在网页脚本中使用console.log()时,会在浏览器控制台打印出信息. console.dir()可以显示一个对 ...
- C++11新特性之final override标识符
final: final修饰符可用于修饰类,放在类名后面,被final修饰符修饰的类不能被继承.示例代码: // 正确的示范 #include <iostream> class A { p ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取
在前一章中,我们了解了Ajax的分析和抓取方式,这其实也是JavaScript动态渲染的页面的一种情形,通过直接分析Ajax,我们仍然可以借助requests或urllib来实现数据爬取. 不过Jav ...
- [Python3网络爬虫开发实战] 1.8.4-Scrapy-Redis的安装
Scrapy-Redis是Scrapy的分布式扩展模块,有了它,我们就可以方便地实现Scrapy分布式爬虫的搭建.本节中,我们将介绍Scrapy-Redis的安装方式. 相关链接 GitHub:htt ...
- 使用TensorRT加速yolo3
一.TensorRT支持的模型: TensorRT 直接支持的model有ONNX.Caffe.TensorFlow,其他常见model建议先转化成ONNX.总结如下: 1 ONNX(.onnx) 2 ...
- 黑马毕向东Java基础知识总结
Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记 侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...
- db2,差集
--漏报的数据 FROM A LEFT JOIN A′ ON 交集的条件 WHERE A′.xx IS NULL --多报的数据 FROM A′ LEFT JOIN A ON 交集的条件 WHERE ...
- drupal8 用户指南
一句话概括 - 官方文档 概念- Drupal是个内容管理系统哦 那么,什么是内容管理系统? 就是用户自己编辑自己的网站内容的一个系统. 那么,什么是Drupal呢? Drupal是一个通过模块和主题 ...
- 初学微信小程序 TodoList
微信小程序的学习 微信小程序的开始尝试 TodoList 微信开发者工具生成 目录如下: . |-- app.js |-- app.json |-- app.wxss |-- pages | |-- ...
- table中JS选取行列
<table border="1" align="center" style="width: 500px" id="doct ...