5、openstack安裝之Neutron篇

1、前言python

 在openstack中配置networking服務都是一段困惑的經歷。本指南提供一步步說明如何配置Networking(neutron)和傳統的網絡服務(nova-network)。若是你不肯定使用哪一種,建議嘗試neutron,由於它提供了至關數量的功能和靈活性,包括各類新興產品的插件來支持虛擬網絡。mysql



2、Networking概念linux

 openstack Networking(neutron)管理全部虛擬網絡,包括網絡基礎設施(VNI)和訪問層方面的物理網絡。它容許租戶建立高級的虛擬網絡拓撲結構,包括的服務有防火牆、負載均衡器、虛擬專用網絡(×××s)。sql

 Networking提供瞭如下對象抽象:網絡、子網、路由器。每一個功能模擬其物理實現:網絡包含子網路由不一樣子網、網絡之間的路由通訊。數據庫

 任何給定的網絡設置至少要有一個外部網絡。這個網絡是用來訪問互聯網的,由於這個網絡僅僅表明外部網絡的一部分,這份網絡的DHCP是禁用的。api

 除了外部網絡,任何網絡設置有一個或者多個內部網絡。這些軟件定義的網絡直接鏈接到雲主機,而後虛擬機所在子網鏈接到一個路由器的接口上,該路由器的另外一個接口鏈接到外部網絡,這樣雲主機就能夠直接鏈接到網絡了。外部網絡訪問雲主機,則須要把外部IP綁定到雲主機。安全

 Networking也支持安全組,安全組經過管理員來定義防火牆規則。一臺雲主機能夠屬於一個或者多個安全組。服務器

 Networking的每一個插件都有它本身的概念。雖然操做Networking不是相當重要的,可是理解這些概念能夠幫助你創建Networking。Networking的安裝使用一個核心插件和一個安全組插件;此外,Firewall-as-a-service(FWaaS)和Load-balancing-as-aservice(LBaaS)插件可用。網絡



3、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


4、下一步

 這時,你的openstack環境已經包含了啓動實例所需的核心組件了,你能夠經過後面的章節啓動實例或者添加更多的服務到你的環境中。


到此,Networking(neutron)安裝完畢!

相關文章
相關標籤/搜索