Neutron介绍

neutron是openstack重要组件之一,在以前是时候没有neutron项目。

早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个neutron。

OpenStack Networking

  • 网络:在实际的物理环境下,我们使用交换机或者集线器把多个计算机连接起来形成了网络。在Neutron的世界里,网络也是将多个不同的云主机连接起来。
  • 子网:在实际的物理环境下,在一个网络中。我们可以将网络划分成多为逻辑子网。在Neutron的世界里,子网也是隶属于网络下的。
  • 端口:在实际的物理环境下,每个子网或者网络,都有很多的端口,比如交换机端口来供计算机连接。在Neutron的世界端口也是隶属于子网下,云主机的网卡会对应到一个端口上。
  • 路由器:在实际的网络环境下,不同网络或者不同逻辑子网之间如果需要进行通信,需要通过路由器进行路由。在Neutron的实际里路由也是这个作用。用来连接不同的网络或者子网。

Neutron 架构介绍

Neutron分为控制节点和计算节点。

openstack默认的网络是单一扁平网络(虚拟机跟宿主机在同一个网段)在官方文档上称为提供者网络。

网络介绍

配置网络选项,分公共网络和私有网络

部署网络服务使用公共网络和私有网络两种架构中的一种来部署网络服务。

  • 公共网络采用尽可能简单的架构进行部署,只支持实例连接到公有网络(外部网络)。没有私有网络(个人网络),路由器以及浮动IP地址。只有admin或者其他特权用户才可以管理公有网络。
  • 私有网络在公共网络的基础上多了layer-3服务,支持实例连接到私有网络。demo或者其他没有特权的用户可以管理自己的私有网络,包含连接公网和私网的路由器。另外,浮动IP地址可以让实例使用私有网络连接到外部网络,例如互联网。典型的私有网络一般使用覆盖网络。覆盖网络,例如VXLAN包含了额外的数据头,这些数据头增加了开销,减少了有效内容和用户数据的可用空间。在不了解虚拟网络架构的情况下,实例尝试用以太网 最大传输单元 (MTU) 1500字节发送数据包。网络服务会自动给实例提供正确的MTU的值通过DHCP的方式。但是,一些云镜像并没有使用DHCP或者忽视了DHCP MTU选项,要求使用元数据或者脚本来进行配置。

本章使用公共网络进行配置

Neutron控制节点部署

1、软件包安装

yum install -y openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables

2、数据库配置

[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
[database]
connection = mysql+pymysql://neutron:neutron@192.168.137.11/neutron

3、配置keystone

[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
[keystone_authtoken]
auth_uri = http://192.168.137.11:5000
auth_url = http://192.168.137.11:35357
memcached_servers = 192.168.137.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron
[DEFAULT]
auth_strategy = keystone

4、rabbitmq(消息队列)配置

[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
rpc_backend = rabbit
rabbit_host = 192.168.137.11
rabbit_port = 5672
rabbit_userid = openstack
rabbit_password = openstack

5、neutron核心配置,启用ML2插件并禁用其他插件

[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
core_plugin = m12
service_plugins =

备注:service_plugins等号后面什么都不写就是禁用其他插件

6、配置网络服务来通知计算节点的网络拓扑变化

[DEFAULT]
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True [nova]
auth_url = http://192.168.137.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = nova

7、配置锁路径

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

8、配置Modular Layer 2 (ML2)

ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施

编辑配置文件/etc/neutron/plugins/ml2/ml2_conf.ini

  • 驱动的选择
[root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,gre,vxlan,geneve
  • 设置使用什么插件来创建网络
[ml2]
mechanism_drivers = linuxbridge,openvswitch
  • 禁用私有网络(租户的网络类型)
[ml2]
tenant_network_types =
  • 启动端口安全扩展驱动
[ml2]
extension_drivers = port_security
  • 在[ml2_type_flat]部分,配置公共的网络
[ml2_type_flat]
flat_networks = public
  • 在 [securitygroup]部分,启用 ipset增加安全组规则的高效性
[securitygroup]
enable_ipset = true

9、配置Linuxbridge代理

Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。

编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并且完成以下操作:

  • 在[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来
[linux_bridge]
physical_interface_mappings = public:eth0
  • 在[vxlan]部分,禁止VXLAN覆盖网络
[vxlan]
enable_vxlan = false
  • 在[securitygroup]部分,启用安全组并配置防火墙驱动
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

10、配置DHCP代理

编辑/etc/neutron/dhcp_agent.ini文件并完成下面的操作:

  • 在[DEFAULT]部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
[DEFAULT]
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver # 虚拟接口驱动,使用Linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq # dhcp驱动,默认使用Dnsmasq(是一个小的开源项目)来提供dhcp服务
enable_isolated_metadata = true # 刷新路由使用

11、配置元数据代理

<Metadata agent>负责提供配置信息,例如:访问实例的凭证

编辑/etc/neutron/metadata_agent.ini文件并完成以下操作:

  • 在[DEFAULT]部分,配置元数据主机以及共享密码
nova_metadata_ip = 192.168.137.11        # 元数据主机
metadata_proxy_shared_secret = shhnwangjian # 共享密钥

12、为nova-api配置网络服务

编辑/etc/nova/nova.conf文件并完成以下操作:

  • 在[neutron]部分,配置访问参数
[neutron]
url = http://192.168.137.11:9696
auth_url = http://192.168.137.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron
  • 在[neutron]部分,启用元数据代理并设置密码
[neutron]
service_metadata_proxy=true
metadata_proxy_shared_secret = shhnwangjian

13、网络服务初始化脚本需要一个超链接 /etc/neutron/plugin.ini指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini

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

14、同步数据库

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

15、重启Nova API 服务

systemctl restart openstack-nova-api.service

16、启动Neutron服务并配置开机自启动

systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service

17、keystone上注册Neutron服务

  • 创建neutron服务实体
source /root/admin-openstack.sh
openstack service create --name neutron \
--description "OpenStack Networking" network

  • 创建neutron网络服务API端点(公有、私有、admin)
openstack endpoint create --region RegionOne \
network public http://192.168.137.11:9696

openstack endpoint create --region RegionOne \
network internal http://192.168.137.11:9696

openstack endpoint create --region RegionOne \
network admin http://192.168.137.11:9696

18、检查neutron是否安装成功

neutron agent-list

Openstack 网络服务 Neutron介绍和控制节点部署 (九)的更多相关文章

  1. Openstack 网络服务 Neutron介绍和控制节点部署 (十)

    Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...

  2. OpenStack 计算服务 Nova介绍和控制节点部署(七)

    介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-c ...

  3. OpenStack 存储服务 Cinder介绍和控制节点部署(十五)

    Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...

  4. OpenStack 计算服务 Nova介绍和控制节点部署 (八)

    一)nova在keystone上服务注册 1.1创建nova务实体 [root@controller ~]# source admin-openrc [root@controller ~]# open ...

  5. OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)

    Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...

  6. OpenStack 网络服务 Neutron 私有网络构建(十九)

    本章内容基于之前提供者网络构建的基础上进行改动,之前文章参考如下: Openstack 网络服务 Neutron介绍和控制节点部署 (九) Openstack 网络服务 Neutron计算节点部署(十 ...

  7. OpenStack 网络服务 Neutron 多网卡(提供者网络)(十八)

    OpenStack 网络服务 Neutron 多网卡,分为内部网络.外部网络 使用vmware模拟两张网卡 添加网卡 网卡配置 cd /etc/sysconfig/network-scripts cp ...

  8. Openstack 网络服务 Neutron计算节点部署(十)

    Neutron计算节点部署 安装组件,安装的服务器是192.168.137.12 1.安装软件包 yum install -y openstack-neutron-linuxbridge ebtabl ...

  9. Openstack 网络服务 Neutron计算节点部署 (十一)

    一) Neutron计算节点部署 1.安装软件包 # yum install -y openstack-neutron-linuxbridge ebtables ipset 2.配置文件neutron ...

随机推荐

  1. 洛咕 P4474 王者之剑

    宝石只能在偶数秒取到,假设有一个宝石在奇数秒取到了,那么上一秒是偶数秒,在上一秒的时候这里的宝石就没了. 相邻的两个宝石不能同时取,很显然,先取一块,那么这是偶数秒,取完了这一块之后相邻的都没了. 只 ...

  2. stl源码剖析 详细学习笔记 hashset hashmap

    //---------------------------15/03/26---------------------------- //hash_set { /* hash_set概述: 1:这是一个 ...

  3. 架构师修炼 III - 掌握设计原则

    关于软件的设计原则有很多,对于设计原则的掌握.理解.实践及升华是架构师的一项极为之必要的修炼. 记得在12年前第一次阅读<敏捷开发>时,五大基本设计原则就深深地植入到我的脑海中一直影响至今 ...

  4. NX 栈不可执行的绕过方式--ROP链

    目标程序下载 提取码:5o0a 环境:Ubuntu linux 工具 pwn-gdb pwntools python库 ROPgadget ( 这些工具可以到github官网找) 1.检查程序开了哪些 ...

  5. vector 简介

    vector简介 vector是STL中最常见的容器,它是一种顺序容器,支持随机访问.vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似, 不同的地方就是:数组是静态分配空间,一旦 ...

  6. 强化学习算法DQN

    1 DQN的引入 由于q_learning算法是一直更新一张q_table,在场景复杂的情况下,q_table就会大到内存处理的极限,而且在当时深度学习的火热,有人就会想到能不能将从深度学习中借鉴方法 ...

  7. 假设检验,alpha,p值 通俗易懂的的理解。

    假设检验: 一般原假设H0 :表是为 XXX和YYYY无显著差异,H1,是有显著差异. 如果我们定义alpha的值是0.05.意味着我们接受H0是真的但是我们却认为他是假的的概率. 这里你想想,这个值 ...

  8. 剑指offer:二叉树的深度

    题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路: 这道题也是递归的思路,比较简单. 做的过程中遇到的一个 ...

  9. Office处理

    1.NPOI:一个开源项目,不需要安装Microsoft Office,支持对Office 97-2003,2007文件格式,功能比较强大. http://npoi.codeplex.com/ 2.a ...

  10. 共享服务Samba,实现liunx与Windows文件共享

    Samba服务程序 是一款SMB协议并有服务器和客户端组成的开源文件共享软件,实现了Linux 与Windows系统之间的文件共享 Samba的配置文件有太多注释的东西,为了方便使用下面的命令,可以更 ...