neutron部署

发布时间 2023-11-21 18:12:58作者: q_7

一:了解neutron的基础知识

主要的作用就是:为云主机提供网络

负责虚拟网络设备的创建和管理

1:基本的概念

网桥:类似于交换机,就是连接不同的网络设备,网桥分为,内部网桥和外部网桥,就是能不能访问外网的区别

网络:类似于vlan技术,就是可以划分网络,可以互相通信或者不能,再其次,就是2者中只有一个能上网(操作)

子网:

端口:

2:neutron的组件架构

1:neutron模块

3:neutron的基本的工作流程

 

4:neutron支持的网络模式

 

二:neutron的部署

1:前期的网络环境准备

1)将外网的网卡设置为混杂模式

ifconfig ens33 promisc

查看网卡的信息
[root@controller ~]# ifconfig ens33
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.20.10  netmask 255.255.255.0  broadcast 192.168.20.255
        inet6 fe80::c1ad:a3ec:efe3:297  prefixlen 64  scopeid 0x20<link>
出现了promisc

设置开机后混杂模式生效

vim /etc/profile
#添加这行内容
ifconfig ens33 promisc

 

2)加载桥接模式防火墙模块

 

 

2:安装与配置控制节点上的neutron服务

1)安装neutron软件包

 

2)创建neutron的数据库并授权

 

3)修改neutron服务的配置文件

1:配置neutron组件的信息

配置文件为:/etc/neutron/neutron.conf
做个备份,去除空行和注释行

[DEFAULT]
core_plugin = ml2
service_plugins = router
transport_url = rabbit://rabbitmq:000000@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[database]
connection = mysql+pymysql://neutron:000000@controller/neutron

[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = neutron
password = 000000

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = nova
password = 000000
region_name = RegionOne
server_proxyclient_address = 192.168.10.10

  

2:修改二层模块插件(ml2 plugin)的配置文件

配置文件 /etc/neutron/plugins/ml2/ml2_conf.ini
#做个备份,去除空行和注释行

[ml2]
type_drivers = flat,local,vlan,gre,vxlan,geneve
tenant_network_types= local,flat
memchanism_drivers = linuxbridge
extension_drivers = port_security

[ml2_type_flat]
flat_networks = provider

[securitygroup]
enable_ipset = true

  

启用ml2插件(就是建立一个软连接),因为只有在/etc/neutron下的插件才能生效

[root@controller ml2]# ln -s /bin/sh ml2_conf.ini /etc/neutron/plugin.ini

[root@controller neutron]# ls
conf.d          dhcp_agent.ini  l3_agent.ini        neutron.bak   plugin.ini  rootwrap.conf
dhcp_agent.bak  kill_scripts    metadata_agent.ini  neutron.conf  plugins
[root@controller neutron]# 

这样ml2插件才能生效

  

3:修改网桥代理(linuxbridge_agent)的配置文件

配置文件 /etc/neutron/plugins/ml2/linuxbridge_agent.ini

#备份和去掉注释和空行的操作

[linux_bridge]
physical_interface_mappings = providers:ens33

[vxlan]
enable_vxlan = false

[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.lptablesFirewallDriver

   

4:修改dhcp代理(dhcp-agent)配置文件

配置文件 /etc/neutron/dhcp-agent.ini
#备份
#去除空行和注释行的操作

[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.liniux.dhcp.Dnsmasq
enable_isolated_metadata = true
~          

 

5:修改元数据代理(metadata-agent)配置文件

配置文件 /etc/neutron/metadata_agent.ini

#这个不用做备份

[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = METADATA_SECRET

  

6:修改nova配置文件

配置文件 /etc/nova/nova.conf

[neutron]
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
region_name = RegionOne
project_name = project
username = neutron
password = 000000
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET

  

 

 

4)初始化数据库

 同步数据库的目的是将安装文件的数据库的表信息填充到数据库中去了,neutron这个库

[root@controller neutron]# su neutron -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head"