IP アドレスの管理

IP アドレスの管理

各インスタンスは、プライベートな Fixed IP アドレスを持ちます。また、パブリックな Floating IP アドレスも持てます。プライベート IP アドレスは、インスタンス間の通信に使用されます。パブリックアドレスは、インターネットなどのクラウド外のネットワークと通信するために使用されます。

インスタンスを起動すると、プライベート IP アドレスが割り当てられ、インスタンスを明示的に終了するまで、この IP アドレスは変わりません。インスタンスをリブートしても、プライベート IP アドレスには影響はありません。

Floating IP アドレスのプールは、クラウド管理者により設定され、OpenStack Compute で利用できます。プロジェクトのクォータが、プロジェクトに確保できる Floating IP アドレスの最大数を定義します。プロジェクトに Floating IP アドレスを確保した後、以下を実行できます。

  • Floating IP アドレスをプロジェクトのインスタンスに割り当てます。Floating IP アドレスは、同時に 1 つだけインスタンスに割り当てられます。
  • プロジェクトのインスタンスから Floating IP アドレスの割り当てを解除します。
  • プロジェクトから Floating IP アドレスを削除します。削除すると、その IP の割り当てが自動的に解除されます。

openstack コマンドを使用して、Floating IP アドレスを管理します。

Create an external network

  1. Create an external network named public:
$ openstack network create public --external

+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2017-05-18T05:06:06Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | 5a6c74b9-5659-4b9e-951e-85ffca212139 |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | False                                |
| mtu                       | 1450                                 |
| name                      | public                               |
| port_security_enabled     | False                                |
| project_id                | b3abf186ac64462e85741315376e9ca7     |
| provider:network_type     | vxlan                                |
| provider:physical_network | None                                 |
| provider:segmentation_id  | 9                                    |
| qos_policy_id             | None                                 |
| revision_number           | 3                                    |
| router:external           | External                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| updated_at                | 2017-05-18T05:06:06Z                 |
+---------------------------+--------------------------------------+
  1. Create a subnet of the public external network:
$ openstack subnet create --network public --subnet-range 172.24.4.0/24 public_subnet

+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| allocation_pools        | 172.24.4.2-172.24.4.254              |
| cidr                    | 172.24.4.0/24                        |
| created_at              | 2017-05-18T05:16:46Z                 |
| description             |                                      |
| dns_nameservers         |                                      |
| enable_dhcp             | True                                 |
| gateway_ip              | 172.24.4.1                           |
| host_routes             |                                      |
| id                      | f61a73b3-6097-48ff-b7ef-98da203e6b18 |
| ip_version              | 4                                    |
| ipv6_address_mode       | None                                 |
| ipv6_ra_mode            | None                                 |
| name                    | public_subnet                        |
| network_id              | 5a6c74b9-5659-4b9e-951e-85ffca212139 |
| project_id              | b3abf186ac64462e85741315376e9ca7     |
| revision_number         | 2                                    |
| segment_id              | None                                 |
| service_types           |                                      |
| subnetpool_id           | None                                 |
| updated_at              | 2017-05-18T05:16:46Z                 |
| use_default_subnet_pool | None                                 |
+-------------------------+--------------------------------------+

Floating IP アドレスの情報の表示

Floating IP アドレスを提供するプールをすべて表示するために、以下を実行します。

$ openstack floating ip pool list
+--------+
| name   |
+--------+
| public |
| test   |
+--------+

注釈

If this list is empty, the cloud administrator must configure a pool of floating IP addresses. This command is only available in nova-network. If you use the OpenStack Networking service, run the following command to list external networks:

$ openstack network list --external

+--------------------------------------+-------------+--------------------------------------+
| ID                                   | Name        | Subnets                              |
+--------------------------------------+-------------+--------------------------------------+
| 5a6c74b9-5659-4b9e-951e-85ffca212139 | public      | f61a73b3-6097-48ff-b7ef-98da203e6b18 |
| 9839a22d-33b7-4173-9708-985f091bb892 | public1     | 19f1fbb4-f411-4465-8ed9-b641c7fc73d0 |
+--------------------------------------+-------------+--------------------------------------+

現在のプロジェクトに確保されている、すべての Floating IP アドレスを一覧表示するために、以下を実行します。

$ openstack floating ip list
+--------------------------------------+---------------------+------------------+------+
| ID                                   | Floating IP Address | Fixed IP Address | Port |
+--------------------------------------+---------------------+------------------+------+
| 760963b2-779c-4a49-a50d-f073c1ca5b9e | 172.24.4.228        | None             | None |
| 89532684-13e1-4af3-bd79-f434c9920cc3 | 172.24.4.235        | None             | None |
| ea3ebc6d-a146-47cd-aaa8-35f06e1e8c3d | 172.24.4.229        | None             | None |
+--------------------------------------+---------------------+------------------+------+

現在のプロジェクトに確保されている各 Floating IP アドレスに対して、このコマンドは、Floating IP アドレス、Floating IP アドレスが割り当てられたインスタンスの ID、関連付けられた Fixed IP アドレス、Floating IP アドレスが確保されたプールを出力します。

Floating IP アドレスの割り当て

Floating IP アドレスをプロジェクトやインスタンスに割り当てられます。

  1. 現在のプロジェクトに Floating IP アドレスを確保するために、以下のコマンドを実行します。Floating IP はデフォルトで、パブリックのプールから確保されます。このコマンドは、確保した IP アドレスを出力します。

    $ openstack floating ip create public
    +---------------------+--------------------------------------+
    | Field               | Value                                |
    +---------------------+--------------------------------------+
    | created_at          | 2017-03-30T12:35:25Z                 |
    | description         |                                      |
    | fixed_ip_address    | None                                 |
    | floating_ip_address | 172.24.4.230                        |
    | floating_network_id | c213f520-aade-42eb-8bf1-6826505d74bb |
    | id                  | 1e777f9e-4fc8-4df8-be6f-89f5caba3c0f |
    | name                | None                                 |
    | port_id             | None                                 |
    | project_id          | b3abf186ac64462e85741315376e9ca7     |
    | revision_number     | 1                                    |
    | router_id           | None                                 |
    | status              | DOWN                                 |
    | updated_at          | 2017-03-30T12:35:25Z                 |
    +---------------------+--------------------------------------+
    
  2. プロジェクトのすべてのインスタンス、割り当てられた Floating IP アドレスを一覧表示します。

    $ openstack server list
    +---------------------+------+---------+------------+-------------+------------------+------------+
    | ID                  | Name | Status  | Task State | Power State | Networks         | Image Name |
    +---------------------+------+---------+------------+-------------+------------------+------------+
    | d5c854f9-d3e5-4f... | VM1  | ACTIVE  | -          | Running     | private=10.0.0.3 | cirros     |
    | 42290b01-0968-43... | VM2  | SHUTOFF | -          | Shutdown    | private=10.0.0.4 | centos     |
    +---------------------+------+---------+------------+-------------+------------------+------------+
    
  3. 以下のように、IP アドレスをプロジェクトのインスタンスに割り当てます。

    $ openstack server add floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS
    

    例:

    $ openstack server add floating ip VM1 172.24.4.225
    

    インスタンスに 2 つの IP アドレスが関連付けられます。

    $ openstack server list
    +------------------+------+--------+------------+-------------+-------------------------------+------------+
    | ID               | Name | Status | Task State | Power State | Networks                      | Image Name |
    +------------------+------+--------+------------+-------------+-------------------------------+------------+
    | d5c854f9-d3e5... | VM1  | ACTIVE | -          | Running     | private=10.0.0.3, 172.24.4.225| cirros     |
    | 42290b01-0968... | VM2  | SHUTOFF| -          | Shutdown    | private=10.0.0.4              | centos     |
    +------------------+------+--------+------------+-------------+-------------------------------+------------+
    

    インスタンスに IP アドレスを割り当てて、セキュリティーグループルールを設定してから、インスタンスを Floating IP アドレスで公開します。

    注釈

    openstack server コマンドは、ユーザーがオプションの --fixed-address パラメーターを使用して、指定した固定 IP アドレスに Floating IP アドレスを関連づけることができません。これは、前のコマンドはこの引数を必要としました。

Floating IP アドレスの割り当て解除

インスタンスから Floating IP アドレスの関連付けを解除する方法:

$ openstack server remove floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS

プロジェクトから Floating IP アドレスを削除する方法:

$ openstack floating ip delete FLOATING_IP_ADDRESS

IP アドレスは、すべてのプロジェクトで利用できるように IP アドレスのプールに戻されます。IP アドレスが実行中のインスタンスにまだ割り当てられていると、そのインスタンスから自動的に割り当て解除されます。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.