Manage IP addresses Each instance can have a private, or fixed, IP address and an IP address, often public, that is movable from instance to instance called a floating IP address. Private IP addresses are used for communication between instances and public ones are used for communication with the outside world. When you launch an instance, it is automatically assigned a private IP address that stays the same until you explicitly terminate the instance. Rebooting an instance has no effect on its private IP address. A pool of floating IP addresses, configured by the cloud operator, is available in OpenStack Compute. You can allocate a certain number of these to a project. A project quota defines the maximum number of floating IP addresses for the project. You can add a floating IP address from this pool to an instance in the project. You can dynamically associate floating IP addresses with or disassociate floating IP addresses from instances in the same project at any time. Before you can assign a floating IP address to an instance, you must allocate floating IP addresses to a project. After you allocate floating IP addresses to the current project, you can assign them to running instances. You can assign one floating IP address to only one instance at a time. Use the nova *floating-ip-* commands to manage floating IP addresses. To manage floating IP addresses To list the floating IP address pools: $ nova floating-ip-pool-list +--------+ | name | +--------+ | public | | test | +--------+ To allocate a floating IP address to the current project: $ nova floating-ip-create +--------------+-------------+----------+--------+ | Ip | Instance Id | Fixed Ip | Pool | +--------------+-------------+----------+--------+ | 172.24.4.226 | None | None | public | +--------------+-------------+----------+--------+ By default, the floating IP address is allocated from the public pool. The command shows the allocated IP address. If more than one IP address pool is available, you can specify the pool from which to allocate the address: $ nova floating-ip-create POOL_NAME To list floating IP addresses that are allocated to the current project: $ nova floating-ip-list +--------------+--------------------------------------+----------+--------+ | Ip | Instance Id | Fixed Ip | Pool | +--------------+--------------------------------------+----------+--------+ | 172.24.4.225 | 4a60ff6a-7a3c-49d7-9515-86ae501044c6 | 10.0.0.2 | public | | 172.24.4.226 | None | None | public | +--------------+--------------------------------------+----------+--------+ For each floating IP address that is allocated to the current project, the command shows the floating IP address, the ID for the instance to which the floating IP address is assigned, the associated fixed IP address, and the pool from which the floating IP address was allocated. To associate a floating IP address with an instance, first allocate that address to the current project: $ nova floating-ip-create +--------------+-------------+----------+--------+ | Ip | Instance Id | Fixed Ip | Pool | +--------------+-------------+----------+--------+ | 172.24.4.226 | None | None | public | +--------------+-------------+----------+--------+ List instances to get the instance ID: $ nova list +--------------------------------------+-------------+--------+------------+-------------+--------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------+--------+------------+-------------+--------------------------------+ | 4a60ff6a-7a3c-49d7-9515-86ae501044c6 | my-instance | ACTIVE | None | Running | private=10.0.0.2, 172.24.4.225 | +--------------------------------------+-------------+--------+------------+-------------+--------------------------------+ Then, assign the floating IP address to the instance, as follows: $ nova add-floating-ip my-instance 172.24.4.226 Notice that the instance is now associated with two floating IP addresses: $ nova list +--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+ | 4a60ff6a-7a3c-49d7-9515-86ae501044c6 | my-instance | ACTIVE | None | Running | private=10.0.0.2, 172.24.4.225, 172.24.4.226 | +--------------------------------------+-------------+--------+------------+-------------+----------------------------------------------+ To assign a fixed IP address to a floating IP address that you assign to an instance, add the fixed IP address as an optional parameter: $ nova add-floating-ip --fixed-address=FIXED_IP_ADDRESS INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS After you assign the floating IP address and configure security group rules for the instance, the instance is publicly available at the floating IP address. To release a floating IP address from the current project: $ nova floating-ip-delete FLOATING_IP_ADDRESS The floating IP address is returned to the floating IP address pool that is available to all projects. If a floating IP address is assigned to a running instance, it is automatically disassociated from that instance.