一:了解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"