一.openstack网络服务neutron

1.1neutron介绍

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

  OpenStack的网络(Neutron),可以创建和附加其他的OpenStack服务,网络管理接口设备。插件可以被实现,以适应不同的网络设备和软件,提供灵活性,以开栈架构和部署。
OpenStack的网络(Neutron)管理虚拟网络基础架构(VNI),并在您的OpenStack的环境中的物理网络基础架构(PNI)的接入层方面的所有网络方面。开栈网络允许租户创建高级的虚拟网络拓扑可包括服务,例如防火墙,负载均衡器,和虚拟专用网(VPN)。

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

1.2neutron环境准备(控制节点)

1.2.1安装neutron包
 #安装neutron,openstack的网络服务
[root@linux-node1 ~]# yum install -y \
openstack-neutron \
openstack-neutron-ml2 \
openstack-neutron-linuxbridge \
ebtables
1.2.2创建库及用户
 #创建neutron库
MariaDB [(none)]> create database neutron;
Query OK, row affected (0.01 sec)
#创建neutron用户并授权
MariaDB [(none)]> grant all privileges on neutron.* to 'neutron'@'%' identified by 'neutron';
Query OK, rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'neutron';
Query OK, rows affected (0.00 sec)
1.2.3编辑neutron控制节点配置文件
 #编辑配置文件
[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
#neutron连接数据库配置
connection = mysql+pymysql://neutron:neutron@192.168.56.11/neutron
#开启keystone认证,打开注释
auth_strategy = keystone
#使用ml2插件
core_plugin = ml2
#禁用其它插件
service_plugins =
#配置neutron连接keystone
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron
#neutron连接消息队列
22 transport_url = rabbit://openstack:openstack@192.168.56.11
#配置网络服务来通知计算节点的网络拓扑变化
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
#配置[nova]部分
auth_url = http://192.168.56.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = nova
#锁文件路径
lock_path = /var/lib/neutron/tmp
1.2.4配置网络选项

您可以部署网络服务使用选项1和选项2两种架构中的一种来部署网络服务。

选项1:采用尽可能简单的架构进行部署,只支持实例连接到公有网络(外部网络)。没有私有网络(个人网络),路由器以及浮动IP地址。只有``admin``或者其他特权用户才可以管理公有网络

选项2:在选项1的基础上多了layer-3服务,支持实例连接到私有网络。``demo``或者其他没有特权的用户可以管理自己的私有网络,包含连接公网和私网的路由器。另外,浮动IP地址可以让实例使用私有网络连接到外部网络,例如互联网

典型的私有网络一般使用覆盖网络。覆盖网络,例如VXLAN包含了额外的数据头,这些数据头增加了开销,减少了有效内容和用户数据的可用空间。在不了解虚拟网络架构的情况下,实例尝试用以太网 最大传输单元 (MTU) 1500字节发送数据包。网络服务会自动给实例提供正确的MTU的值通过DHCP的方式。但是,一些云镜像并没有使用DHCP或者忽视了DHCP MTU选项,要求使用元数据或者脚本来进行配置

网络选项1:提供者网络(flat扁平网络模式)

网络选项2:自服务网络(vxlan浮动IP模式)

  • 配置 Modular Layer 2 (ML2) 插件

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

 #编辑ml2配置文件
[root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
#在ml2下添加内容
[ml2]
#启用flat和VLAN网络
type_drivers = flat,vlan,gre,vxlan,geneve
#禁用私有网络
tenant_network_types = flat,vlan,gre,vxlan,geneve
#启用linuxbridge
mechanism_drivers = linuxbridge
#启用端口安全扩展
extension_drivers = port_security
#在ml2_type_flat配置
[ml2_type_flat]
#配置公共虚拟网络名字
flat_networks = public
#在securitygroup配置
[securitygroup]
#启用ipset
enable_ipset = true
  • 配置Linuxbridge代理
 #编辑linuxbridge配置文件
[root@linux-node1 ~]# vim /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
#配置linux桥接防火墙驱动
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
  • 配置DHCP代理
 #编辑dhcp配置文件
[root@linux-node1 ~]# vim /etc/neutron/dhcp_agent.ini
#配置linuxbridge接口驱动
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
#DHCP驱动
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
#启用隔离元数据
enable_isolated_metadata = True
  • 配置元数据代理
 #修改metadata配置文件
[root@linux-node1 ~]# vim /etc/neutron/metadata_agent.ini
#元数据主机IP
nova_metadata_ip = 192.168.56.11
#配置共享密码
metadata_proxy_shared_secret = metadata
  • 在nova配置文件里配置nuetron
 #修改nova配置文件
[root@linux-node1 ~]# vim /etc/nova/nova.conf
#在neutron标签下配置
[neutron]
url = http://192.168.56.11:9696
auth_url = http://192.168.56.11: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

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

 [root@linux-node1 ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

1.2.5将数据导入数据库

 [root@linux-node1 ~]# 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

1.2.6创建端点及实体服务

 #创建neutron实体服务
[root@linux-node1 ~]# openstack service create --name neutron \
--description "OpenStack Networking" network
#创建neutron端点
[root@linux-node1 ~]# openstack endpoint create --region RegionOne \
network public http://192.168.56.11:9696
[root@linux-node1 ~]# openstack endpoint create --region RegionOne \
network internal http://192.168.56.11:9696
[root@linux-node1 ~]# openstack endpoint create --region RegionOne \
network admin http://192.168.56.11:9696

1.2.7启动neutron服务

 #重启nova-api服务
[root@linux-node1 ~]# systemctl restart openstack-nova-api.service
#允许开机自启
[root@linux-node1 ~]# systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
#启动neutron及其插件服务
[root@linux-node1 ~]# systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service

1.2.8检查服务

 [root@linux-node1 ~]# neutron agent-list
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host                    | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
| 09179e20-de5a-46c8-8653-892d8c4e6ffb | Linux bridge agent | linux-node1.example.com |                   | :-)   | True           | neutron-linuxbridge-agent |
| 62658264-8d5e-42ba-ac9c-95dc52e102ec | DHCP agent         | linux-node1.example.com | nova              | :-)   | True           | neutron-dhcp-agent        |
| c63619f7-0ed9-4833-88f4-4ae0422a9214 | Metadata agent     | linux-node1.example.com |                   | :-)   | True           | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
看到标红的三个笑脸,则证明neutron控制节点的服务启动正常

二.neutron计算节点配置

2.1计算节点neutron环境准备

2.1.1安装neutron包
 [root@linux-node2 ~]# yum install openstack-neutron-linuxbridge ebtables ipset -y
2.1.2修改neutron配置文件
 #编辑计算节点neutron配置文件
[root@linux-node2 ~]# vim /etc/neutron/neutron.conf
#连接消息队列配置
transport_url = rabbit://openstack:openstack@192.168.56.11
#开启keystone认证,打开注释
auth_strategy = keystone
#在keystone_authtoken标签下添加连接keystone配置
[keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron
#锁路径
lock_path = /var/lib/neutron/tmp
2.1.3配置网络选项

注:如果控制节点选的是,网络选项1,则此处也选择网络选项1.

网络选项1:提供者网络

网络选项2:自服务网络

  • 配置 Modular Layer 2 (ML2) 插件
 #因为计算节点此文件和控制节点相同只需要拷贝即可
[root@linux-node1 ~]# scp /etc/neutron/plugins/ml2/linuxbridge_agent.ini 192.168.56.12:/etc/neutron/plugins/ml2/
  • 在nova配置文件中配置neutron
 #修改nova配置文件
[root@linux-node2 ~]# vim /etc/nova/nova.conf
#在neutron标签下添加内容
[neutron]
url = http://192.168.56.11:9696
auth_url = http://192.168.56.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron
2.1.4启动neutron服务
 #重启nova服务
[root@linux-node2 ~]# systemctl restart openstack-nova-compute.service
#允许neutron开机自启
[root@linux-node2 ~]# systemctl enable neutron-linuxbridge-agent.service
#启动neutron服务
[root@linux-node2 ~]# systemctl start neutron-linuxbridge-agent.service
2.1.5检查服务
 #检查网络服务
[root@linux-node1 ~]# neutron agent-list
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host                    | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
| 09179e20-de5a-46c8-8653-892d8c4e6ffb | Linux bridge agent | linux-node1.example.com |                   | :-)   | True           | neutron-linuxbridge-agent |
| 62658264-8d5e-42ba-ac9c-95dc52e102ec | DHCP agent         | linux-node1.example.com | nova              | :-)   | True           | neutron-dhcp-agent        |
| 9600eb37-fce4-476f-bc31-fe7031309f04 | Linux bridge agent | linux-node2.example.com |                   | :-)   | True           | neutron-linuxbridge-agent |
| c63619f7-0ed9-4833-88f4-4ae0422a9214 | Metadata agent     | linux-node1.example.com |                   | :-)   | True           | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+
#检查计算服务
[root@linux-node1 ~]# nova service-list
+----+------------------+-------------------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary           | Host                    | Zone     | Status  | State | Updated_at                 | Disabled Reason |
+----+------------------+-------------------------+----------+---------+-------+----------------------------+-----------------+
| 1  | nova-consoleauth | linux-node1.example.com | internal | enabled | up    | 2017-02-27T06:33:10.000000 | -               |
| 2  | nova-conductor   | linux-node1.example.com | internal | enabled | up    | 2017-02-27T06:33:17.000000 | -               |
| 3  | nova-scheduler   | linux-node1.example.com | internal | enabled | up    | 2017-02-27T06:33:10.000000 | -               |
| 6  | nova-compute     | linux-node2.example.com | nova     | enabled | up    | 2017-02-27T06:33:16.000000 | -               |
+----+------------------+-------------------------+----------+---------+-------+----------------------------+-----------------+

【开源是一种精神,分享是一种美德】

— By GoodCook

— 笔者QQ:253097001

— 欢迎大家随时来交流

—原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

【openstack N版】——网络服务neutron(flat扁平网络)的更多相关文章

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

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

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

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

  3. OpenStack Train版-10.安装neutron网络服务(网络节点:可选)

    可选:安装neutron网络服务节点(neutron01网络节点192.168.0.30)网络配置按照官网文档的租户自助网络 配置系统参数 echo 'net.ipv4.ip_forward = 1' ...

  4. OpenStack实践系列⑤网络服务Neutron

    OpenStack实践系列⑤网络服务Neutron 3.8 Neturn 服务部署 注册neutron服务 [root@node1 ~]# source admin-openrc.sh [root@n ...

  5. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置

    网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...

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

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

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

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

  8. OpenStack Train版-8.安装neutron网络服务(控制节点)

    安装neutron网络服务(controller控制节点192.168.0.10) 创建neutron数据库 mysql -uroot CREATE DATABASE neutron; GRANT A ...

  9. OpenStack Train版-9.安装neutron网络服务(计算节点)

    在计算节点安装neutron网络服务(computel01计算节点192.168.0.20)安装组件 yum install openstack-neutron-linuxbridge ebtable ...

随机推荐

  1. 如何将Revit明细表导出为Excel文档

    Revit软件没有将明细表直接导出为Excel电子表格的功能,Revit只能将明细表导出为TXT格式,但是这种TXT文件用EXCEL处理软件打开然后另存为XLS格式即可,以Revit2013版自带的建 ...

  2. WPF 实现阴影效果

    一.WPF最常见的一个阴影效果的类是DropShadowEffect.它有几种比较有用的属性比如:Color设置颜色Direction设置投影的方向ShadowDepth设置投影距纹理下方的距离Opa ...

  3. jstl 格式化

    一:JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理.例如:中国内地用户将显示简体中文,台湾地区则显示繁体中文,使用I18N格式 ...

  4. Spark机器学习(6):决策树算法

    1. 决策树基本知识 决策树就是通过一系列规则对数据进行分类的一种算法,可以分为分类树和回归树两类,分类树处理离散变量的,回归树是处理连续变量. 样本一般都有很多个特征,有的特征对分类起很大的作用,有 ...

  5. 【PMP】项目浮动的三种时间

    自由浮动时间 不影响后续工作最早可以开始时间的前提下,这项工作可以拖延的时间叫做自由浮动时间. 总浮动时间 不影响项目总工期的情况下活动可以拖延的总时间. 项目浮动时间 在已经排好的总工期的基础上,领 ...

  6. 使用zlib库进行目录打包

    代码很简单,具体过程就不写了. 关于加密压缩,可以看http://www.zlib.net/zlib_faq.html#faq38 中的描述,说是不支持的,但是创建的时候可以传入密码进去,不过我还没有 ...

  7. UAC 实现原理及绕过方法-打洞专用

    首页 新随笔 订阅 管理 随笔 - 7  文章 - 0  评论 - 0 UAC 实现原理及绕过方法   目录 0x01 UAC 实现方法(用户登陆过程)0x02 UAC 架构0x03 触发UAC0x0 ...

  8. ios开发版证书与企业证书相关文件申请安装及其使用方法

    本文主要讲述以下内容: ios开发版证书的申请, 企业证书的申请, appid的创建, provision profile的生成, 开发设备devices的绑定, 以及每个证书文件之间的关系, 最后使 ...

  9. hexo + Github Page 0元建立博客攻略

    传送门: 5分钟 0元搭建个人独立博客网站(一):https://mp.weixin.qq.com/s/69isJE191WV2gaVbjrwTtw 5分钟 0元搭建个人独立博客网站(二):https ...

  10. 物联网架构成长之路(9)-双机热备Keepalived了解

    1. 前言 负载均衡LB,高可用HA,这一小结主要讲双机热备方案保证高可用.这里选择Keepalived作为双机热备方案,下面就对具体的配置进行了解.2. 下载Keepalived wget http ...