openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)
本帖最后由 pig2 于 2015-3-21 13:10 编辑问题导读
1.ovs部署在哪个节点?
2.如何验证网络节点安装成功?
3.添加外部网桥网卡如何选择?
static/image/hrline/4.gif
接上篇
openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)
安装配置网络节点
网络节点主要处理内部和外部的虚拟路由和DHCP服务。
准备
在配置neutron之前,必须配置一定的内核网络参数
1.修改文件 /etc/sysctl.conf,添加如下内容:
sudo nano/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
2.生效
sysctl -p
安装网络组件
apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent \
neutron-l3-agent neutron-dhcp-agent
配置网络组件
网络通用组件配置包括:认证机制、消息代理、和插件
编辑文件 /etc/neutron/neutron.conf 完成下面内容:
sudo nano /etc/neutron/neutron.conf
a.在 部分,注释掉连接数据connection 部分,网络节点不直接访问数据库
这里如果没有对文件进行改动,不需要进行操作。修改:
注释掉connection = sqlite:////var/lib/neutron/neutron.sqlite
b.在 部分,配置消息代理访问
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
记得替换RABBIT_PASS,这里使用的是默认,如果在安装时进行了更改,则使用更改密码。
c.在 和 部分, 配置身份服务访问:
...
auth_strategy = keystone
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = neutron
admin_password = NEUTRON_PASS
注意注释掉含有 auth_host, auth_port, and auth_protocol的选项,以免新配置被覆盖
d.在 部分,启用 Modular Layer 2 (ML2)插件,路由服务,和ip地址
...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
e.(可选)协助排除故障,详细记录在部分使:
...
verbose = True
配置Modular Layer 2 (ML2)插件
ML2 插件使用 Open vSwitch (OVS)机制为实例建立虚拟网络架构
修改文件/etc/neutron/plugins/ml2/ml2_conf.ini ,完成下面内容
sudo nano /etc/neutron/plugins/ml2/ml2_conf.ini
a.在 部分,启用 flat 和 generic routing encapsulation (GRE)网络类型驱动, GRE 租户网络, 和OVS 机制驱动:
...
type_drivers = flat,gre
tenant_network_types = gre
mechanism_drivers = openvswitch
b.在 部分,配置flat_networks为external
...
flat_networks = external
c.在 部分,配置tunnel id的范围
...
tunnel_id_ranges = 1:1000
d.在 部分,启用 安全组,ipset, 和 配置OVS防火墙驱动:
...
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
e.在 部分,启用tunnels,配置本地tunnel endpoint,和bridge_mappings
bridge_mappings:map the external flat provider network to the br-ex external network bridge:
...
local_ip = INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS
enable_tunneling = True
bridge_mappings = external:br-ex
INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS是网络节点上的实例隧道网络的ip地址
根据上图。ip地址为:10.0.1.21
即替换为下面内容:
...
local_ip = 10.0.1.21
enable_tunneling = True
bridge_mappings = external:br-ex未找不到,直接添加
f.在 部分,启动GRE tunnels
...
tunnel_types = gre未找不到,直接添加
配置Layer-3 (L3) 代理
Layer-3 (L3) agent为虚拟网络提供路由服务
编辑文件 /etc/neutron/l3_agent.ini,完成下面内容
sudo nano/etc/neutron/l3_agent.ini
a.在 部分,配置驱动,启用 network namespaces,配置外部网桥,使失效的路由器名称删除
...
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces = True
external_network_bridge = br-ex
router_delete_namespaces = True
b.(可选)协助排除故障,详细记录在部分:
...
verbose = True
配置DHCP代理
DHCP 代理为虚拟网络提供DHCP服务【如果这里配置错误,openstack产生实例,会获取不到ip地址】
1.编辑文件 /etc/neutron/dhcp_agent.ini,完成下面内容。
a.在 部分,配置驱动,启用命名空间和启用删除废弃的命名空间
...
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
use_namespaces = True
dhcp_delete_namespaces = Trueb.可选为排除错误,启用verbose 在 部分:
...
verbose = True
2.可选
a.编辑文件 /etc/neutron/dhcp_agent.ini,完成下面内容
在 部分,启用 the dnsmasq 配置文件:
...
dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
b.创建文件 /etc/neutron/dnsmasq-neutron.conf,并添加下面内容
dhcp-option-force=26,1454
c.杀死已经存在的dnsmasq进程pkill dnsmasq
配置元数据代理
元数据代理提供配置信息,比如实例凭证.
注释:
metadata agent(元数据代理)
openstack网络代理为实例提供元数据服务
1.编辑 /etc/neutron/metadata_agent.ini文件,完成下面内容
sudo nano /etc/neutron/metadata_agent.ini
a.在 部分,配置访问参数
...
auth_url = http://controller:5000/v2.0
auth_region = regionOne
admin_tenant_name = service
admin_user = neutron
admin_password = NEUTRON_PASS
同样不要忘记NEUTRON_PASS 替换密码,这里使用的是默认密码
不要忘记注释掉其它授权,以免被覆盖# The Neutron user information for accessing the Neutron API.
#auth_url = http://localhost:5000/v2.0
#auth_region = RegionOne
# Turn off verification of the certificate for ssl
# auth_insecure = False
# Certificate Authority public key (CA cert) file for ssl
# auth_ca_cert =
#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
auth_url = http://controller:5000/v2.0
auth_region = regionOne
admin_tenant_name = service
admin_user = neutron
admin_password = NEUTRON_PASS
b. 在 部分,配置元数据主机
...
nova_metadata_ip = controller
c.在部分,配置元数据代理共享密码:
...
metadata_proxy_shared_secret = METADATA_SECRET
d.(可选)协助排除故障,详细记录在部分:
...
verbose = True
2.在控制节点编辑文件/etc/nova/nova.conf,完成下面内容
sudo nano /etc/nova/nova.conf
在部分,启动元数据代理和配置密码
...
service_metadata_proxy = True
metadata_proxy_shared_secret = METADATA_SECRET
METADATA_SECRET替换为自己设置的密码,这里使用的是默认密码
3.在控制节点重启api服务
service nova-api restart
配置Open vSwitch (OVS) 服务【网络节点】
OVS服务为实例提供底层虚拟网络框架,集成网桥br-int处理OVS内实例内部网络的流通。外部网桥br-ex处理ovs内实例外部网络的流通。外部网桥需要提供外部网络接口来访问实例外部网络。本质上,在你的环境中,连接着虚拟外部网络和物理外部网络。翻译不是太准确,请看英文原文,欢迎纠正。
英文原文
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服务
service openvswitch-switch restart
2.添加外部网桥
ovs-vsctl add-br br-ex
添加一个外部网桥连接外部网络的物理网卡
替换 INTERFACE_NAME 用实际网卡 ,本文为eth2
ovs-vsctl add-port br-ex INTERFACE_NAME
替换:
ovs-vsctl add-port br-ex eth2
注意:
根据网络接口驱动程序,你需要停掉generic receive offload (GRO),来获得合适网络流量,在实例和外部网络之间。
在测试环境中,需要禁用GRO。
ethtool -K eth2 gro off
完成安装
重启服务
service neutron-plugin-openvswitch-agent restart
service neutron-l3-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart
输出如下内容:root@network:~# service neutron-plugin-openvswitch-agent restart
neutron-plugin-openvswitch-agent stop/waiting
neutron-plugin-openvswitch-agent start/running, process 19501
root@network:~# service neutron-l3-agent restart
stop: Unknown instance:
neutron-l3-agent start/running, process 19521
root@network:~# service neutron-dhcp-agent restart
neutron-dhcp-agent stop/waiting
neutron-dhcp-agent start/running, process 19542
root@network:~# service neutron-metadata-agent restart
neutron-metadata-agent stop/waiting
neutron-metadata-agent start/running, process 19731
root@network:~# service neutron-l3-agent restart
neutron-l3-agent stop/waiting
neutron-l3-agent start/running, process 19768
root@network:~# service neutron-plugin-openvswitch-agent restart
检验安装
注意:
在控制节点执行下面命令
1.生效环境变量
source admin-openrc.sh
2.列出创建成功的neutron 代理
neutron agent-list输出如下内容:
+--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
| 051543d3-4be3-45b9-a9a2-5bbd3e89a47c | Open vSwitch agent | network | :-) | True | neutron-openvswitch-agent |
| 16bd7da4-b76e-4fbd-9e5f-92b52a8c70a5 | DHCP agent | network | :-) | True | neutron-dhcp-agent |
| 2882756c-e965-4070-a105-9b408ef1cebc | L3 agent | network | :-) | True | neutron-l3-agent |
| 5c4678e6-4096-44fe-95ad-5c4c26f2cc43 | Metadata agent | network | :-) | True | neutron-metadata-agent |
+--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
相关内容:
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及网络总结
desehawk 发表于 2015-4-10 14:17
两个都需要加的
也就是我需要在外面加一个网卡,那用什么模式呢?
zhenxianbo 发表于 2015-3-12 11:27
我的实际情况和官方的有所不同。楼主能详细指点下吗?
我的网络节点是eth0为管理,eth1为tunnel。没有设置 ...
没有external也是可以的,不过不能上外网。这个没有ip地址,是给openstack启动实例用的。对于虚拟机上网,可以自己选择,配置能上网就可以了。
zhenxianbo 发表于 2015-3-12 12:10
那么在2.添加外部网桥
这部分该如何修改?不需要改动吗?
如果实例,不需要上网,可以不添加。
zhenxianbo 发表于 2015-3-12 13:23
neutron agent-list命令显示为空可能是什么原因?
安装失败了,可能配置文件的问题。