Zmiana adresu IP instancji

W artykule Pierwsze kroki omówione zostały typy interfejsów sieciowych przypisywanych do instancji. W tym artykule dowiesz się, w jaki sposób zmienić adres IP przypisany do każdego rodzaju interfejsu.

W przypadku Floating IP oraz interfejsu w sieci External adres IP jest losowany z puli, nie ma możliwości wybrania konkretnego adresu. Taka możliwość występuje tylko w sieciach prywatnych, w pełni zarządzanych przez użytkownika.

Zmiana adresu IP wiąże się z ryzykiem utraty dostępu sieciowego do instancji – przed wykonaniem zmiany zalecamy utworzenie hasła na użytkowniku systemowym. Panel Atman Cloud oferuje możliwość zalogowania się do konsoli instancji.

Ten typ adresu jest najprostszy do zmiany. Zarządzanie Floating IP z poziomu panelu zostało opisane w tym artykule. W skrócie, aby zmienić adres należy najpierw odpiąć od instancji stary adres za pomocą opcji Disassociate Floating IP a następnie przypiąć inny adres wybierając Associate Floating IP. Zmiana adresu nastąpi natychmiast, nie ma potrzeby wykonywania działań po stronie systemu operacyjnego instancji.

Procedura polega na dodaniu nowego interfejsu sieciowego i usunięciu starego.

Po zmianie interfejsu należy wykonać restart instancji lub zalogować się do konsoli instancji i pobrać nowy adres po DHCP.

Zmieniamy adres opisanym wyżej sposobem, dodając nowy interfejs sieciowy i usuwając stary. W przypadku sieci prywatnej w oknie dodawania interfejsu w polu Fixed IP address możemy wskazać konkretny adres IP który zostanie przypisany do portu. Jeśli go nie wskażemy, adres zostanie wylosowany z puli.

Jeśli w sieci prywatnej działa DHCP po wykonaniu zmiany w panelu restartujemy instancję lub logujemy się do konsoli i pobieramy nowy adres. Jeśli DHCP jest wyłączone musimy dodać nowy adres do konfiguracji interfejsu sieciowego po stronie systemu operacyjnego instancji.

Instancja może mieć przypisane wiele interfejsów sieciowych, jednak jeśli przypiszemy do niej wiele adresów publicznych (Floating lub External) w praktyce działać będzie tylko jeden. Takie zachowanie wynika z zasady działania routingu – odpowiedź na ruch przychodzący ze świata z dowolnego interfejsu wysyłana jest jednym interfejsem z przypisaną default route.

Problem możemy rozwiązać na dwa sposoby. Pierwszy to zastosowanie wielu tablic routingu, przykładowo opisany tutaj.

Drugim sposobem jest utworzenie portu sieciowego z przypisanymi wieloma adresami IP i skonfigurowanie ich po stronie systemu operacyjnego instancji jako sub-interfejsy sieciowe. Do każdego z adresów możemy następnie przypisać inny Floating IP.

Przypisanie wielu adresów IP do jednego portu jest możliwe wyłącznie z poziomu CLI.

Na początek zbieramy potrzebne informacje: subnet i port uuid.

Sprawdzamy nazwę sieci:

nova list
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------+
| ID                                   | Name      | Status | Task State | Power State | Networks                    |
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------+
| 7754e22e-bc4f-46fc-bc53-a19b914dbd77 | instancja | ACTIVE | -          | Running     | siec-wewnetrzna=192.168.1.8 |
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------+

Znajdujemy subnet uuid dla sieci siec-wewnetrzna:

openstack network list
+--------------------------------------+-------------------+----------------------------------------------------------------------------+
| ID                                   | Name              | Subnets                                                                    |
+--------------------------------------+-------------------+----------------------------------------------------------------------------+
| 19f99d0d-e04b-4e88-bf13-f7d83cf8ff52 | EXTERNAL          | 2a426a8e-0158-46ad-9d82-cd716a895788, 41175650-8e5c-492a-9f59-238be3bb9d2b |
| 96e40db6-3857-45e0-a7a3-c49c17ceffed | siec-wewnetrzna   | 721d234d-87fb-4237-99e9-57c7ea1711e0                                       |
+--------------------------------------+-------------------+----------------------------------------------------------------------------+

Znajdujemy uuid portu podpiętego do instancji (192.168.1.8) oraz sprawdzamy zajęte adresy IP:

openstack port list
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| ID                                   | Name | MAC Address       | Fixed IP Addresses                                                         | Status |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| 1e8b1cd8-1789-4da0-8147-03327c193cb7 |      | fa:16:3e:f5:ea:07 | ip_address='192.168.1.8', subnet_id='721d234d-87fb-4237-99e9-57c7ea1711e0' | ACTIVE |
| 1ea7ea39-d741-401b-bf0f-3cba0db2d891 |      | fa:16:3e:21:65:4b | ip_address='192.168.1.4', subnet_id='721d234d-87fb-4237-99e9-57c7ea1711e0' | ACTIVE |
| 819db4ca-91d7-4930-8dd7-811fc55b25ea |      | fa:16:3e:bf:2f:bb | ip_address='192.168.1.2', subnet_id='721d234d-87fb-4237-99e9-57c7ea1711e0' | ACTIVE |
| cfd22782-7125-49b7-8364-71ef60f3be2e |      | fa:16:3e:45:0d:ad | ip_address='192.168.1.1', subnet_id='721d234d-87fb-4237-99e9-57c7ea1711e0' | ACTIVE |
| e941287c-6524-4b9c-bb9e-f5f3b1fef66c |      | fa:16:3e:a6:d5:3a | ip_address='192.168.1.3', subnet_id='721d234d-87fb-4237-99e9-57c7ea1711e0' | ACTIVE |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+

Następnie wykonujemy:

openstack port set --fixed-ip subnet=subnet-uuid,ip-address=IP port-uuid
openstack port set --fixed-ip subnet=721d234d-87fb-4237-99e9-57c7ea1711e0,ip-address=192.168.1.9 1e8b1cd8-1789-4da0-8147-03327c193cb7

Instancja ma teraz dwa adresy IP na jednym interfejsie sieciowym:

nova list
+--------------------------------------+-----------+--------+------------+-------------+------------------------------------------+
| ID                                   | Name      | Status | Task State | Power State | Networks                                 |
+--------------------------------------+-----------+--------+------------+-------------+------------------------------------------+
| 7754e22e-bc4f-46fc-bc53-a19b914dbd77 | instancja | ACTIVE | -          | Running     | siec-wewnetrzna=192.168.1.8, 192.168.1.9 |
+--------------------------------------+-----------+--------+------------+-------------+------------------------------------------+

Przy korzystaniu z tego sposobu zalecamy wyłączenie DHCP i skonfigurowanie statycznych adresów na sub-interfejsach.