OpenStack-网络服务

【基于此文章的环境】点我快速打开文章

1、控制节点(controller)

1.1 创库授权 neutron

  1. mysql
  2. CREATE DATABASE neutron;
  3. GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
  4. IDENTIFIED BY 'NEUTRON_DBPASS';
  5. GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
  6. IDENTIFIED BY 'NEUTRON_DBPASS';

1.2 创建服务证书

1. 创建 neutron 用户

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

用合适的密码代替  NEUTRON_PASS

2. 给 neutron 用户添加 admin 角色

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

3. 创建 neutron 服务实体

  1. openstack service create --name neutron \
  2. --description "OpenStack Networking" network

4. 创建 Compute API 服务端点

  1. openstack endpoint create --region RegionOne \
  2. network public http://controller:9696
  3. openstack endpoint create --region RegionOne \
  4. network internal http://controller:9696
  5. openstack endpoint create --region RegionOne \
  6. network admin http://controller:9696

1.3 配置网络选项

1. 安装其软件包

  1. yum install openstack-neutron openstack-neutron-ml2 \
  2. openstack-neutron-linuxbridge ebtables -y &>/dev/null
  3. echo $?

2. 修改配置文件

1. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/neutron.conf{,.bak}
  2. egrep -v '^$|#' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf

2. 编辑文件 /etc/neutron/neutron.conf 并完成如下动作:
  1. vim /etc/neutron/neutron.conf
  • 在 [database] 部分,配置数据库访问
  1. [database]
  2. # ...
  3. connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

用你设置的数据库密码替换 NEUTRON_DBPASS 。

  • DEFAULT] 部分,启用 ML2 插件并禁用其他插件
  1. [DEFAULT]
  2. # ...
  3. core_plugin = ml2
  4. service_plugins =
  • [DEFAULT] 部分,配置 RabbitMQ 消息队列访问权限
  1. [DEFAULT]
  2. # ...
  3. transport_url = rabbit://openstack:RABBIT_PASS@controller

用你在 RabbitMQ 中为 openstack 选择的密码替换 RABBIT_PASS

  • [DEFAULT][keystone_authtoken] 部分中,配置身份服务访问
  1. [DEFAULT]
  2. # ...
  3. auth_strategy = keystone
  4. [keystone_authtoken]
  5. # ...
  6. auth_uri = http://controller:5000
  7. auth_url = http://controller:35357
  8. memcached_servers = controller:11211
  9. auth_type = password
  10. project_domain_name = default
  11. user_domain_name = default
  12. project_name = service
  13. username = neutron
  14. password = NEUTRON_PASS

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

  • [DEFAULT][nova] 部分,配置网络服务来通知计算节点的网络拓扑变化:
  1. [DEFAULT]
  2. # ...
  3. notify_nova_on_port_status_changes = true
  4. notify_nova_on_port_data_changes = true
  5. [nova]
  6. # ...
  7. auth_url = http://controller:35357
  8. auth_type = password
  9. project_domain_name = default
  10. user_domain_name = default
  11. region_name = RegionOne
  12. project_name = service
  13. username = nova
  14. password = NOVA_PASS

使用你在身份认证服务中设置的 nova 用户的密码替换 NOVA_PASS

  • [oslo_concurrency] 部分,配置锁路径:
  1. [oslo_concurrency]
  2. # ...
  3. lock_path = /var/lib/neutron/tmp

3. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
  2. egrep -v '^$|#' /etc/neutron/plugins/ml2/ml2_conf.ini.bak >/etc/neutron/plugins/ml2/ml2_conf.ini

4. 编辑文件 /etc/neutron/plugins/ml2/ml2_conf.ini 并完成如下动作:
  1. vim /etc/neutron/plugins/ml2/ml2_conf.ini
  • [ml2] 部分,启用 flatVLAN 网络:
  1. [ml2]
  2. # ...
  3. type_drivers = flat,vlan
  • [ml2] 部分,禁用私有网络:
  1. [ml2]
  2. # ...
  3. tenant_network_types =
  • [ml2] 部分,启用 Linuxbridge 机制:
  1. [ml2]
  2. # ...
  3. mechanism_drivers = linuxbridge
  • [ml2] 部分,启用端口安全扩展驱动:
  1. [ml2]
  2. # ...
  3. extension_drivers = port_security
  • [ml2_type_flat] 部分,配置公共虚拟网络为 flat 网络:
  1. [ml2_type_flat]
  2. # ...
  3. flat_networks = provider
  • [securitygroup] 部分,启用 ipset 增加安全组的方便性:
  1. [securitygroup]
  2. # ...
  3. enable_ipset = true

5. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
  2. egrep -v '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak >/etc/neutron/plugins/ml2/linuxbridge_agent.ini

6. 编辑文件 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 并完成如下动作:
  1. vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
  • [linux_bridge] 部分,将公共虚拟网络和公共物理网络接口对应起来:
  1. [linux_bridge]
  2. physical_interface_mappings = provider:eth0
  • [vxlan] 部分,禁止 VXLAN 覆盖网络:
  1. [vxlan]
  2. enable_vxlan = false

[securitygroup] 部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动:

  1. [securitygroup]
  2. # ...
  3. enable_security_group = true
  4. firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

9. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/dhcp_agent.ini{,.bak}
  2. egrep -v '^$|#' /etc/neutron/dhcp_agent.ini.bak >/etc/neutron/dhcp_agent.ini

10. 编辑文件 /etc/neutron/dhcp_agent.ini 并完成如下动作:
  1. vim /etc/neutron/dhcp_agent.ini
  • [DEFAULT] 部分,配置 Linuxbridge 驱动接口,DHCP 驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
  1. [DEFAULT]
  2. # ...
  3. interface_driver = linuxbridge
  4. dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
  5. enable_isolated_metadata = true

1.4 配置元数据代理

1. 修改配置文件

1. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/metadata_agent.ini{,.bak}
  2. egrep -v '^$|#' /etc/neutron/metadata_agent.ini.bak >/etc/neutron/metadata_agent.ini

2. 编辑文件 /etc/neutron/metadata_agent.ini 并完成如下动作:
  1. vim /etc/neutron/metadata_agent.ini
  • [DEFAULT] 部分,配置元数据主机以及共享密码:
  1. [DEFAULT]
  2. # ...
  3. nova_metadata_ip = controller
  4. metadata_proxy_shared_secret = METADATA_SECRET

用你为元数据代理设置的密码替换 METADATA_SECRET。

3. 编辑文件 /etc/nova/nova.conf 并完成如下动作:
  1. vim /etc/nova/nova.conf
  • [neutron] 部分,配置访问参数,启用元数据代理并设置密码:
  1. [neutron]
  2. # ...
  3. url = http://controller:9696
  4. auth_url = http://controller:35357
  5. auth_type = password
  6. project_domain_name = default
  7. user_domain_name = default
  8. region_name = RegionOne
  9. project_name = service
  10. username = neutron
  11. password = NEUTRON_PASS
  12. service_metadata_proxy = true
  13. metadata_proxy_shared_secret = METADATA_SECRET

NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

使用你为元数据代理设置的密码替换 METADATA_SECRET

1.5 同步数据库(创表)

  1. ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
  2. su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  3. --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

1.6 启动和自启动

  1. systemctl restart openstack-nova-api.service
  2. systemctl enable neutron-server.service \
  3. neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  4. neutron-metadata-agent.service
  5. systemctl start neutron-server.service \
  6. neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  7. neutron-metadata-agent.service

1.7 验证操作

  1. openstack network agent list

2、计算节点(compute1)

2.1 安装组件

1. 安装其软件包

  1. yum install openstack-neutron-linuxbridge ebtables ipset -y &>/dev/null
  2. echo $?

2. 修改配置文件

1. 备份初始配置文件,然后重定向写入配置文件
  1. cp /etc/neutron/neutron.conf{,.bak}
  2. egrep -v '^$|#' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf

2. 编辑文件 /etc/neutron/neutron.conf 并完成如下动作:
  1. vim /etc/neutron/neutron.conf
  • [DEFAULT] 部分,配置 RabbitMQ 消息队列访问权限
  1. [DEFAULT]
  2. # ...
  3. transport_url = rabbit://openstack:RABBIT_PASS@controller

用你在 RabbitMQ 中为 openstack 选择的密码替换 RABBIT_PASS

  • [DEFAULT][keystone_authtoken] 部分中,配置身份服务访问
  1. [DEFAULT]
  2. # ...
  3. auth_strategy = keystone
  4. [keystone_authtoken]
  5. # ...
  6. auth_uri = http://controller:5000
  7. auth_url = http://controller:35357
  8. memcached_servers = controller:11211
  9. auth_type = password
  10. project_domain_name = default
  11. user_domain_name = default
  12. project_name = service
  13. username = neutron
  14. password = NEUTRON_PASS

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

  • [oslo_concurrency] 部分,配置锁路径:
  1. [oslo_concurrency]
  2. # ...
  3. lock_path = /var/lib/neutron/tmp

2.2 配置网络选项

1. 复制配置文件

  1. scp -rp 10.0.0.11:/etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini

2. 修改配置文件

1. 编辑文件 /etc/nova/nova.conf 并完成如下动作:
  1. vim /etc/nova/nova.conf
  • [neutron] 部分,配置访问参数:
  1. [neutron]
  2. # ...
  3. url = http://controller:9696
  4. auth_url = http://controller:35357
  5. auth_type = password
  6. project_domain_name = default
  7. user_domain_name = default
  8. region_name = RegionOne
  9. project_name = service
  10. username = neutron
  11. password = NEUTRON_PASS

NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

2.3 启动和自启动

  1. systemctl restart openstack-nova-compute.service
  2. systemctl enable neutron-linuxbridge-agent.service
  3. systemctl start neutron-linuxbridge-agent.service

【后续文章】点我快速打开文章

【本文图片下载地址】【002-OpenStack】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:kse1 】

今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!

005-OpenStack-网络服务的更多相关文章

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

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

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

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

  3. openstack网络服务Neutron(六)

    一.Neutron控制节点安装 1.Neutron安装 [root@linux-node1 ~]# yum install -y openstack-neutron openstack-neutron ...

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

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

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

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

  6. 云计算管理平台之OpenStack网络服务neutron

    一.简介 neutron的主要作用是在openstack中为启动虚拟机实例提供网络服务,对于neutron来讲,它可以提供两种类型的网络:第一种是provider network,这种网络就是我们常说 ...

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

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

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

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

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

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

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

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

随机推荐

  1. 手动O3

    #pragma GCC optimize(3,"Ofast","inline") 貌似这玩意并不能在noip考场上用

  2. 【西北师大-2108Java】第四次作业成绩汇总

    [西北师大-2108Java]第四次作业成绩汇总 深入理解程序设计中算法与程序的关系: 深入理解java程序设计中类与对象的关系: 理解OO程序设计的第2个特征:继承.多态: 学会采用继承定义类设计程 ...

  3. web-文件包含

    提示 构造payload ?file=flag.php 得到一串字符,那么我们用PHP伪协议尝试一下 构造payload ?file=php://filter/read=convert.base64- ...

  4. to_sql, to_csv, to_excel, to_json

    1.to_sql def to_sql(self, name, con, schema=None, if_exists="fail", index=True, index_labe ...

  5. Linux上发布E卡通项目

    Linux上发布E卡通项目 使用的命令 ps -ef | grep java kill -9 22314 nohup java -jar smartcard-ms-0.0.1-SNAPSHOT.jar ...

  6. 剑指Offer-15.反转链表(C++/Java)

    题目: 输入一个链表,反转链表后,输出新链表的表头. 分析: 可以利用栈将链表元素依次压入栈中,再从栈中弹出元素重新建立链表,返回头节点. 也可以在原有的链表上来翻转,先保存当前节点的下一个节点,然后 ...

  7. 实时获取input框内容

    源码: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncod ...

  8. js判断为空

    function isEmpty (va){    if("undefined" == va){        return true;    }    if(null == va ...

  9. Java List<T> 去重

    1.List<T>,是个泛型,实际业务里,它经常是一个bean,例如Person类,里面有age.name等属性. 2.如果List<Person>  ps 有重复的数据,我们 ...

  10. QTreeWidgetItem清空子节点

    下面列出,xxbs遇到的注意点儿: 1. QTreeWidget::collapseAll(); //xxbs::先折叠所有根项. 如果某个根是展开的,先删除根的子项再折叠,展开的凸显状态角色无法清除 ...