每个实例都有一个私有固定的IP地址,也可以有一个公共浮动的IP地址。私有IP地址用于实例之间的通信,公共地址用于与云外的网络通信,包括互联网。
当您新建一个实例时,其便获得了一个永不变更的私有IP地址直到您明确的终结了该实例。重启一个实例不会影响其私有IP地址
浮动IP地址池在Openstack计算节点上由云管理员配置。项目额定定义了您可以分配给项目的浮动IP地址的最大数目。在您将一个浮动的IP地址分配给一个项目后,您可以:
使用:command:`openstack`命令管理浮动IP地址。
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 |
+---------------------------+--------------------------------------+
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 |
+-------------------------+--------------------------------------+
列出浮动IP池中提供的所有浮动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 |
+--------------------------------------+-------------+--------------------------------------+
列出分配给当前项目的所有浮动的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 |
+--------------------------------------+---------------------+------------------+------+
对于分配给当前项目的每个浮动IP地址,命令输出浮动的IP地址,浮动IP地址被分配的实例的标识,相关的固定IP地址,以及分配浮动IP地址的地址池。
你可以将一个浮动IP地址分配给一个项目和一个云主机
通过以下命令将浮动IP分配到当前项目。默认情况下,浮动IP是从公共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 |
+---------------------+--------------------------------------+
列出所有项目下可以分配浮动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 |
+---------------------+------+---------+------------+-------------+------------------+------------+
将IP地址与项目实例关联起来,如下:
$ openstack server add floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS
例如:
$ openstack server add floating ip VM1 172.24.4.225
该实例现与两个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地址并配置安全组规则之后,该实例将在浮动IP地址池中公开可用。
注解
The openstack server command does not allow users to associate a
floating IP address with a specific fixed IP address using the optional
--fixed-address
parameter, which legacy commands required as an
argument.
从实例中将浮动IP地址释放出来
$ openstack server remove floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS
从项目中移除浮动IP地址
$ openstack floating ip delete FLOATING_IP_ADDRESS
返回到IP地址池中的IP地址可用于所有项目。如果IP地址仍与运行中的实例相关联,它会自动从实例中释放出来
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.