立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

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

已有 2026 次阅读2015-2-26 17:55



问题导读



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 部分,网络节点不直接访问数据库
这里如果没有对文件进行改动,不需要进行操作。

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的选项,以免新配置被覆盖
 



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地址

 
根据上图。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. Kill any existing dnsmasq processes:











配置元数据代理

元数据代理提供配置信息,比如实例凭证.
注释:
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

 



完成安装


重启服务
  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. +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+



 





路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条