ネットワークオプション 2 を選択した場合、セルフサービス (プライベート) ネットワークも作成でき、このネットワークは NAT 経由で物理ネットワークインフラに接続されます。このネットワークには、インスタンスに IP アドレスを提供する DHCP サーバーがあります。このネットワークにあるインスタンスは、インターネットなどの外部ネットワークに自動的にアクセスできます。ただし、インターネットなどの外部ネットワークからこのネットワークにあるインスタンスにアクセスする場合、Floating IP アドレス が必要です。
demo
ユーザーや他の非特権ユーザーはこのネットワークを作成できます。なぜなら、このネットワークは demo
プロジェクト内のインスタンスに対する接続性のみを提供するからです。
警告
セルフサービスネットワークの前に プロバイダーネットワークを作成する 必要があります。
注釈
以下の説明と図は、サンプルの IP アドレス範囲を使用します。お使いの環境に合わせて調整する必要があります。
ネットワークオプション 2: セルフサービスネットワーク - 概要
ネットワークオプション 2: セルフサービスネットワーク - 接続
コントローラーノードにおいて、demo
クレデンシャルを読み込み、利用者用の CLI コマンドへのアクセス権を取得します。
$ . demo-openrc
ネットワークを作成します。
$ openstack network create selfservice
Created a new network:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2016-11-04T18:20:59Z |
| description | |
| headers | |
| id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| mtu | 1450 |
| name | selfservice |
| port_security_enabled | True |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 3 |
| router:external | Internal |
| shared | False |
| status | ACTIVE |
| subnets | |
| tags | [] |
| updated_at | 2016-11-04T18:20:59Z |
+-------------------------+--------------------------------------+
非特権ユーザーは、一般的にこのコマンドに追加パラメーターを指定できません。サービスは、以下のファイルの情報を使用して、自動的にパラメーターを選択します。
ml2_conf.ini
:
[ml2]
tenant_network_types = vxlan
[ml2_type_vxlan]
vni_ranges = 1:1000
ネットワークにサブネットを作成します。
$ openstack subnet create --network selfservice \
--dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \
--subnet-range SELFSERVICE_NETWORK_CIDR selfservice
DNS_RESOLVER
は DNS リソルバーの IP アドレスで置き換えます。ほとんどの場合、ホストの /etc/resolv.conf
に書かれているアドレスのいずれかが使用できるでしょう。
SELFSERVICE_NETWORK_GATEWAY
をセルフサービスネットワークにおいて使用したいゲートウェイに置き換えます。通常は「.1」の IP アドレスです。
SELFSERVICE_NETWORK_CIDR
をセルフサービスネットワークに使用したいサブネットに置き換えます。RFC 1918 にあるネットワークを使用することを推奨しますが、任意の値を使用できます。
例
セルフサービスネットワークは 172.16.1.0/24 を使用し、ゲートウェイは 172.16.1.1 です。 DHCP サーバーは、各インスタンスに 172.16.1.2 から 172.16.1.254 までの範囲の IP アドレスを割り当てます。すべてのインスタンスは DNS リゾルバーとして 8.8.4.4 を使用します。
$ openstack subnet create --network selfservice \
--dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
--subnet-range 172.16.1.0/24 selfservice
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 172.16.1.2-172.16.1.254 |
| cidr | 172.16.1.0/24 |
| created_at | 2016-11-04T18:30:54Z |
| description | |
| dns_nameservers | 8.8.4.4 |
| enable_dhcp | True |
| gateway_ip | 172.16.1.1 |
| headers | |
| host_routes | |
| id | 5c37348e-e7da-439b-8c23-2af47d93aee5 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | selfservice |
| network_id | b9273876-5946-4f02-a4da-838224a144e7 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 2 |
| service_types | [] |
| subnetpool_id | None |
| updated_at | 2016-11-04T18:30:54Z |
+-------------------+--------------------------------------+
セルフサービスネットワークは、仮想ルーターを使ってプロバイダーネットワークと接続され、通常仮想ルーターでは双方向 NAT が行われます。各ルーターは、少なくとも 1 つのセルフサービスネットワークに接続されるインターフェースと、プロバイダーネットワークに接続されるゲートウェイを持ちます。
The provider network must include the router:external
option to
enable self-service routers to use it for connectivity to external networks
such as the Internet. The admin
or other privileged user must include this
option during network creation or add it later. In this case, the
router:external
option was set by using the --external
parameter
when creating the provider
network.
コントローラーノードにおいて、admin
クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
$ . admin-openrc
demo
クレデンシャルを読み込み、利用者用 CLI コマンドへのアクセス権を取得します。
$ . demo-openrc
ルーターを作成します。
$ openstack router create router
Created a new router:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2016-11-04T18:32:56Z |
| description | |
| external_gateway_info | null |
| flavor_id | None |
| headers | |
| id | 67324374-396a-4db6-9443-c70be167a42b |
| name | router |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 2 |
| routes | |
| status | ACTIVE |
| updated_at | 2016-11-04T18:32:56Z |
+-------------------------+--------------------------------------+
ルーターのインターフェースとして、セルフサービスネットワークのサブネットを追加します。
$ neutron router-interface-add router selfservice
Added interface bff6605d-824c-41f9-b744-21d128fc86e1 to router router.
ルーターにおいて、ゲートウェイをプロバイダーネットワークに設定します。
$ neutron router-gateway-set router provider
Set gateway for router router
この先に進む前に、動作を検証して、問題をすべて解決しておくことを推奨します。以下の手順は、ネットワークとサブネットの作成例にある IP アドレス範囲を使用しています。
コントローラーノードにおいて、admin
クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
$ . admin-openrc
ネットワーク名前空間を一覧表示します。1 つの qrouter
名前空間と 2 つの qdhcp
名前空間があるでしょう。
$ ip netns
qrouter-89dd2083-a160-4d75-ab3a-14239f01ea0b
qdhcp-7c6f9b37-76b4-463e-98d8-27e5686ed083
qdhcp-0e62efcd-8cee-46c7-b163-d8df05c3c5ad
ルーターのポートを一覧表示して、プロバイダーネットワークのゲートウェイ IP アドレスを確認します。
$ neutron router-port-list router
+--------------------------------------+------+-------------------+------------------------------------------+
| id | name | mac_address | fixed_ips |
+--------------------------------------+------+-------------------+------------------------------------------+
| bff6605d-824c-41f9-b744-21d128fc86e1 | | fa:16:3e:2f:34:9b | {"subnet_id": |
| | | | "3482f524-8bff-4871-80d4-5774c2730728", |
| | | | "ip_address": "172.16.1.1"} |
| d6fe98db-ae01-42b0-a860-37b1661f5950 | | fa:16:3e:e8:c1:41 | {"subnet_id": |
| | | | "5cc70da8-4ee7-4565-be53-b9c011fca011", |
| | | | "ip_address": "203.0.113.102"} |
+--------------------------------------+------+-------------------+------------------------------------------+
コントローラーノードまたは物理プロバイダーネットワークにあるホストから、この IP アドレスに ping します。
$ ping -c 4 203.0.113.102
PING 203.0.113.102 (203.0.113.102) 56(84) bytes of data.
64 bytes from 203.0.113.102: icmp_req=1 ttl=64 time=0.619 ms
64 bytes from 203.0.113.102: icmp_req=2 ttl=64 time=0.189 ms
64 bytes from 203.0.113.102: icmp_req=3 ttl=64 time=0.165 ms
64 bytes from 203.0.113.102: icmp_req=4 ttl=64 time=0.216 ms
--- 203.0.113.102 ping statistics ---
rtt min/avg/max/mdev = 0.165/0.297/0.619/0.187 ms
インスタンスの起動 - 仮想ネットワークの作成 に戻ります。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.