Hoy quería compartir un problema que he tenido en una instalación de
Openstack. Como sabéis, Openstack Neutron asigna IPs flotantes de manera
consecutiva y hasta que no se consuman todas las IPs del pool no
empieza a reciclar las IPs en desuso. En mi caso para evitar modificar
la configuración de firewalls, DNS y demás necesitaba rehusar esta misma
dirección IP para una instancia.
Tras desasignar la IP y eliminarse esta del Tenant, necesitaba asignarla de nuevo, a continuación os detallo como lo he realizado.
Esta configuración se hace a través de la base de datos de nuestra
infraestructura así que vamos a entrar desde un nodo de control a MySQL:
root@node-11:~# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 525603 Server version: 5.6.16-2~u14.04+mos2-log (Ubuntu), wsrep_25.5.rXXXX Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Usamos la BD de Neutron:
mysql> use neutron; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
Identificamos los pools de IPs que tenemos:
mysql> select * from ipavailabilityranges; +--------------------------------------+-------------+--------------+ | allocation_pool_id | first_ip | last_ip | +--------------------------------------+-------------+--------------+ | 1fbbfa85-bc2e-447a-8ddb-8436bb783706 | 10.50.1.48 | 10.50.1.254 | | 3271e259-2767-4234-816b-101ecf56e152 | 10.50.2.5 | 10.50.2.254 | | 5ebbce7f-21d6-43a6-be65-5165347eb29d | 10.20.15.35 | 10.20.15.254 | | d3f1f050-b3c7-4ac5-9318-33c194018e45 | 10.20.10.59 | 10.20.11.254 | | db102e26-4697-4957-8e68-0c24f656d1fd | 10.50.4.9 | 10.50.4.254 | +--------------------------------------+-------------+--------------+ 5 rows in set (0.00 sec)
Establecemos dentro del pool en cuestión la IP que queremos que sea asignada:
mysql> UPDATE ipavailabilityranges SET first_ip = '10.20.10.24' WHERE allocation_pool_id='d3f1f050-b3c7-4ac5-9318-33c194018e45'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
>NOTA: Es importante tener control sobre la asignación de IPs en
la infraestructura y mientras realicemos este proceso no se soliciten
IPs flotantes.
Asociamos la IP flotante a nuestra instancia:
Devolvemos la primera IP disponible a la que estaba establecida inicialmente para no tener problemas:
mysql> UPDATE ipavailabilityranges SET first_ip = '10.20.10.59' WHERE allocation_pool_id='d3f1f050-b3c7-4ac5-9318-33c194018e45'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Con este workaround podremos disponer de una IP reciclada de nuevo en nuestra instancia.
Jose Manuel Hernandez
[*1] Post image by Grant Hutchinson