Saltar a contenido

Las instancias no obtienen IP por DHCP

Cuando las instancias no obtienen IP por DHCP lo primero que vamos a hacer es revisar en el nodo de control el estado del servicio neutron-dhcp-agent.

# systemctl status neutron-dhcp-agent

Si el servicio de neutron-dhcp-agent está fallando veremos un mensaje de error similar al siguiente:

neutron.agent.dhcp.agent [-] Unable to enable dhcp for be690945-dd9f-462a-9fe0-59119be16d8d
Invalid parameter/value used on interface ns-0bf36ee0-31, namespace qdhcp-be690945-dd9f-462a-9fe0-59119be16d8d

El mensaje nos indica que hay un error en algún parámetro de la red que tiene el identificador:

be690945-dd9f-462a-9fe0-59119be16d8d

Obtenemos información de esa red desde el contenedor de utilidades:

root@infra1-utility-container-66441929:/# openstack network show be690945-dd9f-462a-9fe0-59119be16d8d
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| created_at                | 2024-10-14T09:47:37Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | be690945-dd9f-462a-9fe0-59119be16d8d |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 68                                   |
| name                      | Red 1                                |
| port_security_enabled     | True                                 |
| project_id                | bef1e9a937a2420da2eacd644feb250b     |
| provider:network_type     | vxlan                                |
| provider:physical_network | None                                 |
| provider:segmentation_id  | 232                                  |
| qos_policy_id             | None                                 |
| revision_number           | 3                                    |
| router:external           | Internal                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | db831cd5-2336-48b6-b322-92b5688ebb9f |
| tags                      |                                      |
| updated_at                | 2024-10-14T09:48:19Z                 |
+---------------------------+--------------------------------------+

En la información de la red podemos ver que el valor de MTU es 68 bytes y este puede ser el motivo del error.

Vamos a modificar el valor de MTU a 1450 bytes con el siguiente comando desde el contenedor de utilidades:

root@infra1-utility-container-66441929:/# openstack network set --mtu 1450 be690945-dd9f-462a-9fe0-59119be16d8d

Reiniciamos el servicio de neutron-dhcp-agent del nodo de control:

# systemctl restart neutron-dhcp-agent

Comprobamos el estado del servicio para asegurarnos que no hay errores:

# systemctl status neutron-dhcp-agent

Si no aparece ningún mensaje de error, podemos volver a reiniciar la instancia para comprobar si ahora obtiene una IP por DHCP.