一、安装并配置network节点
### --- 安装并配置network节点
~~~ 配置先决条件
~~~ 安装网络组件
~~~ 配置网络通用组件
~~~ 配置Modular Layer 2(ML2)plug-in
~~~ 配置Layer-3(L3)agent
~~~ 配置DHCP agent
~~~ 配置metadata agent
~~~ 配置Open vSwitch(OVS)服务
~~~ 完成安装
~~~ 验证
一、配置先决条件:在openstack-neutron节点配置
### --- 编辑/etc/sysctl.conf文件,包含下列参数
~~~ 开启IP_forward路由转发
[root@network ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
### --- 是更改生效
~~~ 刷新权限
[root@network ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
二、安装网络组件
[root@network ~]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch
Installed:
openstack-neutron.noarch 0:2014.2-5.el7.centos openstack-neutron-ml2.noarch 0:2014.2-5.el7.centos openstack-neutron-openvswitch.noarch 0:2014.2-5.el7.centos
Complete!
三、配置网络通用组件
### --- 网络通用组建配置包含认证机制,消息队列及插件。
~~~ 编辑/etc/neutron/neutron.conf文件并完成下列操作
[root@network ~]# vim /etc/neutron/neutron.conf
# 编辑[database]小节,注释任何connection选项,因为network节点不能直接连接数据库。
# 编辑[DEFAULT]小节,配置RabbitMQ消息队列访问
[DEFAULT]
......
rpc_backend=rabbit
rabbit_host=controller.nice.com
rabbit_password=guest
# 编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问:
[DEFAULT]
......
auth_strategy=keystone
[keystone_authtoken]
......
aut_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=neutron
admin_password=NEUTRON_PASS
# 编辑[DEFAULT]小节,启用Moudlar Layer(ML2)插件,路由服务和重叠IP地址功能;
[DEFAULT]
......
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=True
# (可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
......
verbose=True
四、配置Modular Layer2(ML2)plug-in
### --- ML2插件使用Open VSwitch(OVS)机制为虚拟机实例提供网络框架,
### --- 编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成下列操作。
[root@network ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
# 编辑[ml2]小节,启用flat和generic routing encapsulation(GRE)网络类型驱动,配置GRE租户网络和OVS驱动机制
[ML2]
......
type_drivers=flat,gre # 网络类型为flat和gre
tenant_network_types=gre # 租户的网络类型为gre
mechanism_drivers=openvswitch
# 编辑[ml2_type_flat]小节,配置外部网络:
[ml2_type_flat] # 浮动网络,也就是外部网络,告诉他外部网络的位置
......
flat_networks=external # 网桥是什么,会做一个相关的映射
# 编辑[ml2_type_gre]小节,配置隧道表示范围:
[ml2_type_gre]
......
tunnel_id_ranges=1:1000 # 使用的最大的范围
# 编辑[securitygroup]小节,启用安全组,启用ipset并配置OVS防火墙驱动:
[securitygroup]
......
enable_security_group=True # 开启安全组
enable_ipset=True # 允许相关设置
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
# 编辑[OVS]小节,配置Open vSwitch(OVS)代理 # 在默认配置文件中是没有的
[OVS]
......
[OVS]
local_ip=172.16.0.6
tunnel_type=gre
enable_tunneling=True
bridge_mappings=external:br-ex // 网桥,最终到了br-ex上。
五、配置Layer-3(L3)agent:路由相关的配置
### --- 编辑/etc/neutron/l3_agent.ini文件并完成下列配置:
[root@network ~]# vim /etc/neutron/l3_agent.ini
# 编辑[DEFAULT]小节,配置驱动,启用网络命名空间,配置外部网络桥接
[DEFAULT]
......
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver # 网卡驱动进行修改
use_namespaces=True # 开启namespaces
external_network_bridge=br-ex # 指定我们的外部网络或者浮动网络的网桥名称是什么
#(可选)在[DEFAULT]小节中配置详细日志输出,方便排错。
[DEFAULT]
......
debug=True
# verbose=True——debug=True # 开启日志,这里为debug,只是改了名称而已,
六、配置DHCP agent
### --- 编辑/etc/neutron/dhcp_agent.ini文件并完成下列步骤:
[root@network ~]# vim /etc/neutron/dhcp_agent.ini
# 编辑[DEFAULT]小节,配置驱动和启用命名空间
[DEFAULT]
......
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver # 配置网卡,OVS类型驱动
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq # DHCP的驱动
use_namespaces=True # 运行用户的命名空间
# (可选)在[DEFAULT]小节中配置详细日志输出,方便排错。
[DEFAULT]
......
debug=True
# debug=True——verbose=True
# (可选,在VMware虚拟机中可能是必要的!)配置DHCP选项,将MUT改为1454bytes,以改善网络性能;
# 编辑/etc/neutron/dhcp_agent.ini文件并完成下列步骤;
# 编辑[DEFAULT]小节,启用dnsmasq配置:
[DEFAULT]
......
dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf # 添加它的访问路径
# 创建并编辑/etc/neutron/dnsmasq-neutron.conf文件并完成下列配置:
[root@network ~]# vim /etc/neutron/dnsmasq-neutron.conf # 创建这个文件,这个文件默认是没有的
# 启用DHCP MTU选项(26)并配置值为1454bytes
dhcp-option-force=26,1454 # 填写连接包的最大值
user=neutron # 用户
group=neutron # 组
### --- 终止任何已经存在的dnsmasq进行;禁止它的相关实例
[root@network ~]# pkill dnsmasq
七、配置metadata agent
### --- 编辑/etc/neutron/metadata_agent.ini文件并完成下列配置
[root@network ~]# vim /etc/neutron/metadata_agent.ini
# 编辑[DEFAULT]小节,配置访问参数:
[DEFAULT]
......
auth_url=http://controller.nice.com:5000/v2.0 # 访问端点
auth_region=regionOne # 可用区
admin_tenant_name=service # 用户名称是service
admin_user=neutron # 用户名是
admin_password=NEUTRON_PASS # 密码
# 编辑[DEFAULT]小节,配置元数据主机:
[DEFAULT]
......
nova_metadata_ip=controller.nice.com # nova的传输节点地址
# 编辑[DEFAULT]小节,配置元数据代理共享机密暗号:
[DEFAULT] # 对策加密的方案,数据传输都是经过加密之后进行传输的,防止数据被窃取
......
metadata_proxy_shared_secret=METADATA_SECRET # 随便起一个,对策加密的方案,默认是METADATA_SECRET
# (可选)在[DEFAULT]小节中配置详细日志输出,方便排错.
[DEFAULT]
......
debug=True
# debug=True——verbose=True
### --- 在controller节点,编辑/etc/nova/nova.conf文件并完成下列配置
~~~ 编辑[neutron]小节,启用元数据代理并配置机密暗号:
[root@controller ~]# vim /etc/nova/nova.conf
[neutron]
......
service_metadata_proxy=True # 默认是false,改为True开启
metadata_proxy_shared_secret=METADATA_SECRET # 先写它的代理暗号
### --- 在controller节点,重新启动compute.API服务
[root@controller ~]# systemctl restart openstack-nova-api.service // 因为改了配置文件,所以需要重启api程序
八、配置Open VSwitch(OVS)服务
### --- 在neutron节点配置
~~~ 启动OVS服务并配置开机自动启动
[root@network ~]# systemctl enable openvswitch.service
[root@network ~]# systemctl start openvswitch.service
### --- 添加外部网桥(external bridge)
[root@network ~]# ovs-vsctl add-br br-ex
### --- 添加一个端口到外部网桥,用于连接外部物理网络
~~~ 将INTERFACE_NAME换成实际连接外部网卡接口名,如:eth2或eno50332208
[root@network ~]# ifconfig
eno50332184 // 外部网卡名称,用ifconfig查看获取
[root@network ~]# ovs-vsctl add-port br-ex eno50332184 // 将外部网卡和该网卡绑定;外部网桥就相当于该网卡了,网卡转换通过命令的方式或者通过修改配置文件的方式都可以操作。
九、完成安装
### --- 创建网络服务初始化脚本符号连接
[root@network ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
[root@network ~]# ll /etc/neutron/plugin.ini
lrwxrwxrwx 1 root root 37 Jan 11 18:12 /etc/neutron/plugin.ini -> /etc/neutron/plugins/ml2/ml2_conf.ini
[root@network ~]# cp /usr/lib/systemd/system/neutron-openvswitch-agent.service /usr/lib/systemd/system/neutron-openvswitch-agent.service.orig
[root@network ~]# ll /usr/lib/systemd/system/neutron-openvswitch-agent.service
-rw-r--r-- 1 root root 437 Oct 30 2014 /usr/lib/systemd/system/neutron-openvswitch-agent.service
### --- 修改网络方式,把默认的网络类型修改为多租组网的形式
[root@network ~]# sed -i 's,plugins/openvswitch.ovs_neutron_plugin.ini,plugin.ini,g' /usr/lib/systemd/system/neutron-openvswitch-agent.service
### --- 启动网络服务并能设置开机自动启动
[root@network ~]# systemctl enable neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-ovs-cleanup.service
ln -s '/usr/lib/systemd/system/neutron-openvswitch-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-openvswitch-agent.service'
ln -s '/usr/lib/systemd/system/neutron-l3-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service'
ln -s '/usr/lib/systemd/system/neutron-dhcp-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-dhcp-agent.service'
ln -s '/usr/lib/systemd/system/neutron-metadata-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-metadata-agent.service'
ln -s '/usr/lib/systemd/system/neutron-ovs-cleanup.service' '/etc/systemd/system/multi-user.target.wants/neutron-ovs-cleanup.service'
[root@network ~]# systemctl start neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-ovs-cleanup.service
十、验证(在controller)节点执行下列命令:
### --- 执行admin环境变量脚本
[root@controller ~]# source admin-openrc.sh
~~~ 列出neutron代理,确认启动neutron agents成功:4个效力,表示四个代理模式已经启动成功了,
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| 25122ee3-54d0-4013-9e32-c752bb444874 | Metadata agent | network.nice.com | :-) | True | neutron-metadata-agent |
| 29e66a01-d01a-4bdb-8231-9adcf062b29b | Open vSwitch agent | network.nice.com | :-) | True | neutron-openvswitch-agent |
| 36e27e39-8e6b-4673-914b-ca3dd6ebf5ec | L3 agent | network.nice.com | :-) | True | neutron-l3-agent |
| 82964596-8d90-4001-b52a-6aa1e183c92a | DHCP agent | network.nice.com | :-) | True | neutron-dhcp-agent |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+