Oracle® Solaris での OpenStack (Kilo) のインストールと構成

印刷ビューの終了

更新: 2016 年 6 月
 
 

外部ネットワークの作成

ルーターを作成したあと、次は外部ネットワークを構成します。クラウドの内部ネットワーク内のユーザーは、外部ネットワークのゲートウェイ経由でインターネットに接続できます。

次の図は、単一ルーターがクラウドプロジェクトのネットワーク通信をサポートする方法を示しています。

図 3  プライベートネットワークモデルでのプロバイダルーター

image:それぞれが 2 つの内部ネットワークと 2 つの VM インスタンスで構成される 2 つのプロジェクト

この図は、次を示しています。

  • 2 つのプロジェクト (Tenant ATenant B)

  • 4 つの VM (VM1VM2VM3、および VM4)

  • 4 つのサブネット (HRENGIT、および ACCT)

  • ルーター

  • 外部ネットワーク

外部ネットワークへの内部ネットワークアクセスを提供すると、VM の IP アドレスが、その外部ネットワークに割り当てるフローティングアドレスのいずれかにマップされます。

外部ネットワークを作成する方法

この手順では、外部ネットワークを表す仮想ネットワークを作成する方法を示します。この仮想ネットワークは DHCP を使用しません。代わりに、フローティング IP アドレスが作成されてプロジェクトに割り当てられ、それらのプロジェクトの下で Nova VM インスタンスによって使用されます。これらの手順では VLAN タイプのネットワークを作成しますが、この手順は (フラットなネットワークなどの) その他のネットワークタイプの作成にも適用されます。

外部ネットワークは、内部ネットワークの作成に関係なく作成できます。

始める前に

エラスティック仮想スイッチの構成を完了してください。詳細は、Neutron をインストールし、構成する方法 (特に、EVS を構成する手順) を参照してください。

  1. Neutron のグローバルシェル変数を設定します。
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_PROJECT_NAME=service
    controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
  2. (オプション) VLAN 範囲を取得します。
    controller# evsadm show-controlprop -p vlan-range
  3. 外部ネットワークを作成します。
    controller# neutron net-create --provider:network_type=vlan \
    --provider:segmentation_id=VLAN-nbr \
    --router:external network-name
    

    この手順では、Neutron をインストールし、構成する方法に基づいた VLAN ネットワークの作成を想定しています。segmentation_id は、EVS を構成したときに定義した範囲を持つ VLAN ネットワークの VLAN ID です。


    注 -  フラットなネットワークを作成している場合は、セグメンテーション ID を指定する必要はありません。
  4. 外部ネットワークのサブネットを作成します。

    割り当てプールは、サブネットに割り当てられたフローティング IP アドレスの範囲で構成されます。

    controller# neutron subnet-create --name subnet-name --disable-dhcp \
       --allocation-pool start=start-IP,end=end-IP \
       network-name subnet-IP
  5. ルーターに外部ネットワークを追加します。
    controller# neutron router-gateway-set router-name ext-network-ID

    注 -  デフォルトで、このコマンドの発行時に、SNAT は有効にされています。SNAT が有効になっていると、プライベートネットワーク内の VM は外部ネットワークにアクセスできます。ただし、これらのインスタンス自体にクラウドの外部からアクセスすることはできません。SNAT を無効にするには、neutron router-gateway-set サブコマンドで –--disable-snat オプションを指定します。
  6. (オプション) ルーターに関する情報を表示します。
    controller# neutron router-show router-name
使用例 2  外部ネットワークの作成

この例では、外部ネットワークを作成して、それをクラウド内の内部ネットワークで使用できるように準備する方法を示します。

フラットなネットワークを作成するには、https://blogs.oracle.com/openstack/tags/juno のセクション 2 で提供されている例も参照してください。

controller# export OS_USERNAME=neutron
controller# export OS_PASSWORD=service-password
controller# export OS_PROJECT_NAME=service
controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0

controller# evsadm show-controlprop -p vlan-range
PROPERTY          PERM VALUE       DEFAULT   HOST
vlan-range        rw   1,200-300   --        --

controller# neutron net-create --router:external \
--provider:network_type=vlan --provider:segmentation_id=1 ext_network
Created a new network:
+--------------------------+--------------------------------------+
| Field                    | Value                                |
+--------------------------+--------------------------------------+
| admin_state_up           | True                                 |
| id                       | 08cf49c8-f28f-49c1-933d-bdb1017e0294 |
| name                     | ext_network                          |
| provider:network_type    | vlan                                 |
| provider:segmentation_id | 1                                    |
| router:external          | True                                 |
| shared                   | False                                |
| status                   | ACTIVE                               |
| subnets                  |                                      |
| project_id               | 7d1caf0854b24becb28df5c5cabf72cc     |
+--------------------------+--------------------------------------+

controller# neutron subnet-create --name ext_subnet --disable-dhcp \
   --allocation-pool start=10.134.10.8,end=10.134.10.254 \
   ext_network 10.134.10.0/24
Created a new subnet:
+-------------------+---------------------------------------------------+
| Field             | Value                                             |
+-------------------+---------------------------------------------------+
| allocation_pools  | {"start": "10.134.10.8", "end": "10.134.10.254"}  |
| cidr              | 10.134.10.0/24                                    |
| dns_nameservers   |                                                   |
| enable_dhcp       | False                                             |
| gateway_ip        | 10.134.13.1                                       |
| host_routes       |                                                   |
| id                | fce503ff-f483-4024-b122-f2524e3edae1              |
| ip_version        | 4                                                 |
| ipv6_address_mode |                                                   |
| ipv6_ra_mode      |                                                   |
| name              | ext_subnet                                        |
| network_id        | 08cf49c8-f28f-49c1-933d-bdb1017e0294              |
| project_id        | 7d1caf0854b24becb28df5c5cabf72cc                  |
+-------------------+---------------------------------------------------+

controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294
Set gateway for router ext-router

controller# neutron router-show ext-router
+-----------------------+-------------------------------------------------------+
| Field                 | Value                                                 |
+-----------------------+-------------------------------------------------------+
| admin_state_up        | True                                                  |
| external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",|
|                       | "enable_snat": true,                                  |
|                       | "external_fixed_ips":                                 |
|                       |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", |
|                       |"ip_address": "10.134.10.8"}]} |                       |
| id                    | f89b24ed-42dd-48b0-8f4b-fd41887a3370                  |
| name                  | ext-router                                            |
| status                | ACTIVE                                                |
| project_id            | 7d1caf0854b24becb28df5c5cabf72cc                      |
+-----------------------+-------------------------------------------------------+

関連項目

内部ネットワークに外部接続を提供する方法

内部ネットワークがより広いパブリックネットワークにアクセスできるようにするには、この手順を使用します。この手順では、内部ネットワークが特定のプロジェクト用にすでに存在していることを前提にしています。ダッシュボードを使用してプロジェクト内部ネットワークを作成するには、プロジェクト用の内部ネットワークの作成を参照してください。

始める前に

続行する前に、パブリックアクセスを必要としているサブネット名を取得します。

  1. Neutron のグローバルシェル変数を設定します。
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_PROJECT_NAME=service
    controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
  2. 外部アクセスを必要としているサブネットの ID を識別します。
    controller# neutron subnet-list | grep subnet-name
  3. (オプション) ルーターの名前を取得します。
    controller# neutron router-list
  4. サブネットの ID をインタフェースとしてルーターに追加します。
    controller# neutron router-interface-add router-name subnetID
使用例 3  内部ネットワークを外部ネットワークに接続

この例では、プロジェクトにネットワークを構成する方法で作成された HR 内部ネットワークを使用します。サブネットが HR_Subnet である HR ネットワークは、パブリックネットワークへのアクセスを必要としています。

controller# neutron subnet-list | grep HR_Subnet
| b6feff42-36aa-4235- | HR_Subnet  | 10.132.30.0/24 | {"start": "10.132.30.2", |
|   9fe0-ac5de6b43af3 |            |                |  "end": "10.132.30.254"} |

controller# neutron router-list
+---------------------  +------------+--------------------------------+
| id                    | name       | external_gateway_info          |
+---------------------  +------------+--------------------------------+
| f89b24ed-42dd-48b0-   | ext-router | {"network_id": "6c4c1823-a203- |
|    8f4b-fd41887a3370  |            |    43b1-9674-ddb5ff4185fc",    |
|                       |            | "enable_snat": true,           |
|                       |            | "external_fixed_ips":          |
|                       |            | [{"subnet_id": "83d9b40f-cc61- |
|                       |            |    4696-b22e-b4cbc2aa3872",    |
|                       |            | "ip_address": "10.132.10.8"}]} |
+----------  -----------+------------+--------------------------------+

controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3
Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.

L3 エージェント構成を監視する方法

ipfippool、および ipnat などの IP フィルターコマンドおよび dladmipadm などのネットワークコマンドを使用すると、neturon-l3-agent によって実行された構成を監視し、トラブルシューティングすることができます。

  1. neutron-l3-agent によって作成された VNIC を表示します。
    network# dladm show-vnic
    LINK                OVER         SPEED  MACADDRESS        MACADDRTYPE VIDS
    l3i7843841e_0_0     net1         1000   2:8:20:42:ed:22   fixed       200
    l3i89289b8e_0_0     net1         1000   2:8:20:7d:87:12   fixed       201
    l3ed527f842_0_0     net0         100    2:8:20:9:98:3e    fixed       0
    
  2. neutron-l3-agent によって作成された IP アドレスを表示します。
    network# ipadm
    NAME                  CLASS/TYPE STATE   UNDER      ADDR
    l3ed527f842_0_0       ip         ok      --         --
      l3ed527f842_0_0/v4  static     ok      --         10.134.10.8/24
      l3ed527f842_0_0/v4a static     ok      --         10.134.10.9/32
    l3i7843841e_0_0       ip         ok      --         --
      l3i7843841e_0_0/v4  static     ok      --         192.168.100.1/24
    l3i89289b8e_0_0       ip         ok      --         --
      l3i89289b8e_0_0/v4  static     ok      --         192.168.101.1/24
  3. IP フィルタルールを表示します。
    network# ipfstat -io
    empty list for ipfilter(out)
    block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082
    block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578
    network# ippool -l
    table role = ipf type = tree number = 8226578
    { 192.168.100.0/24; };
    table role = ipf type = tree number = 4386082
    { 192.168.101.0/24; };
  4. IP NAT ルールを表示します。
    network# ipnat -l
    List of active MAP/Redirect filters:
    bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32
    List of active sessions:
    BIMAP 192.168.101.3  22  <- -> 10.134.13.9  22 [10.132.146.13 36405]