Управление плавающими IP-адресами

Виртуальная машина, подключенная к виртуальной сети, может быть доступна из внешних сетей, таких как Интернет, через плавающий IP-адрес. Такой адрес берется из физической сети и сопоставляется с частным IP-адресом ВМ. Плавающий и частный IP-адреса используются одновременно на сетевом интерфейсе ВМ. Частный IP-адрес предназначен для связи с другими ВМ в виртуальной сети. Плавающий IP-адрес предназначен для доступа к ВМ из внешних сетей. Гостевая операционная система ВМ не имеет сведений о назначенном плавающем IP-адресе.

Предварительные требования

  • Создан виртуальный маршрутизатор, как описано в разделе Создание виртуальных маршрутизаторов.
  • У виртуальной машины, которой следует назначить плавающий IP-адрес, есть фиксированный частный IP-адрес.
  • Виртуальный маршрутизатор соединяет физическую сеть, из которой будет взят плавающий IP-адрес, с виртуальной сетью ВМ.

Как создать плавающий IP-адрес и назначить его виртуальной машине

Панель администратора

  1. На экране Плавающие IP-адреса нажмите Добавить плавающий IP-адрес.
  2. В окне Добавить плавающий IP-адрес выберите физическую сеть, из которой будет взят плавающий IP, и сетевой интерфейс ВМ с фиксированным частным IP-адресом.

  3. Нажмите Добавить.

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute floatingip create [--floating-ip <floating-ip>]
                                         [--port-id <port-id>]
                                         [--fixed-ip <fixed-ip>]
                                         [--description <description>]
                                         --network <network>
--floating-ip <floating-ip>
Плавающий IP-адрес.
--port-id <port-id>
Идентификатор порта, который будет связан с плавающим IP-адресом. Чтобы узнать идентификатор порта выбранной виртуальной машины, используйте команду vinfra service compute server iface list.
--fixed-ip <fixed-ip>
IP-адрес порта (требуется, только если у порта несколько IP-адресов).
--description <description>
Описание плавающего IP-адреса.
--network <network>
Идентификатор или имя сети, из которой будет выделен плавающий IP-адрес.

Например, чтобы создать плавающий IP-адрес из физической сети public и назначить его виртуальной машине на порт с идентификатором 418c8c9e-aaa5-42f2-8da7-24bfead6f28b и виртуальным IP-адресом 192.168.128.5, выполните:

# vinfra service compute floatingip create public --port-id 418c8c9e-aaa5-42f2-8da7-24bfead6f28b \
--fixed-ip-address 192.168.128.5
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attached_to         | a172cb6a-1c7b-4157-9e86-035f3077646f |
| description         |                                      |
| fixed_ip_address    | 192.168.128.5                        |
| floating_ip_address | 10.94.129.72                         |
| floating_network_id | 720e45bc-4225-49de-9346-26513d8d1262 |
| id                  | a709f884-c43f-4a9a-a243-a340d7682ef8 |
| port_id             | 418c8c9e-aaa5-42f2-8da7-24bfead6f28b |
| project_id          | 894696133031439f8aaa7e4868dcbd4d     |
| router_id           | f7f86029-a553-4d61-b7ec-6f581d9c5f5f |
| status              | DOWN                                 |
+---------------------+--------------------------------------+

Созданный плавающий IP-адрес появится в выводе команды vinfra service compute floatingip list:

# vinfra service compute floatingip list -c id -c fixed_ip_address -c port_id -c floating_ip_address
+----------------+------------------+----------------+---------------------+
| id             | fixed_ip_address | port_id        | floating_ip_address |
+----------------+------------------+----------------+---------------------+
| a709f884-<...> | 192.168.128.5    | 418c8c9e-<...> | 10.94.129.72        |
+----------------+------------------+----------------+---------------------+

Как получить сведения о плавающем IP-адресе

Используйте следующую команду:

vinfra service compute floatingip show <floating-ip>
<floating-ip>
Идентификатор плавающего IP-адреса.

Например, чтобы вывести сведения о плавающем IP-адресе с идентификатором a709f884-c43f-4a9a-a243-a340d7682ef8, выполните:

# vinfra service compute floatingip show a709f884-c43f-4a9a-a243-a340d7682ef8
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attached_to         | a172cb6a-1c7b-4157-9e86-035f3077646f |
| description         |                                      |
| fixed_ip_address    | 192.168.128.5                        |
| floating_ip_address | 10.94.129.72                         |
| floating_network_id | 720e45bc-4225-49de-9346-26513d8d1262 |
| id                  | a709f884-c43f-4a9a-a243-a340d7682ef8 |
| port_id             | 418c8c9e-aaa5-42f2-8da7-24bfead6f28b |
| project_id          | 894696133031439f8aaa7e4868dcbd4d     |
| router_id           | f7f86029-a553-4d61-b7ec-6f581d9c5f5f |
| status              | ACTIVE                               |
+---------------------+--------------------------------------+

Как переназначить плавающий IP-адрес другой виртуальной машине

Панель администратора

  1. Нажмите значок с многоточием напротив плавающего IP-адреса и выберите Снять назначение.
  2. Когда имя ВМ исчезнет из столбца Назначен, снова нажмите значок с многоточием и выберите Назначить.
  3. В окне Назначить плавающий IP-адрес выберите сетевой интерфейс ВМ с фиксированным частным IP-адресом.
  4. Нажмите Назначить.

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute floatingip set [--port-id <port-id>] [--fixed-ip <fixed-ip>]
                                      [--description <description>] <floating-ip>
--port-id <port-id>
Идентификатор порта, который будет связан с плавающим IP-адресом.
--fixed-ip <fixed-ip>
IP-адрес порта (требуется, только если у порта несколько IP-адресов).
--description <description>
Описание плавающего IP-адреса.
<floating-ip>
Идентификатор плавающего IP-адреса.

Например, чтобы назначить плавающий IP-адрес с идентификатором a709f884-c43f-4a9a-a243-a340d7682ef8 виртуальной машине на порт с идентификатором 8c11c29b-9a73-4017-baff-1e872b18b54b и виртуальным IP-адресом 192.128.30.15, выполните:

# vinfra service compute floatingip set a709f884-c43f-4a9a-a243-a340d7682ef8 \
--port-id 8c11c29b-9a73-4017-baff-1e872b18b54b --fixed-ip-address 192.128.30.15
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attached_to         | 3a092f6f-bbaf-47a9-bcc7-f86223aacb55 |
| description         |                                      |
| fixed_ip_address    | 192.128.30.15                        |
| floating_ip_address | 10.94.129.72                         |
| floating_network_id | 720e45bc-4225-49de-9346-26513d8d1262 |
| id                  | a709f884-c43f-4a9a-a243-a340d7682ef8 |
| port_id             | 8c11c29b-9a73-4017-baff-1e872b18b54b |
| project_id          | 894696133031439f8aaa7e4868dcbd4d     |
| router_id           | f7f86029-a553-4d61-b7ec-6f581d9c5f5f |
| status              | ACTIVE                               |
+---------------------+--------------------------------------+

Как удалить плавающий IP-адрес

Панель администратора

  1. Отмените его назначение виртуальной машине. Нажмите значок с многоточием напротив плавающего IP-адреса и выберите Снять назначение.
  2. Снова нажмите значок с многоточием и выберите Удалить.

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute floatingip delete <floating-ip>
<floating-ip>
Идентификатор плавающего IP-адреса.

Например, чтобы удалить плавающий IP-адрес с идентификатором a709f884-c43f-4a9a-a243-a340d7682ef8, выполните:

# vinfra service compute floatingip delete a709f884-c43f-4a9a-a243-a340d7682ef8
Operation successful