分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

OpenStack搭建企业私有云 四:Networking服务(持续更新...)

发布时间:2023-09-06 02:13责任编辑:苏小强关键词:暂无标签
网络服务概览

OpenStack Networking(neutron),允许创建、插入接口设备,这些设备由其他的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。

它包含下列组件:

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

  • OpenStack网络插件和代理:
    插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
    常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。

  • 消息队列:
    大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态
    OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。

  • 网络neutron概念:
    OpenStack网络(neutron)管理OpenStack环境中所有虚拟网络基础设施(VNI),物理网络基础设施(PNI)的接入层。OpenStack网络允许租户创建包括像 firewall, :term:load balancer和 :term:virtual private network (×××)等这样的高级虚拟网络拓扑。

网络服务提供网络,子网以及路由这些对象的抽象概念。每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络间进行路由转发。

对于任意一个给定的网络都必须包含至少一个外部网络。不像其他的网络那样,外部网络不仅仅是一个定义的虚拟网络。相反,它代表了一种OpenStack安装之外的能从物理的,外部的网络访问的视图。外部网络上的IP地址可供外部网络上的任意的物理设备所访问
外部网络之外,任何 Networking 设置拥有一个或多个内部网络。这些软件定义的网络直接连接到虚拟机。仅仅在给定网络上的虚拟机,或那些在通过接口连接到相近路由的子网上的虚拟机,能直接访问连接到那个网络上的虚拟机。
如果外部网络想要访问实例或者相反实例想要访问外部网络,那么网络之间的路由就是必要的了。每一个路由都配有一个网关用于连接到外部网络,以及一个或多个连接到内部网络的接口。就像一个物理路由一样,子网可以访问同一个路由上其他子网中的机器,并且机器也可以访问路由的网关访问外部网络。
另外,你可以将外部网络的IP地址分配给内部网络的端口。不管什么时候一旦有连接连接到子网,那个连接被称作端口。你可以给实例的端口分配外部网络的IP地址。通过这种方式,外部网络上的实体可以访问实例.
网络服务同样支持安全组。安全组允许管理员在安全组中定义防火墙规则。一个实例可以属于一个或多个安全组,网络为这个实例配置这些安全组中的规则,阻止或者开启端口,端口范围或者通信类型。

操作步骤

  • 在controller节点
  • 创建nuetron数据库和授权

    # mysql -u root -p> CREATE DATABASE neutron;> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘localhost‘ ??IDENTIFIED BY ‘123456‘;> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘%‘ ??IDENTIFIED BY ‘123456‘;
  • 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

    # source ~/admin-openrc
  • 创建用户

    # openstack user create --domain default --password-prompt neutronUser Password: ???????//密码123456Repeat User Password: ?//密码123456
  • 添加admin 角色到neutron 用户:

    # openstack role add --project service --user neutron admin
  • 创建neutron服务

    # 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

  • 在controller节点上安装并配置网络组件

  • 安装组件

    # yum install -y openstack-neutron openstack-neutron-ml2 ?openstack-neutron-linuxbridge ebtables
  • 修改配置文件

    # vim ?/etc/neutron/neutron.conf[database]//729connection = mysql+pymysql://neutron:123456@controller/neutron[DEFAULT]//27auth_strategy = keystone//30core_plugin = ml2//33 不写代表禁用其他插件service_plugins =//570transport_url = rabbit://openstack:RABBIT_PASS@controller//98notify_nova_on_port_status_changes = true//102notify_nova_on_port_data_changes = true[keystone_authtoken]//847auth_uri = http://controller:5000auth_url = http://controller:35357//898memcached_servers = controller:11211//1005auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = 123456[nova]//1085auth_url = http://controller:35357//1089auth_type = password//1127project_domain_name = default//1156user_domain_name = default//1069region_name = RegionOne//1135project_name = service//1163username = nova//1121password = 123456[oslo_concurrency]//1179lock_path = /var/lib/neutron/tmp
  • 配置网络二层插件
  • 配置 Modular Layer 2 (ML2) 插件

    # vim /etc/neutron/plugins/ml2/ml2_conf.ini[ml2]//136type_drivers = flat,vlan//141 ??设置空是禁用本地网络tenant_network_types =//145mechanism_drivers = linuxbridge//150extension_drivers = port_security[ml2_type_flat]//186flat_networks = provider[securitygroup]//263enable_ipset = true
  • 配置Linux网桥

    # vim ?/etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge]//157physical_interface_mappings = provider:ens33[vxlan]//208enable_vxlan = false[securitygroup]//193enable_security_group = true//188firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
  • 配置DHCP

    # vim /etc/neutron/dhcp_agent.ini//16interface_driver = linuxbridge//28dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq//37enable_isolated_metadata = true
  • 配置metadata

    # vim ?/etc/neutron/metadata_agent.ini[DEFAULT]//22nova_metadata_host = controller//34metadata_proxy_shared_secret = 123456
  • 配置计算服务使用网络服务

    # vim /etc/nova/nova.conf[neutron]//7534url = http://controller:9696//7610auth_url = http://controller:35357//7604auth_type = password//7631project_domain_name = default//7657user_domain_name = default//7678region_name = RegionOne//7625project_name = service//7651username = neutron//7660password = 123456//7573service_metadata_proxy = true//7584metadata_proxy_shared_secret = 123456
  • 建立服务软连接

    # ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
  • 同步数据库

    # 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
  • 重启compute API服务和 启动neutron服务并加入开机自启动

    # systemctl restart openstack-nova-api.servicesystemctl enable neutron-server.service ??systemctl enable neutron-linuxbridge-agent.service systemctl enable neutron-dhcp-agent.service ??systemctl enable neutron-metadata-agent.servicesystemctl start neutron-server.service ??systemctl start neutron-linuxbridge-agent.service systemctl start neutron-dhcp-agent.service ??systemctl start neutron-metadata-agent.service

配置compute节点网络服务

 ???# yum install -y openstack-neutron-linuxbridge ebtables ipset
  • 配置公共组件

    # vim /etc/neutron/neutron.conf[DEFAULT]//27auth_strategy = keystone//570transport_url = rabbit://openstack:123456@controller[keystone_authtoken]//847auth_uri = http://controller:5000auth_url = http://controller:35357//898memcached_servers = controller:11211//1005auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = 123456[oslo_concurrency]//1180lock_path = /var/lib/neutron/tmp
  • 配置Linux网桥

    # vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge]//157physical_interface_mappings = provider:ens33[vxlan]//208enable_vxlan = false[securitygroup]//193enable_security_group = true//188firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
  • 配置计算节点网络服务

    # vim /etc/nova/nova.conf[neutron]//7534url = http://controller:9696//7610auth_url = http://controller:35357//7605auth_type = password//7631project_domain_name = default//7657user_domain_name = default//7678region_name = RegionOne//7625project_name = service//7651username = neutron//7660password = 123456
  • 重启计算服务

    # systemctl restart openstack-nova-compute.service
  • 启动Linuxbridge代理并配置它开机自启动

    # systemctl enable neutron-linuxbridge-agent.service# systemctl start neutron-linuxbridge-agent.service
  • 验证
  • 列出加载的扩展来验证neutron-server进程是否正常启动:

    # source ~/admin-openrc# neutron ext-list

OpenStack搭建企业私有云 四:Networking服务(持续更新...)

原文地址:http://blog.51cto.com/13630803/2171401

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved