openstack网络服务Neutron的安装

2017-1-18 Mr.linus 运维技术

一、前言

 在openstack中配置networking服务都是一段困惑的经历。本指南提供一步步说明如何配置Networking(neutron)和传统的网络服务(nova-network)。如果你不确定使用哪种,建议尝试neutron,因为它提供了相当数量的功能和灵活性,包括各种新兴产品的插件来支持虚拟网络。



二、Networking概念

 openstack Networking(neutron)管理所有虚拟网络,包括网络基础设施(VNI)和访问层方面的物理网络。它允许租户创建高级的虚拟网络拓扑结构,包括的服务有防火墙、负载均衡器、虚拟专用网络(VPNs)。

 Networking提供了以下对象抽象:网络、子网、路由器。每个功能模拟其物理实现:网络包含子网路由不同子网、网络之间的路由通信。

 任何给定的网络设置至少要有一个外部网络。这个网络是用来访问互联网的,因为这个网络仅仅代表外部网络的一部分,这份网络的DHCP是禁用的。

 除了外部网络,任何网络设置有一个或者多个内部网络。这些软件定义的网络直接连接到云主机,然后虚拟机所在子网连接到一个路由器的接口上,该路由器的另一个接口连接到外部网络,这样云主机就可以直接连接到网络了。外部网络访问云主机,则需要把外部IP绑定到云主机。

 Networking也支持安全组,安全组通过管理员来定义防火墙规则。一台云主机可以属于一个或者多个安全组。

 Networking的每个插件都有它自己的概念。虽然操作Networking不是至关重要的,但是理解这些概念可以帮助你建立Networking。Networking的安装使用一个核心插件和一个安全组插件;此外,Firewall-as-a-service(FWaaS)和Load-balancing-as-aservice(LBaaS)插件可用。



三、Modular Layer 2(ML2) plug-in

 1.配置控制节点

  (1)先决条件

   在你配置neutron之前,你必须创建数据库、身份认证服务凭证包括用户和服务

   A.创建neutron数据库和用户,并授予适当的访问权限    

    mysql> CREATE DATABASE neutron;

    mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \

      IDENTIFIED BY 'neutron';

    mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \

      IDENTIFIED BY 'neutron';

   B.为Networking创建身份认证服务凭证

    ①创建neutron用户

     # keystone user-create --name neutron --pass openstack --email 353764437@qq.com

    ②连接neutron用户到service租户和admin角色

     # keystone user-role-add --user neutron --tenant service --role admin

    ③创建neutron服务

     # keystone service-create --name neutron --type network \

      --description "OpenStack Networking"

    ④创建服务端点

     # keystone endpoint-create \

      --service-id $(keystone service-list | awk '/ network / {print $2}') \

      --publicurl http://controller:9696 \

      --adminurl http://controller:9696 \

      --internalurl http://controller:9696

  (2)安装Networking组件

   # yum install -y openstack-neutron openstack-neutron-ml2 python-neutronclient

  (3)配置Networking服务器组件

   A.配置Networking使用数据库

    # openstack-config --set /etc/neutron/neutron.conf database connection \

     mysql://neutron:neutron@controller/neutron

   B.配置Networking使用身份认证凭证

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     auth_strategy keystone

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_uri http://controller:5000

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_host controller

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_protocol http

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_port 35357

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_tenant_name service

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_user neutron

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_password openstack

   C.配置Networking使用消息代理服务

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     rpc_backend neutron.openstack.common.rpc.impl_qpid

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     qpid_hostname controller

   D.配置Networking通知计算服务关于网络逻辑的改变

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     notify_nova_on_port_status_changes True

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     notify_nova_on_port_data_changes True

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     nova_url http://controller:8774/v2

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     nova_admin_username nova

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     nova_admin_tenant_id $(keystone tenant-list | awk '/ service / { print $2 }')

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     nova_admin_password openstack

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     nova_admin_auth_url http://controller:35357/v2.0

   E.配置Networking使用ML2插件

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     core_plugin ml2

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     service_plugins router

    注意:我们可以添加verbose = True到[DEFAULT]部分在/etc/neutron/neutron.conf来协助排查故障

  (4).配置ML2插件

   该插件使用Open vSwitch机制来为实例创建虚拟网络框架,然而,控制节点不需要OVS代理或者服务,因为它不处理实例的网络流量

   A.运行下列命令

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

     type_drivers gre

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

     tenant_network_types gre

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

     mechanism_drivers openvswitch

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

     ml2_type_gre tunnel_id_ranges 1:1000

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

     securitygroup firewall_driver \

     neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

    # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

     securitygroup enable_security_group True

  (5).配置计算服务使用Networking

   默认情况下,大多数发行版配置计算使用遗留网络。你必须重新配置计算服务通过Networking来管理网络,运行以下命令:

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    network_api_class nova.network.neutronv2.api.API

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_url http://controller:9696

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_auth_strategy keystone

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_tenant_name service

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_username neutron

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_password openstack

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_auth_url http://controller:35357/v2.0

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    firewall_driver nova.virt.firewall.NoopFirewallDriver

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    security_group_api neutron

  (6)完成安装

   A.Networking服务初始化脚本设置符号链接/etc/neutron/plugin.ini指向你选择的插件配置文件

    # ln -s plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

   B.重启计算服务

    # service openstack-nova-api restart

    # service openstack-nova-scheduler restart

    # service openstack-nova-conductor restart

   C.启动neutron服务并配置开机启动

    # service neutron-server start

    # chkconfig neutron-server on

  (7)请注意:Networking不像其他的服务,需要有一个独立的步骤来填充数据库,因为neutron-server服务会自动填充它。然后,这些发行版的包有时需要运行neutron-db-manage命令之前要启动neutron-server服务。我们建议尝试启动服务之前,手动填充数据库。如果服务返回数据库错误,我们执行下列操作:

   A.配置Networking使用长的插件名称

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     core_plugin neutron.plugins.ml2.plugin.Ml2Plugin

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     service_plugins neutron.services.l3_router.l3_router_plugin.L3RouterPlugin

   B.填充数据库

    # su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \

     --config-file /etc/neutron/plugin.ini upgrade head" neutron

   C.再次尝试启动neutron-server服务

 2.配置网络节点

  (1)先决条件

   配置OpenStack Networking之前,您必须启用某些内核网络功能

   A.编辑/etc/sysctl.conf文件,包含以下内容

    net.ipv4.ip_forward=1

   net.ipv4.conf.all.rp_filter=0

    net.ipv4.conf.default.rp_filter=0

    net.bridge.bridge-nf-call-arptables=1

    net.bridge.bridge-nf-call-iptables=1

    net.bridge.bridge-nf-call-ip6tables=1

   B.立即生效内核参数

    # sysctl -p

  (2)安装Networking组件

   # yum install -y openstack-neutron openstack-neutron-ml2 \

    openstack-neutron-openvswitch

  (3)配置Networking常见组件

   网络常见组件配置包括身份验证机制、消息代理和插件

   A.配置Networking使用身份认证服务凭证

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     auth_strategy keystone

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_uri http://controller:5000

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_host controller

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_protocol http

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_port 35357

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_tenant_name service

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_user neutron

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_password openstack

   B.配置Networking使用消息代理

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     rpc_backend neutron.openstack.common.rpc.impl_qpid

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     qpid_hostname controller

   C.配置Networking使用ML2插件和关联服务

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     core_plugin ml2

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     service_plugins router

   D.在/etc/neutron/neutron.conf文件的[DEFAULT]部分增加verbose = True来启用详细日志排除故障

  (4)配置L3 agent,作用是为实例的虚拟网络提供路由服务

   # openstack-config --set /etc/neutron/l3_agent.ini DEFAULT \

    interface_driver neutron.agent.linux.interface.OVSInterfaceDriver

   # openstack-config --set /etc/neutron/l3_agent.ini DEFAULT \

    use_namespaces True

   注意:在/etc/neutron/l3_agent.ini文件的[DEFAULT]部分增加verbose = True来启用详细日志排除故障

  (5)配置DHCP agent,作用是为实例虚拟网络提供DHCP服务

   # openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT \

    interface_driver neutron.agent.linux.interface.OVSInterfaceDriver

   # openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT \

    dhcp_driver neutron.agent.linux.dhcp.Dnsmasq

   # openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT \

    use_namespaces True

   注意:在/etc/neutron/dhcp_agent.ini文件的[DEFAULT]部分增加verbose = True来启用详细日志排除故障

  (6)配置MTU

   A.运行下面命令

    # openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT \

     dnsmasq_config_file /etc/neutron/dnsmasq-neutron.conf

   B.创建和编辑/etc/neutron/dnsmasq-neutron.conf文件,并添加以下内容

    # dhcp-option-force=26,1454

   C.结束已经存在的dnsmasq进程

    # killall dnsmasq

  (7)配置metadata agent

   元数据代理提供了远程配置信息,如远程访问实例的凭证

   A.运行下面命令

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     auth_url http://controller:5000/v2.0

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     auth_region regionOne

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     admin_tenant_name service

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     admin_user neutron

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     admin_password openstack

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     nova_metadata_ip controller

    # openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \

     metadata_proxy_shared_secret openstack

   B.在/etc/neutron/metadata_agent.ini文件的[DEFAULT]部分增加verbose = True来启用详细日志排除故障

   C.在控制节点上执行下面的步骤

    ①在控制节点,配置计算服务使用metadata服务

     # openstack-config --set /etc/nova/nova.conf DEFAULT \

      service_neutron_metadata_proxy true

     # openstack-config --set /etc/nova/nova.conf DEFAULT \

      neutron_metadata_proxy_shared_secret openstack

   ②在控制节点上重启计算API服务

     # service openstack-nova-api restart

 (8)配置ML2插件,运行下列命令

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    type_drivers gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    tenant_network_types gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    mechanism_drivers openvswitch

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

    ml2_type_gre tunnel_id_ranges 1:1000

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    local_ip 10.0.1.21

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    tunnel_type gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    enable_tunneling True

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup \ 

    firewall_driver \

    neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup \

    enable_security_group True

 (9)配置Open vSwitch服务

   OVS服务提供实例的底层虚拟网络的框架,集成桥br-int处理实例的内部网络流量,br-ex处理实例的外部网络实例。外部桥需要一个在物理外部网络接口提供给实例的端口来与外部网络通信。实际上,这个端口桥接虚拟和物理外部网络在你的环境中。

   A.启动OVS服务并配置随机启动

    # service openvswitch start

    # chkconfig openvswitch on

   B.添加集成桥

    # ovs-vsctl add-br br-int

   C.添加外部桥

    # ovs-vsctl add-br br-ex

   D.添加一个端口到外部桥用来连接到物理外部网络接口

    # ovs-vsctl add-port br-ex eth2

    注意:根据你的网络接口驱动程序,你可能要禁用GRO来达到合适的吞吐量,在你的实例和外部网络之间。暂时禁用GRO在外部网络接口在你的测试环境。

    # ethtool -K eth2 gro off

  (10)完成安装

   A.创建文件链接

    # ln -s plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

    # cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutronopenvswitch-agent.orig

    # sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' \

     /etc/init.d/neutron-openvswitch-agent

   B.启动Networking服务和配置随机启动

    # service neutron-openvswitch-agent start

    # service neutron-l3-agent start

    # service neutron-dhcp-agent start

    # service neutron-metadata-agent start

    # chkconfig neutron-openvswitch-agent on

    # chkconfig neutron-l3-agent on

    # chkconfig neutron-dhcp-agent on

    # chkconfig neutron-metadata-agent on

 3.配置计算节点

  (1)先决条件

   A.配置内核参数,编辑/etc/sysctl.conf文件,包含以下选项

    net.ipv4.conf.all.rp_filter=0

    net.ipv4.conf.default.rp_filter=0

    net.bridge.bridge-nf-call-arptables=1

    net.bridge.bridge-nf-call-iptables=1

    net.bridge.bridge-nf-call-ip6tables=1

   B.立即生效内核参数

    # sysctl -p

  (2)安装Networking组件

   # yum install -y openstack-neutron-ml2 openstack-neutron-openvswitch

  (3)配置网络常见组件

   A.配置Networking使用身份认证服务凭证

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     auth_strategy keystone

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_uri http://controller:5000

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_host controller

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_protocol http

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     auth_port 35357

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_tenant_name service

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_user neutron

    # openstack-config --set /etc/neutron/neutron.conf keystone_authtoken \

     admin_password openstack

   B.配置Networking使用消息代理

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     rpc_backend neutron.openstack.common.rpc.impl_qpid

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     qpid_hostname controller

   C.配置Networking使用ML2插件和关联服务

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     core_plugin ml2

    # openstack-config --set /etc/neutron/neutron.conf DEFAULT \

     service_plugins router

   D.在/etc/neutron/neutron.conf文件的[DEFAULT]部分增加verbose = True来启用详细日志排除故障

  (4)配置ML2插件,运行以下命令

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    type_drivers gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    tenant_network_types gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 \

    mechanism_drivers openvswitch

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

    ml2_type_gre tunnel_id_ranges 1:1000

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    local_ip 10.0.1.31

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    tunnel_type gre

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs \

    enable_tunneling True

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup \

    firewall_driver \

    neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

   # openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini \

    securitygroup enable_security_group True

  (5)配置OVS服务

   A.启动OVS服务并配置随机启动

    # service openvswitch start

    # chkconfig openvswitch on

   B.添加集成桥

    # ovs-vsctl add-br br-int

  (6)配置计算服务使用Networking,运行以下命令

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

   network_api_class nova.network.neutronv2.api.API

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_url http://controller:9696

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_auth_strategy keystone

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_tenant_name service

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_username neutron

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_password openstack

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    neutron_admin_auth_url http://controller:35357/v2.0

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    linuxnet_interface_driver \

    nova.network.linux_net.LinuxOVSInterfaceDriver

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    firewall_driver nova.virt.firewall.NoopFirewallDriver

   # openstack-config --set /etc/nova/nova.conf DEFAULT \

    security_group_api neutron

  (7)完成安装

   A.创建文件链接

    # ln -s plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

    # cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutronopenvswitch-agent.orig

    # sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' \ 

     /etc/init.d/neutron-openvswitch-agent

   B.重启计算服务

    # service openstack-nova-compute restart

   C.启动OVS agent和配置开机启动

    # service neutron-openvswitch-agent start

    # chkconfig neutron-openvswitch-agent on

 4.创建初始网络

  在启动你的第一个实例之前,你必须创建所需的虚拟网络基础设施与实例连接,包括外部网络和租户网络。在创建了这些基础设施之后,我们建议你在进一步之前先验证连接和解决任何问题。网络通信简图如下:

  wKioL1Vqn4yjfMgQAAHgeQ490m8285.jpg


 (1)外部网络

   外部网络提供互联网接入你的实例。默认情况下,这个网络只允许实例使用网络地址转换(NAT)来上网。你可以启用互联网访问单个实例,通过使用浮动IP地址和合适的安全组规则。admin租户拥有这个网络,因为它提供了外部网络访问多个租户。你还需要为这些租客启用共享允许访问。

   注意:在控制节点上执行这些操作

   A.创建外部网络

    ①source admin租户凭证

     # source admin-openrc.sh

    ②创建网络

     # neutron net-create ext-net --shared --router:external=True

     像一个物理网络,一个虚拟网络需要一个子网分配给它。外部网络与物理网络共享相同的子网和网关,通过网络节点连接到网络。你必须指定一个分片的子网给路由器和浮动IP地址使用,防止干扰其他在外部的网络设备。

   B.创建外部网络的子网

    # neutron subnet-create ext-net --name ext-subnet \

     --allocation-pool start=10.0.0.100,end=10.0.0.200 \

     --disable-dhcp --gateway 10.0.0.2 10.0.0.0/24

    请特别注意:这里分配的地址是可以上网的地址,何为可以上网的地址?就拿我们的环境来说,由于我们的管理网络的IP是用NAT与互联网通信的,所以管理网络这个网络的所有IP地址都是可以上网的。所以我最初在网络节点的第三张网卡也选择的是NAT模式(请看基础环境准备篇),而我们的openstack上的云主机要上互联网是通过第三个网卡来实现的,所以创建的外部子网就必须和NAT同一个网段和网关。

  (2)租户网络

   A.创建租户网络(这里用admin租户实现,官方文档是demo租户,都一样的)

    ①source admin租户凭证

     # source admin-openrc.sh

    ②创建网络

     # neutron net-create pri-net

   B.创建租户网络的子网

    # neutron subnet-create pri-net --name private \

     --gateway 172.16.0.1 172.16.0.0/24

    这时,还需要虚拟路由器通过两个或者多个虚拟网络之间进行网络通信。

   C.创建路由器

    # neutron router-create test

   D.让租户子网与路由器连接

    # neutron router-interface-add test private

   F.通过设置网关让外部子网与路由器连接(通常自动分配浮动IP范围的第一个IP)

    # neutron router-gateway-set test ext-net

  (3)验证连接

   在进一步之前,我们先验证网络连接和解决任何问题。在外部网络子网使用示例10.0.0.0/24,租户路由器网关应该占据浮动IP范围中最先的IP地址,即10.0.0.100。如果你配置外部物理网络和虚拟网络正确,你可以从主机外部物理网络ping通这个IP地址。

   ping租户路由器网关:

   wKiom1VqrCnRv537AAFclNaKioo446.jpg


四、下一步

 这时,你的openstack环境已经包含了启动实例所需的核心组件了,你可以通过后面的章节启动实例或者添加更多的服务到你的环境中。


到此,Networking(neutron)安装完毕!

标签: OpenStack Neutron

发表评论:

Powered by Mr.Linus 蜀ICP备16005020号