一、  网络服务概述
Networking(neutron),允许创建、插入接口设备,这些设备由其他的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。
它包含下列组件:
neutron-server
接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。
OpenStack Networking plug-ins and agents(OpenStack网络插件和代理)
插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
Messaging queue(消息队列)
大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态 OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。
二、 网络概念
OpenStack网络(neutron)管理OpenStack环境中所有虚拟网络基础设施(VNI),物理网络基础设施(PNI)的接入层。OpenStack网络允许租户创建包括像 firewall,load balancer和virtual private network(VPN)等这样的高级虚拟网络拓扑。
网络服务提供网络,子网以及路由这些对象的抽象概念。每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络间进行路由转发。
对于任意一个给定的网络都必须包含至少一个外部网络。不像其他的网络那样,外部网络不仅仅是一个定义的虚拟网络。相反,它代表了一种OpenStack安装之外的能从物理的,外部的网络访问的视图。外部网络上的IP地址可供外部网络上的任意的物理设备所访问
外部网络之外,任何 Networking 设置拥有一个或多个内部网络。这些软件定义的网络直接连接到虚拟机。仅仅在给定网络上的虚拟机,或那些在通过接口连接到相近路由的子网上的虚拟机,能直接访问连接到那个网络上的虚拟机。
如果外部网络想要访问实例或者相反实例想要访问外部网络,那么网络之间的路由就是必要的了。每一个路由都配有一个网关用于连接到外部网络,以及一个或多个连接到内部网络的接口。就像一个物理路由一样,子网可以访问同一个路由上其他子网中的机器,并且机器也可以访问路由的网关访问外部网络。
另外,你可以将外部网络的IP地址分配给内部网络的端口。不管什么时候一旦有连接连接到子网,那个连接被称作端口。你可以给实例的端口分配外部网络的IP地址。通过这种方式,外部网络上的实体可以访问实例.
网络服务同样支持安全组。安全组允许管理员在安全组中定义防火墙规则。一个实例可以属于一个或多个安全组,网络为这个实例配置这些安全组中的规则,阻止或者开启端口,端口范围或者通信类型。
每一个Networking使用的插件都有其自有的概念。虽然对操作VNI和OpenStack环境不是至关重要的,但理解这些概念能帮助你设置Networking。所有的Networking安装使用了一个核心插件和一个安全组插件(或仅是空操作安全组插件)。另外,防火墙即服务(FWaaS)和负载均衡即服务(LBaaS)插件是可用的。
三、 安装和配置控制节点
接下来操作在控制节点上操作
1. 先决条件
在配置OpenStack网络服务之前,必须创建一个数据库,服务凭证和API端点。
① 创建数据库,完成以下操作
mysql -u root –p
create database neutron;
grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'neutron';
grant all privileges on neutron.* to 'neutron'@'%' identified by 'neutron';
flush privileges;
exit
② 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
. admin-openrc
③ 要创建服务的凭证,完成以下步骤:
创建neutron用户:
openstack user create --domain default --password-prompt neutron

        

            把neutron加到admin角色里:
openstack role add --project service --user neutron admin
创建neutron服务实体
openstack service create --name neutron --description "OpenStack Networking" network

          

        ④  创建网络服务API端点:
openstack endpoint create --region RegionOne network public http://controller:9696

          

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

          

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

          

    2. 配置网络选项
可以部署网络服务使用选项1和选项2两种架构中的一种来部署网络服务。
选项1采用尽可能简单的架构进行部署,只支持实例连接到公有网络(外部网络)。没有私有网络(个人网络),路由器以及浮动IP地址。只有admin或者其他特权用户才可以管理公有网络
选项2在选项1的基础上多了layer-3服务,支持实例连接到私有网络。demo或者其他没有特权的用户可以管理自己的私有网络,包含连接公网和私网的路由器。另外,浮动IP地址可以让实例使用私有网络连接到外部网络,
例如互联网
典型的私有网络一般使用覆盖网络。覆盖网络,例如VXLAN包含了额外的数据头,这些数据头增加了开销,减少了有效内容和用户数据的可用空间。在不了解虚拟网络架构的情况下,实例尝试用以太网 最大传输单元 (MTU) 1500字节发送数据包。网络服务会自动给实例提供正确的MTU的值通过DHCP的方式。但是,一些云镜像并没有使用DHCP或者忽视了DHCP MTU选项,要求使用元数据或者脚本来进行配置
在此选择选项2部署。选项1网络点击
接下来安装和配置网络组件在控制器节点上操作,部署高级网络。
① 安装网络组建
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y
② 配置服务组件
编辑/etc/neutron/neutron.conf文件和完成以下操作:
在[database]部分,配置数据库连接
[database]
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
在[DEFAULT]部分,激活二层插件,路由服务,浮动ip服务:
[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
在[DEFAULT]部分,配置 rabbitMQ信息队列接入:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
在[DEFAULT]和[keystone_authtoken]部分,配置身份服务接入:
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
在[DEFAULT]和[nova]部分,配置网络服务通知计算的网络拓扑变化:
[DEFAULT]
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[nova]
auth_url = http://controller: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]部分,配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
③ 配置二层网络插件
使用Linux桥接制构建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]部分,激活linux桥和二层网络:
[ml2]
mechanism_drivers = linuxbridge,l2population
注意:linux桥只支持VXLAN覆盖网络。
在[ml2]部分,激活端口安全扩展机制:
[ml2]
extension_drivers = port_security
在[ml2_type_flat]部分,配置公共虚拟网络为flat网络:
[ml2_type_flat]
flat_networks = provider
在[ml2_type_vxlan]部分,为私有网络配置VXLAN网络识别的网络范围:
[ml2_type_vxlan]
vni_ranges = 1:1000
在[securitygroup]部分,激活ipset提高安全组的效率规则:
[securitygroup]
enable_ipset = true
④ 配置linux bridge agent
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件完成以下操作:
在[linux_bridge]部分,配置公共虚拟网络和公共物理网络接口对应起来:
[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
把PROVIDER_INTERFACE_NAME换成物理网卡的名字:也就是第二块网卡名字:eno33554960
在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的ip地址,和启用二层网络:
[vxlan]
enable_vxlan = True
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
l2_population = True
把OVERLAY_INTERFACE_IP_ADDRESS替换成覆盖网络的底层物理网络接口ip地址,这个例子中使用管理网络接口和其他节点建立流量隧道。因此替换成管理接口ip地址:10.0.0.11
在[securitygroup]部分,激活安全组和配置linux桥 iptables防火墙:
⑤ 配置三层网络代理
三层网络为私有虚拟网络提供路由和NAT服务。
编辑/etc/neutron/l3_agent.ini文件和配置完成以下操作:
在[DEFAULT]部分,配置linux桥接口驱动和外部网络桥:
[DEFAULT]
interface_driver = linuxbridge
⑥ 配置dhcp代理
DHCP代理为虚拟网络提供dhcp服务。
编辑/etc/neutron/dhcp_agent.ini文件和完成以下操作。
在[DEFAULT]部分,配置linux bridge接口驱动,dhcp驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据:
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
3. 配置元数据代理
元数据代理提供配置信息,如凭证实例。
编辑/etc/neutron/metadata_agent.ini文件和完成以下操作:
在[DEFAULT]部分,配置元数据主机以及共享密码:
[DEFAULT]
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET
(METADATA_SECRET代表为元数据主机设置的新密钥:这里是metadata)
4. 为计算节点配置网络服务
编辑/etc/nova/nova.conf文件执行以下操作:
在[neutron]部分,配置访问参数,激活元数据代理和配置密钥:
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS #就是用户neutron的密码
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET
#METADATA_SECRET:刚才设置的元数据主机密码
5. 完成安装
① 网络服务初始化脚本需要一个超链接 /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
② 同步数据库:
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
③ 重启计算api服务:
systemctl restart openstack-nova-api.service
④ 设置network服务启动和开机启动
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
选择网络选项2,高级网络 还需要启动网络三层模块:
systemctl enable neutron-l3-agent.service
systemctl start neutron-l3-agent.service
四、 安装和配置计算节点
计算节点处理连接和安全组的实例。
接下来的操作在计算节点上操作
1. 安装组件
yum install openstack-neutron-linuxbridge ebtables ipset -y
2. 配置通用组件
网络常见的组件配置包括身份验证机制、消息队列和插件。
编辑/etc/neutron/neutron.conf文件完成以下操作:
在[database]部分,注释掉任何连接选项,因为计算节点不直接访问数据库。(这里默认安装也是什么都没有,但是最好检查一下。)
在[DEFAULT]部分,配置RabbitMQ消息队列接入:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
在[DEFAULT]和[keystone_authtoken]部分,配置认证服务接入:
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
在[oslo_concurrency]部分,配置锁定路径:
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
3. 配置网络选项
网络服务有两种形式:公共网络私有网络
这里配置网络要和在控制节点配置的网络一样,选择私有网络进行配置。
配置linux bridge agent
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件完成以下操作:
在[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来:
[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
# PROVIDER_INTERFACE_NAME :是服务器的第二块网卡名字
在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用二层交换功能:
[vxlan]
enable_vxlan = true
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
l2_population = true
# OVERLAY_INTERFACE_IP_ADDRESS 管理接口的ip地址
在[securitygroup]部分,激活安全组和配置linux bridge iptables防护墙驱动:
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
4. 计算节点配置网络服务
编辑/etc/nova/nova.conf文件完成以下操作:
在[neutron]部分,配置接入参数
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
5. 完成安装
① 重启计算服务
systemctl restart openstack-nova-compute.service
② 启动linux bridge agent服务和设置开机启动
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service
五、 核查操作
接下来操作在控制节点上操作
1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
. admin-openrc
2. 列出加载的扩展来验证neutron-server进程是否正常启动:
注意: 实际的输出结果也许与本例有细微的差异。
openstack extension list –network
3. 验证网络配置:
列出代理以验证启动 neutron 代理是否成功:
openstack network agent list
输出结果包括:控制节点上的4个代理和计算节点上的1个代理。

    到现在,openstack环境已经包含了启动一个基本实例的所有组件。
可以参考openstack命令行使用手册进行操作使用openstack。

openstack-ocata-网络服务5的更多相关文章

  1. Openstack Ocata 公共服务端(三)

    Openstack Ocata 公共服务端 mysql 安装: yum install mariadb mariadb-server mysql 安装过程省略 rabbit-server 安装包: # ...

  2. OpenStack (neutron 网络服务)

    neutron介绍 提供 OpenStack 虚拟网络服务,也是 OpenStack 重要的核心模块之一,该模块最开始是 Nova 的一部分,叫 nova-network,后来从 Nova 中分离出来 ...

  3. Openstack neutron 网络服务 (七)

    引用: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/common/get-started-networking.html neut ...

  4. openstack——neutron网络服务

    一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...

  5. 【openstack N版】——网络服务neutron

    一.openstack网络服务neutron 1.1neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目,早期的时候是没有neutron,早期所使用的 ...

  6. 【openstack N版】——网络服务neutron(flat扁平网络)

    一.openstack网络服务neutron 1.1neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目,早期的时候是没有neutron,早期所使用的 ...

  7. CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)

    上一章介绍了独立的nova计算节点的安装方法,本章分享openstack的网络服务neutron的安装配制方法 ------------------- 完美的分割线 ----------------- ...

  8. Openstack(十一)部署网络服务neutron(控制节点)

    11.1neutron服务介绍 neutron是openstack的网络组件,是OpenStack的网络服务,Openstack在2010年正式发布它的第一个版本Austin的时候,nova-netw ...

  9. OpenStack Train版-7.neutron网络服务概述

    网络服务NEUTRON概述 一.NEUTRON架构 OpenStack的网络服务neutron是整个OpenStack中最复杂的一个部分,它的基本架构是一个中心服务(neutron-server)外加 ...

  10. openstack (5)-- 部署 Neutron 网络服务

    Neutron 概念: 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和删除网络,网络的连 ...

随机推荐

  1. Tomcat xxx unbound

    从别的地方import的代码 .出现apache unbound 第一步:选中项目右键Build Path->Configure Build Path-->选中Tomcat 7.0 unb ...

  2. struts 中的addFieldError

    addFieldError("字段名","错误信息")给一个字段(属性)添加错误消息 在action中添加 this.addFieldError("p ...

  3. 长整形 Unix系统毫秒时间 (long类型) 转换为时间格式

    /** * 把毫秒转化成日期 * * @param dateFormat(日期格式,例如:MM/ dd/yyyy HH:mm:ss) * @param millSec(毫秒数) * @return * ...

  4. 【转】GPS基线的精化处理

    影响基线解算结果的因素主要有: (1)基线解算时所设定的起点坐标不准确. 起点坐标不准确,会导致基线出现尺度和方向上的偏差,造成的影响目前还没有较容易的方法来加以判别,因此,在实际工作中,只有尽量提高 ...

  5. Spring AOP小记

    一.概述 在通常的开发过程中,我们调用的顺序通常是controller->service-dao,其中,service中包含着太多的业务逻辑,并且还要不断调用dao来实现自身的业务逻辑,经常会导 ...

  6. bzoj 4562 [Haoi2016]食物链

    4562: [Haoi2016]食物链 Time Limit: 10 Sec  Memory Limit: 128 MB Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 ...

  7. Jmeter之http性能测试实战 NON-GUI模式 进行分布式压力测试——干货(十二)

    Apache JMeter Distributed Testing Step-by-step This short tutorial explains how to use multiple syst ...

  8. xBIM 基本的模型操作

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  9. JVM基础篇(一)

    JVM简介 JVM(Java虚拟机)是一个虚拟的机器,在实际的计算机上通过软件模拟来实现.JVM有自己的硬件,如处理器.堆栈.寄存器等,还具有相应的指令系统. JVM包括一套字节码指令集.一组寄存器. ...

  10. 洛谷 [P3973] 线性代数

    最大权闭合子图,神题 这不是线性代数,这是网络流. 我们看见这是一堆矩阵的运算,而且最后变成了一个数,那么我们就想到,把这个矩阵乘法的过程用具体的数字推出来 我们发现,a是一个01矩阵,然后其实就可以 ...