分享

openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)

pig2 发表于 2015-2-10 18:51:38 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 59 189733
本帖最后由 pig2 于 2015-3-21 13:10 编辑

问题导读



1.ovs部署在哪个节点?
2.如何验证网络节点安装成功?
3.添加外部网桥网卡如何选择?





接上篇
openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)


安装配置网络节点


网络节点主要处理内部和外部的虚拟路由和DHCP服务。


准备

在配置neutron之前,必须配置一定的内核网络参数

1.修改文件 /etc/sysctl.conf,添加如下内容:

  1. sudo nano  /etc/sysctl.conf
复制代码


  1. net.ipv4.ip_forward=1
  2. net.ipv4.conf.all.rp_filter=0
  3. net.ipv4.conf.default.rp_filter=0
复制代码



2.生效
  1. sysctl -p
复制代码



安装网络组件

  1. apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent \
  2.   neutron-l3-agent neutron-dhcp-agent
复制代码


配置网络组件

网络通用组件配置包括:认证机制、消息代理、和插件

编辑文件 /etc/neutron/neutron.conf 完成下面内容:

  1. sudo nano /etc/neutron/neutron.conf
复制代码



a.在 [database]部分,注释掉连接数据connection 部分,网络节点不直接访问数据库
这里如果没有对文件进行改动,不需要进行操作。修改:
注释掉connection = sqlite:////var/lib/neutron/neutron.sqlite

b.在 [DEFAULT] 部分,配置消息代理访问
  1. [DEFAULT]
  2. ...
  3. rpc_backend = rabbit
  4. rabbit_host = controller
  5. rabbit_password = RABBIT_PASS
复制代码


记得替换RABBIT_PASS,这里使用的是默认,如果在安装时进行了更改,则使用更改密码。


c.在 [DEFAULT] 和 [keystone_authtoken] 部分, 配置身份服务访问:
  1. [DEFAULT]
  2. ...
  3. auth_strategy = keystone
  4. [keystone_authtoken]
  5. ...
  6. auth_uri = http://controller:5000/v2.0
  7. identity_uri = http://controller:35357
  8. admin_tenant_name = service
  9. admin_user = neutron
  10. admin_password = NEUTRON_PASS
复制代码


注意注释掉含有 auth_host, auth_port, and auth_protocol的选项,以免新配置被覆盖
1.png



d.在 [DEFAULT] 部分,启用 Modular Layer 2 (ML2)插件,路由服务,和ip地址


  1. [DEFAULT]
  2. ...
  3. core_plugin = ml2
  4. service_plugins = router
  5. allow_overlapping_ips = True
复制代码


e.(可选)协助排除故障,详细记录在[DEFAULT]部分使:

  1. [DEFAULT]
  2. ...
  3. verbose = True
复制代码



配置Modular Layer 2 (ML2)插件


ML2 插件使用 Open vSwitch (OVS)机制为实例建立虚拟网络架构

修改文件/etc/neutron/plugins/ml2/ml2_conf.ini ,完成下面内容

  1. sudo nano /etc/neutron/plugins/ml2/ml2_conf.ini
复制代码


a.在 [ml2] 部分,启用 flat 和 generic routing encapsulation (GRE)网络类型驱动, GRE 租户网络, 和  OVS 机制驱动:

  1. [ml2]
  2. ...
  3. type_drivers = flat,gre
  4. tenant_network_types = gre
  5. mechanism_drivers = openvswitch
复制代码


b.在 [ml2_type_flat] 部分,配置flat_networks为external

  1. [ml2_type_flat]
  2. ...
  3. flat_networks = external
复制代码


c.在 [ml2_type_gre] 部分,配置tunnel id的范围
  1. [ml2_type_gre]
  2. ...
  3. tunnel_id_ranges = 1:1000
复制代码


d.在 [securitygroup]部分,启用 安全组,  ipset, 和 配置  OVS防火墙驱动:
  1. [securitygroup]
  2. ...
  3. enable_security_group = True
  4. enable_ipset = True
  5. firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
复制代码



e.在 [ovs] 部分,启用tunnels,配置本地tunnel endpoint,和bridge_mappings
bridge_mappings:map the external flat provider network to the br-ex external network bridge:

  1. [ovs]
  2. ...
  3. local_ip = INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS
  4. enable_tunneling = True
  5. bridge_mappings = external:br-ex
复制代码

INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS是网络节点上的实例隧道网络的ip地址

1.png
根据上图。ip地址为:10.0.1.21

即替换为下面内容:
  1. [ovs]
  2. ...
  3. local_ip = 10.0.1.21
  4. enable_tunneling = True
  5. bridge_mappings = external:br-ex
复制代码
[ovs]未找不到,直接添加





f.在 [agent] 部分,启动GRE tunnels
  1. [agent]
  2. ...
  3. tunnel_types = gre
复制代码
[agent]未找不到,直接添加

配置  Layer-3 (L3) 代理


Layer-3 (L3) agent为虚拟网络提供路由服务
编辑文件 /etc/neutron/l3_agent.ini,完成下面内容
  1. sudo nano  /etc/neutron/l3_agent.ini
复制代码



a.在 [DEFAULT] 部分,配置驱动,启用 network namespaces,配置外部网桥,使失效的路由器名称删除
  1. [DEFAULT]
  2. ...
  3. interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
  4. use_namespaces = True
  5. external_network_bridge = br-ex
  6. router_delete_namespaces = True
复制代码



b.(可选)协助排除故障,详细记录在[DEFAULT]部分:

  1. [DEFAULT]
  2. ...
  3. verbose = True
复制代码



配置DHCP代理

DHCP 代理为虚拟网络提供DHCP服务【如果这里配置错误,openstack产生实例,会获取不到ip地址】
1.编辑文件 /etc/neutron/dhcp_agent.ini,完成下面内容。
a.在 [DEFAULT] 部分,配置驱动,启用命名空间和启用删除废弃的命名空间
  1. [DEFAULT]
  2. ...
  3. interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
  4. dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
  5. use_namespaces = True
  6. dhcp_delete_namespaces = True
复制代码
b.可选为排除错误,启用verbose 在[DEFAULT] 部分:

  1. [DEFAULT]
  2. ...
  3. verbose = True
复制代码

2.可选

a.编辑文件 /etc/neutron/dhcp_agent.ini,完成下面内容

在 [DEFAULT]部分,启用 the dnsmasq 配置文件:
  1. [DEFAULT]
  2. ...
  3. dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
复制代码



b.创建文件 /etc/neutron/dnsmasq-neutron.conf,并添加下面内容
  1. dhcp-option-force=26,1454
复制代码


c.杀死已经存在的dnsmasq进程
  1. pkill dnsmasq
复制代码











配置元数据代理

元数据代理提供配置信息,比如实例凭证.
注释:
metadata agent(元数据代理)
openstack网络代理为实例提供元数据服务

1.编辑 /etc/neutron/metadata_agent.ini文件,完成下面内容

  1. sudo nano /etc/neutron/metadata_agent.ini
复制代码


a.在[DEFAULT] 部分,配置访问参数

  1. [DEFAULT]
  2. ...
  3. auth_url = http://controller:5000/v2.0
  4. auth_region = regionOne
  5. admin_tenant_name = service
  6. admin_user = neutron
  7. admin_password = NEUTRON_PASS
复制代码

同样不要忘记NEUTRON_PASS 替换密码,这里使用的是默认密码
不要忘记注释掉其它授权,以免被覆盖
  1. # The Neutron user information for accessing the Neutron API.
  2. #auth_url = http://localhost:5000/v2.0
  3. #auth_region = RegionOne
  4. # Turn off verification of the certificate for ssl
  5. # auth_insecure = False
  6. # Certificate Authority public key (CA cert) file for ssl
  7. # auth_ca_cert =
  8. #admin_tenant_name = %SERVICE_TENANT_NAME%
  9. #admin_user = %SERVICE_USER%
  10. #admin_password = %SERVICE_PASSWORD%
  11. auth_url = http://controller:5000/v2.0
  12. auth_region = regionOne
  13. admin_tenant_name = service
  14. admin_user = neutron
  15. admin_password = NEUTRON_PASS
复制代码



b. 在[DEFAULT] 部分,配置元数据主机
  1. [DEFAULT]
  2. ...
  3. nova_metadata_ip = controller
复制代码


c.在[DEFAULT]部分,配置元数据代理共享密码:

  1. [DEFAULT]
  2. ...
  3. metadata_proxy_shared_secret = METADATA_SECRET
复制代码

d.(可选)协助排除故障,详细记录在[DEFAULT]部分:

  1. [DEFAULT]
  2. ...
  3. verbose = True
复制代码




2.在控制节点编辑文件/etc/nova/nova.conf,完成下面内容

  1. sudo nano /etc/nova/nova.conf
复制代码


在[neutron]部分,启动元数据代理和配置密码

  1. [neutron]
  2. ...
  3. service_metadata_proxy = True
  4. metadata_proxy_shared_secret = METADATA_SECRET
复制代码


METADATA_SECRET替换为自己设置的密码,这里使用的是默认密码


3.在控制节点重启api服务
  1. service nova-api restart
复制代码



配置Open vSwitch (OVS) 服务【网络节点】

OVS服务为实例提供底层虚拟网络框架,集成网桥br-int处理OVS内实例内部网络的流通。外部网桥br-ex处理ovs内实例外部网络的流通。外部网桥需要提供外部网络接口来访问实例外部网络。本质上,在你的环境中,连接着虚拟外部网络和物理外部网络。翻译不是太准确,请看英文原文,欢迎纠正。
英文原文
  1. The OVS service provides the underlying virtual networking framework for instances. The integration bridge br-int handles internal instance network traffic within OVS. The external bridge br-ex handles external instance network traffic within OVS. The external bridge requires a port on the physical external network interface to provide instances with external network access. In essence, this port connects the virtual and physical external networks in your environment.
复制代码

下面是在网络节点


1.重启ovs服务

  1. service openvswitch-switch restart
复制代码


2.添加外部网桥

  1. ovs-vsctl add-br br-ex
复制代码


添加一个外部网桥连接外部网络的物理网卡

替换 INTERFACE_NAME 用实际网卡 ,本文为eth2
  1. ovs-vsctl add-port br-ex INTERFACE_NAME
复制代码


替换:

  1. ovs-vsctl add-port br-ex eth2
复制代码


注意:
根据网络接口驱动程序,你需要停掉generic receive offload (GRO),来获得合适网络流量,在实例和外部网络之间。
在测试环境中,需要禁用GRO。


  1. ethtool -K eth2 gro off
复制代码
3.png



完成安装


重启服务
  1. service neutron-plugin-openvswitch-agent restart
  2. service neutron-l3-agent restart
  3. service neutron-dhcp-agent restart
  4. service neutron-metadata-agent restart
复制代码

输出如下内容:
  1. root@network:~# service neutron-plugin-openvswitch-agent restart
  2. neutron-plugin-openvswitch-agent stop/waiting
  3. neutron-plugin-openvswitch-agent start/running, process 19501
  4. root@network:~# service neutron-l3-agent restart
  5. stop: Unknown instance:
  6. neutron-l3-agent start/running, process 19521
  7. root@network:~# service neutron-dhcp-agent restart
  8. neutron-dhcp-agent stop/waiting
  9. neutron-dhcp-agent start/running, process 19542
  10. root@network:~# service neutron-metadata-agent restart
  11. neutron-metadata-agent stop/waiting
  12. neutron-metadata-agent start/running, process 19731
  13. root@network:~# service neutron-l3-agent restart
  14. neutron-l3-agent stop/waiting
  15. neutron-l3-agent start/running, process 19768
  16. root@network:~# service neutron-plugin-openvswitch-agent restart
复制代码





检验安装


注意:
控制节点执行下面命令

1.生效环境变量
  1. source admin-openrc.sh
复制代码


2.列出创建成功的neutron 代理

  1. neutron agent-list
复制代码
输出如下内容:

  1. +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
  2. | id                                   | agent_type         | host    | alive | admin_state_up | binary                    |
  3. +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
  4. | 051543d3-4be3-45b9-a9a2-5bbd3e89a47c | Open vSwitch agent | network | :-)   | True           | neutron-openvswitch-agent |
  5. | 16bd7da4-b76e-4fbd-9e5f-92b52a8c70a5 | DHCP agent         | network | :-)   | True           | neutron-dhcp-agent        |
  6. | 2882756c-e965-4070-a105-9b408ef1cebc | L3 agent           | network | :-)   | True           | neutron-l3-agent          |
  7. | 5c4678e6-4096-44fe-95ad-5c4c26f2cc43 | Metadata agent     | network | :-)   | True           | neutron-metadata-agent    |
  8. +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
复制代码


4.png






相关内容:

openstack【juno】入门 【准备篇】零:整体介绍

openstack【juno】入门 【准备篇】一: Ubuntu14.04远程连接(ssh安装)

openstack【juno】入门 【准备篇】二::NTP安装

openstack【juno】入门 【准备篇】三:mysql(MariaDB)安装

openstack【juno】入门 【准备篇】四::RabbitMQ 安装

openstack【juno】入门 【keystone篇】五::Keystone部署及介绍

openstack【juno】入门 【keystone篇】六::Keystone使用及遇到问题解决办法

openstack【juno】入门 【keystone篇】七:创建 service entity 和 API endpoint

openstack【juno】入门 【keystone篇】八:新手操作篇(验证操作篇)

openstack【juno】入门 【keystone篇】九:创建openstack客户端环境变量脚本

openstack【juno】入门 【glance 篇】十:glance初步介绍

openstack【juno】入门 【glance 篇】十一:glance安装配置

openstack【juno】入门 【glance 篇】十二:glance安装配置验证及相关操作

openstack【juno】入门 【nova 篇】十三(1):nova简单介绍

openstack【juno】入门 【nova 篇】十三(2):安装配置计算服务

openstack【juno】入门 【网络篇】十四:neutron介绍

openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)

openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)

openstack【juno】入门 【网络篇】十七:neutron安装部署(计算节点)

openstack【juno】入门 【网络篇】十八:创建实例化网络

openstack【juno】入门 【dashboard篇】十九:添加dashboard

openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】

openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)

openstack【juno】入门 【swift篇】二十二:对象存储安装配置【控制节点】

openstack【juno】入门 【swift篇】二十三:安装配置swift节点

openstack【juno】入门 【swift篇】二十四:创建初始rings

openstack【juno】入门 【swift篇】二十五:验证安装(控制节点)

openstack【juno】入门 【实例篇】二十六:创建实例(neutron)

openstack【juno】入门 【总结篇】二十七:openstack排除故障及常见问题记录

openstack【juno】入门 【总结篇】二十八:keystone及网络总结












已有(61)人评论

跳转到指定楼层
tan_323 发表于 2015-4-10 14:22:48

也就是我需要在外面加一个网卡,那用什么模式呢?
回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 11:27:46
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

pig2 发表于 2015-3-12 12:01:36
zhenxianbo 发表于 2015-3-12 11:27
我的实际情况和官方的有所不同。楼主能详细指点下吗?
我的网络节点是eth0为管理,eth1为tunnel。没有设置 ...

没有external也是可以的,不过不能上外网。这个没有ip地址,是给openstack启动实例用的。对于虚拟机上网,可以自己选择,配置能上网就可以了。

回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 12:10:31
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

nextuser 发表于 2015-3-12 12:41:52
zhenxianbo 发表于 2015-3-12 12:10
那么在2.添加外部网桥
这部分该如何修改?不需要改动吗?

如果实例,不需要上网,可以不添加。
回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 13:21:00
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 13:23:58
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 16:40:41
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

pig2 发表于 2015-3-12 16:53:38
zhenxianbo 发表于 2015-3-12 13:23
neutron agent-list命令显示为空可能是什么原因?

安装失败了,可能配置文件的问题。
回复

使用道具 举报

zhenxianbo 发表于 2015-3-12 17:26:14
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条