Neutron的安装及其配置

云计算基础架构平台构建与应用基于centos6.5

(七)Neutron的安装及其配置

Neutron的手动安装与外部环境配置
实训涉及节点
controller compute
实训目标

  1. 完成Neutron基本组件的安装;
  2. 完成Linux内核的修改;
  3. 完成Neutron数据库的创建以及授权;
  4. 完成Neutron用户、租户、角色以及服务端点的创建;
  5. 完成Neutron主配置文件认证部分的配置;
  6. 完成虚拟网卡的创建
    1、 Neutron基本组件的安装(controller、compute)
[root@controller ~]# yum -y install openstack-neutron openstack-neutron-ml2 python-neutronclient openstack-neutron-openvswitch

2、 修改Linux内核参数(controller、compute)

[root@controller ~]# vi /etc/sysctl.conf

修改:
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
添加:
net.ipv4.conf.all.rp_filter=0

使其生效:

[root@controller ~]# sysctl –p

如果报错:……is an unknown key。解决方法:

[root@controller ~]#modprobe bridge
[root@controller ~]#lsmod|grep bridge

compute

[root@computer ~]# vi /etc/sysctl.conf

修改:
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
添加:
net.ipv4.conf.all.rp_filter=0

使其生效:
[root@compute ~]# sysctl –p

3、 创建Neutron数据库并授权

[root@controller ~]# mysql –uroot –p000000
mysql>create database neutron; 
mysql>grant all privileges on neutron.* to ‘neutron’@’localhost’ identified by ‘000000’;
mysql>grant all privileges on neutron.* to ‘neutron’@’%’ identified by ‘000000’;

连接数据库

[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf database connection mysql://neutron:000000@controller/neutron

与其他服务不同。Neutron服务会在运行的时候自动同步数据库
4、 注册Neutron服务至Keystone服务器

[root@controller ~]# keystone user-create --name=neutron --pass=000000
[root@controller ~]# keystone user-role-add --user=neutron --tenant=service --role=admin
[root@controller ~]# keystone service-create --name neutron --type network --description "Openstack Networking"
[root@controller ~]# keystone endpoint-create --service-id $(keystone service-list | awk '/ network / {print $2}') --publicurl "http://controller:9696" --adminurl "http://controller:9696" --internalurl http://controller:9696

5、 配置Neutron使用消息队列服务(controller、compute)

[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT qpid_hostname controller
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT qpid_hostname controller

6、 配置Neutron的Keystone认证信息

[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_host controller
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_protocol http
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_port 35357
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_tenant_name service
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_user neutron
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_password 000000

[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_host controller
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_protocol http
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_port 35357
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_tenant_name service
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_user neutron
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_password 000000

Neutron的Keystone认证信息包括默认认证类型、认证服务端点、认证端口、用户名、租户名、密码等。
7、 创建虚拟网卡(controller、compute)
Neutron提供了虚拟网卡功能。可以通过创建的虚拟网卡与openstack创建的虚拟机进行通信。本实验为保证全网通信正常,在两个节点都创建了虚拟网卡,可以根据实际情况在相应节点创建。

[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-br-ex

填写以下内容:
DEVICE=br-ex
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
NAME=“System br-ex”
IPADDR=192.168.200.11
NETMASK=255.255.255.0

虚拟网卡与物理网卡进行绑定。本实验,虚拟机地址在192.168.200.0/24网段,故与处于该网段的eth1网卡进行绑定,绑定前先重启网桥。

[root@controller ~]# service openvswitch restart

绑定命令:

[root@controller ~]# ovs-vsctl add-br br-int
[root@controller ~]# ovs-vsctl add-br br-ex
[root@controller ~]# ovs-vsctl add-port br-ex eth1

关闭物理网卡的GRO功能,GRO功能会将来自同一数据流的小流量数据包合并为一个大流量数据包交给内核协议栈。当虚拟网桥处理此类比MTU(最大传输单元)值更大的包时,就会选择丢弃,为了保证虚拟网络之间不出现丢包及传输过慢的情况,需要关闭物理网卡的GRO功能,然后重启网络。

[root@controller ~]# ethtool -K eth1 gro off

查看是否绑定成功

[root@controller ~]# ovs-vsctl show
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-br-ex

填写以下内容:
DEVICE=br-ex
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
NAME=”System br-ex”
IPADDR=192.168.200.21
NETMASK=255.255.255.0

[root@compute ~]# service openvswitch restart
绑定命令:
[root@compute ~]# ovs-vsctl add-br br-int
[root@compute ~]# ovs-vsctl add-br br-ex
[root@compute ~]# ovs-vsctl add-port br-ex eth1
[root@compute ~]# ethtool -K eth1 gro off
[root@compute ~]# ovs-vsctl show

Neutron主要服务组件配置与网络创建
实训涉及节点
controller compute
实训目标

  1. 完成Neutron与Nova组件之间的交互配置
  2. 完成OpenvSwitch的配置
  3. 完成FLAT网络的配置
  4. 完成Neutron Metadata的配置
  5. 完成Neutron DHCP组件的配置
  6. 完成FLAT网络的创建
    1、 在Neutron组件中配置Nova的认证信息
    Neutron为了保证各虚拟机实例之间的正常通信,需要在Neutron中配置Nova的认证信息,在Neutron组件运行时,会通过Keystone组件获取Nova的相关信息以获取实例的状态信息。
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_url http://controller:8774/v2
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_username nova
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_tenant_id $(keystone tenant-list | awk '/ service / {print $2}')
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_password 000000
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_auth_url http://controller:35357/v2.0

对网络拓扑变化更新通告进行配置。当网络中虚拟节点发生变化时,Neutron会自动通过从Nova中获取的信息来判断虚拟机实例的状态,从而变更网络拓扑。

[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes True
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes True
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT vif_plugging_is_fatal False
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT vif_plugging_timeout 10

2、 在Nova组件中添加Neutron的相关信息(controller、compute)
为了使虚拟机实例可以获取Neutron提供的IP地址等信息,需要在Nova组件中添加Neutron的相关信息。Nova通过Keystone组件获取Neutron的相关信息,compute节点的Nova服务同样也需要获取Neutron的相关信息。

[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_url http://controller:9696
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_auth_strategy keystone
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_tenant_name service
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_username neutron
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_password 000000
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://controller:35357/v2.0

[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_url http://controller:9696
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_auth_strategy keystone
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_tenant_name service
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_username neutron
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_password 000000
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://controller:35357/v2.0

3、 配置OpenvSwitch(controller、compute)
Linux默认的虚拟网络插件是LinuxBrige。本实验采用OpenvSwitch替代LinuxBrige,需要在Nova的主配置文件中对默认的插件信息及OpenvSwitch提供防火墙、安全组等功能进行修改。

[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api neutron

[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
[root@compute ~]# openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api neutron

4、 通过ML2插件,搭建FLAT网络(controller、compute)
OpenStack从Havana版本开始,引入了ML2插件。ML2插件可以作为一个框架同时支持不同的二层网络。对于OpenvSwitch插件,使用ML2创建虚拟二层网络是一个理想的方案。
在主配置文件中声明虚拟网络内核插件和服务插件。服务插件采用router。

[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
[root@controller ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router

[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
[root@compute ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router

声明完成后,对Neutron的ML2插件进行配置,先配置ML2支持的网络类型,再配置OpenvSwitch插件以及防火墙、安全组。

[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs flat_networks physnet1
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet1:br-ex
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[root@controller ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group True

[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs flat_networks physnet1
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet1:br-ex
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[root@compute ~]# openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group True

最后,需要对OpenvSwitch服务的默认启动脚本进行修改,使其使用ML2插件代替传统的OVS插件。
创建软连接(controller、compute)

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

备份原始脚本(controller、compute)

[root@controller ~]# cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutron-openvswitch-agent.bak
[root@compute ~]# cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutron-openvswitch-agent.bak

通过sed命令对OpenvSwitch启动脚本进行修改(controller、compute)

[root@controller ~]# sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /etc/init.d/neutron-openvswitch-agent
[root@compute ~]# sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /etc/init.d/neutron-openvswitch-agent

5、 配置Neutron的DHCP服务
DHCP服务可以自动为虚拟机实例提供IP地址。本实验的虚拟机实例的实际位置在compute节点,故在compute节点启用Neutron的DHCP服务,在真实环境中,可以根据实际情况进行选择。
声明DHCP服务对应的接口驱动。本实验采用OpenvSwitch。

[root@compute ~]# openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
[root@compute ~]# openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq

打开DHCP插件的名字空间功能,使虚拟机实例能够从名字空间中找到DHCP服务

[root@compute ~]# openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT use_namespaces True

6、 配置Neutron的Metadata 服务。
Metadata服务的作用是向虚拟机实例传递公钥等信息。在实例需要通过公钥的方式连入时,Metadata服务就显得尤为重要。
Metadata服务在controller节点通过Neutron代理的方式实现,在compute节点将启用单独的Metadata服务。
Metadata服务使用Neutron的认证信息与Keystone进行认证交互,故配置用户名,密码,租户,认证地址等信息与Neutron相同。

[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_url http://controller:5000/v2.0
[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT auth_region regionOne
[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_tenant_name service
[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_user neutron
[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_password 000000

为compute节点Metadata指定Nova服务的位置,Metadata通过controller节点访问Nova服务

[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip controller

最后,配置Metadata的预共享密钥,命令如下:

[root@compute ~]# openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret 000000

在controller节点中,通过对Nova主配置文件的修改来实现Metadata代理,

[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT service_neutron_metadata_proxy true
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT metadata_proxy_shared_secret 000000

注意:controller和compute的预共享密钥须一致
7、 启动Neutron相关服务(controller、compute)

[root@controller ~]# service neutron-openvswitch-agent start
[root@controller ~]# service neutron-metadata-agent start
[root@controller ~]# service neutron-server start
[root@controller ~]# chkconfig neutron-server on
[root@controller ~]# chkconfig neutron-openvswitch-agent on
[root@controller ~]# chkconfig neutron-metadata-agent on

[root@compute ~]# service openstack-nova-compute restart
[root@compute ~]# service neutron-openvswitch-agent restart
[root@compute ~]# service neutron-dhcp-agent restart
[root@compute ~]# service neutron-metadata-agent restart
[root@compute ~]# chkconfig neutron-openvswitch-agent on
[root@compute ~]# chkconfig neutron-dhcp-agent on
[root@compute ~]# chkconfig neutron-metadata-agent on

[root@controller ~]# neutron agent-list

其中,agent_type字段表示Neutron相关组件名,host表示服务运行的位置,alive表示运行状态信息,笑脸表示运行正常,xxx表示运行不正常,可能相关服务未启动或配置文件存在问题,admin_state_up表示该组件是否启用,True表示已经启用,False表示未使用。

8、 创建FLAT网络
通过Neutron创建一个小型FLAT网络
将service租户的ID赋值给tenantID变量

[root@controller ~]# tenantID=`keystone tenant-list | grep service | awk '{print $2}'`

执行Neutron的net-create命令来创建虚拟网络,命令如下:

[root@controller ~]#neutron net-create --tenant-id $tenantID sharednet1 --shared --provider:network_type flat --provider:physical_network physnet1

最后,创建子网

[root@controller ~]# neutron subnet-create --tenant-id $tenantID --gateway 192.168.200.1 --allocation-pool start=192.168.200.100,end=192.168.200.200 sharednet1 192.168.200.0/24 --name subnet1
[root@controller ~]# neutron net-list
[root@controller ~]# neutron subnet-list
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希望不是梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值