in Openstack Neutron Netowrking ~ read.

Reutilizar una IP flotante en Openstack

alt

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:

[email protected]:~# 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:

alt

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

comments powered by Disqus