Neutron详解与安装
1、组件说明及沟通方式
在这种网络模式下,每个租户都有自己的路由器,而且有多个私有网络,vm可以分别在不同网段下,通过私网连接路由器在连接到浮动IP,最后到外部路由器实现去外部沟通
2、构建实验
1、基础配置
[root@neutron ~]# hostnamectl set-hostname network.nice.com
[root@neutron ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.222.5 controller.nice.com
192.168.222.6 network.nice.com
192.168.222.10 compute1.nice.com
192.168.222.20 block1.nice.com
[root@neutron ~]# yum install -y ntpdate
[root@neutron ~]# ntpdate -u 192.168.222.5
24 Jul 11:02:02 ntpdate[4142]: step time server 192.168.222.5 offset 16395.238622 sec
[root@neutron ~]# systemctl restart crond
[root@neutron ~]# systemctl enable crond
1、配置controller节点
1、创建数据库,完成下列步骤:
a.使用root用户连接mysql数据库
#mysql-u root -p
b.创建neutron数据库
CREATE DATABASE neutron;
c.创建数据库用户neutron,并授予neutron用户对neutron数据库完全控制权限
GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@‘localhost’ IDENTIFIED BY ‘NEUTRON_DBPASS’;
GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@‘%’ IDENTIFIED BY ‘NEUTRON_DBPASS’;
2、执行admin环境变量脚本
source admin-openrc.sh
3、在认证服务中创建网络服务的认证信息,完成下列步骤:
a.创建neutron用户
[root@controller ~]# keystone user-create --name neutron --pass NEUTRON_PASS
±---------±---------------------------------+
| Property | Value |
±---------±---------------------------------+
| email | |
| enabled | True |
| id | a7e4e7944d2f4223bd724fcc32678cae |
| name | neutron |
| username | neutron |
±---------±---------------------------------+
b.连接neutron用户到serivce租户和admin角色
[root@controller ~]# keystone user-role-add --user neutron --tenant service --role admin
c.创建neutron服务
[root@controller ~]# keystone service-create --name neutron --type network --description “Openstack Networking”
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| description | Openstack Networking |
| enabled | True |
| id | 66e916b7b3264a48b0e4420ecd81423f |
| name | neutron |
| type | network |
±------------±---------------------------------+
d.创建neutron服务端点
[root@controller ~]# keystone endpoint-create --service-id $(keystone service-list |awk ‘/network/ {print $2}’) --publicurl http://controller.nice.com:9696 --adminurl http://controller.nice.com:9696 --internalurl http://controller.nice.com:9696 --region regionOne
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| adminurl | http://controller.nice.com:9696 |
| id | e9fe74bbedd743458feba34cd64c8ef1 |
| internalurl | http://controller.nice.com:9696 |
| publicurl | http://controller.nice.com:9696 |
| region | regionOne |
| service_id | 66e916b7b3264a48b0e4420ecd81423f |
±------------±---------------------------------+
安装网络服务组件
[root@controller ~]# yum install openstack-neutron openstack-neutron-ml2 python-neutronclient which
[root@controller ~]# vim /etc/neutron/neutron.conf
[root@controller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[root@controller ~]# vim /etc/nova/nova.conf
[root@controller ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
[root@controller ~]# su -s /bin/sh -c “neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno” neutron
INFO [alembic.migration] Context impl MySQLImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.migration] Running upgrade None -> havana, havana_initial
…
…
…
完成配置
1、为ML2插件配置文件创建连接文件。
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
2、初始化数据库
su-s /bin/sh-c “neutron-db-manage --config-file /etc/neutron/neutron.conf–config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno” neutron
3、重新启动计算服务
systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service
4、启动网络服务并配置开机自动启动# systemctlenable neutron-server.service# systemctlstart neutron-server.service
5、验证
[root@controller ~]# source admin-openrc.sh
列出加载的扩展模块,确认成功启动neutron-server进程。
[root@controller ~]# neutron ext-list
±----------------------±----------------------------------------------+
| alias | name |
±----------------------±----------------------------------------------+
| security-group | security-group |
| l3_agent_scheduler | L3 Agent Scheduler |
| ext-gw-mode | Neutron L3 Configurable external gateway mode |
| binding | Port Binding |
| provider | Provider Network |
| agent | agent |
| quotas | Quota management support |
| dhcp_agent_scheduler | DHCP Agent Scheduler |
| l3-ha | HA Router extension |
| multi-provider | Multi Provider Network |
| external-net | Neutron external network |
| router | Neutron L3 Router |
| allowed-address-pairs | Allowed Address Pairs |
| extraroute | Neutron Extra Route |
| extra_dhcp_opt | Neutron Extra DHCP opts |
| dvr | Distributed Virtual Router |
±----------------------±----------------------------------------------+
2、配置neutron节点
1、编辑/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
安装网络组件
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch
编辑/etc/neutron/neutron.conf文件并完成下列操作:
a.编辑[database]小节,注释任何connection选项。因为network节点不能直接连接数据库。
b.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问
[DEFAULT]
…
rpc_backend=rabbit
rabbit_host= controller.nice.com
rabbit_password= RABBIT_PASS
c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问:
[DEFAULT]
…
auth_strategy= keystone
[keystone_authtoken]
…
auth_uri= http://controller.nice.com:5000/v2.0
identity_uri= http://controller.nice.com:35357admin_tenant_name= service
admin_user= neutron
admin_password= NEUTRON_PASS
d.编辑[DEFAULT]小节,启用Modular Layer2(ML2)插件,路由服务和重叠IP地址功能:
[DEFAULT]
…
core_plugin= ml2
service_plugins= router
allow_overlapping_ips= True
e.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
…
verbose = True
ML2插件使用Open vSwitch(OVS)机制为虚拟机实例提供网络框架。编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成下列操作:
a.编辑[ml2]小节,启用flat和generic routing encapsulation (GRE)网络类型驱动,配置GRE租户网络和OVS驱动机制。
[ml2]
…
type_drivers= flat,gre
tenant_network_types= gre
mechanism_drivers= openvswitch
b.编辑[ml2_type_flat]小节,配置外部网络:[ml2_type_flat]
…
flat_networks= external
c.编辑[ml2_type_gre]小节,配置隧道标识范围:
[ml2_type_gre]
…
总结
以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!
下面给大家分享下我的面试大全资料
- 第一份是我的后端JAVA面试大全
后端JAVA面试大全
- 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理
- 第三份是Spring全家桶资料
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理
实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!
下面给大家分享下我的面试大全资料
- 第一份是我的后端JAVA面试大全
[外链图片转存中…(img-bAgcjwSB-1714434716007)]
后端JAVA面试大全
- 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理
[外链图片转存中…(img-J12kw6Fc-1714434716007)]
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理
- 第三份是Spring全家桶资料
[外链图片转存中…(img-Tu6H9bnG-1714434716007)]
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理