OpenStack——Neutron安装

    xiaoxiao2022-06-24  43

    Neutron概览

    Neutron中最为核心的工作便是对二层物理网络的抽象和管理

    组成部分

    neutron-server :接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。OpenStack Networking plug-ins and agents:

    插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。 常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。 Messaging queue 大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态

    控制节点数据库创建

    为Neutron创建数据库

    mysql -u root -p CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \ IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \ IDENTIFIED BY 'NEUTRON_DBPASS';

    创建neutron用户和服务实例、端点

    openstack user create --domain default --password-prompt neutron openstack role add --project service --user neutron admin

    创建服务实例

    openstack service create --name neutron --description "OpenStack Networking" network

    创建服务端点

    openstack endpoint create --region RegionOne network public http://controller:9696 openstack endpoint create --region RegionOne network internal http://controller:9696 openstack endpoint create --region RegionOne network admin http://controller:9696

    配置控制节点的网络选项(不支持私有网络)

    安装服务和代理服务模块

    apt-get install neutron-server neutron-plugin-ml2 \ neutron-linuxbridge-agent neutron-dhcp-agent \ neutron-metadata-agent

    网络服务器(现在是controller节点)的配置修改

    /etc/neutron/neutron.conf配置文件如下:

    [database] ... connection =mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron [DEFAULT] ... core_plugin = ml2 service_plugins = [DEFAULT] ... rpc_backend = rabbit [oslo_messaging_rabbit] ... rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [DEFAULT] ... auth_strategy = keystone [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS [DEFAULT] ... notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True [nova] ... auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = nova password = NOVA_PASS

    /etc/neutron/plugins/ml2/ml2_conf.ini ML2插件使用Linux桥接机制为实例创建layer-2 (桥接/交换)虚拟网络基础设施

    [ml2] ... type_drivers = flat,vlan [ml2] ... tenant_network_types = #禁用私有网络选项 [ml2] ... mechanism_drivers = linuxbridge [ml2] ... extension_drivers = port_security #启用端口安全扩展驱动 [ml2_type_flat] ... flat_networks = provider #配置公共flat提供网络 [securitygroup] ... enable_ipset = True

    /etc/neutron/plugins/ml2/linuxbridge_agent.ini 为实例创建包括私有网络的VXLAN隧道和处理安全组的layer-2(桥接/交换)虚拟网络设施

    [linux_bridge] physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME [vxlan] enable_vxlan = False#因为没有私有网络的功能所以禁用 [securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    /etc/neutron/dhcp_agent.ini

    [DEFAULT] interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True

    配置控制节点的元数据代理

    /etc/neutron/metadata_agent.ini

    [DEFAULT] ... nova_metadata_ip = controller metadata_proxy_shared_secret = METADATA_SECRET

    配置控制节点的计算服务使用网络

    /etc/nova/nova.conf

    [neutron] ... url = http://controller:9696 auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET

    同步数据库并重启

    su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron init 6

    计算节点配置

    安装网桥代理组建

    apt-get install neutron-linuxbridge-agent

    配置neutron服务(/etc/neutron/neutron.conf)

    [DEFAULT] ... rpc_backend = rabbit [oslo_messaging_rabbit] ... rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [DEFAULT] ... auth_strategy = keystone [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS

    *配置计算节点的Linux bridge服务

    [linux_bridge] physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME(改成eth1) [vxlan] enable_vxlan = False [securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    配置计算节点的计算服务使用网络

    [neutron] ... url = http://controller:9696 auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS

    验证服务

    neutron agent-list

    如果列表host里出现compute1,就已经成功了。 参考: http://docs.openstack.org/mitaka/install-guide-ubuntu/common/get_started_networking.html

    网络配置解释

    Flat network:基于不使用 VLAN 的物理网络实现的虚拟网络。每个物理网络最多只能实现一个虚拟网络。

    Provider network: 基于不使用 VLAN 的物理网络实现的虚拟网络。每个物理网络最多只能实现一个虚拟网络。

    /etc/neutron/plugins/ml2/ml2_conf.ini 这个配置文件其实是Neutron ML2模块的配置文件。这个模块统一管理着 Layer 2 网络的虚拟化(Neutron支持L2-L7的虚拟化),目前支持 Open vSwitch,linux bridge,SR-IOV 等虚拟化 。在上面的配置选项中,我们选择了linux bridge这个代理。

    网络类型的支持由 ML2 的 types drivers 来完成。’local’,’flat’,’vlan’,’gre’,’vxlan’,’geneve’。实际上就是 ML2 内部所有支持的网络类型。 下面是ML2的工作方式

    ML2和agent之间的关系: OpenStack网络类型(管理,数据,外接和API): Flat结构:

    转载请注明原文地址: https://ju.6miu.com/read-1123911.html

    最新回复(0)