apache / apache/cloudstack

Allow manual assignment of VR public IP address in Routed Mode networks

Abierto
#13,184 4 comentarios 0 reacciones 0 asignados Ver en GitHub
component:networking type:improvement
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
6 d 19 h
PR fusionados (30 d)
32

Descripción

### The required feature described as a wish

Hi,

**Description**

In routed mode networks, the VR currently receives its public IP address dynamically from the available public IP pool. There is no supported mechanism to manually assign or pin a specific public IP address to the VR itself.

For operators integrating CloudStack into existing routed infrastructure, deterministic VR public IP assignment is often required for:

- Upstream firewall rules
- Static routing policies
- BGP/edge integrations
- Monitoring and observability
- DNS and reverse DNS consistency
- HA/failover operational predictability
- Migration scenarios from existing infrastructure

**Current Behavior**

When a routed mode network is created, the VR public IP is automatically selected from the public IP range by CloudStack.

**Operators cannot:**

- Specify a desired public IP during network creation
- Reserve a public IP specifically for VR assignment
- Reassign the VR to a chosen public IP after deployment

**Proposed Feature**

As an Operator I would like to deterministicly assign public IP address of a VR in Routed Mode networks.

**Proof of Concept / Observed Behavior**

I tested this by modifying the validation logic that currently rejects --srcipaddress on networks without NAT enabled (which includes routed mode networks).

After relaxing the conditional check to allow --srcipaddress in routed networks [(Starting here)](https://github.com/apache/cloudstack/blob/5893ba5a8c00aa445be252e2dd0bc557b0cec3fc/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java#L1641), the VR was successfully deployed using the manually specified public IP and operated correctly.

This suggests the limitation is primarily an API/CLI validation restriction rather than a fundamental networking or VR capability limitation.

**Example**

**Current behavior:**

`cloudmonkey create network ... --srcipaddress=`

Give a result that the parameter srcipaddress is not supported for networks without SourceNat.

**Modified behavior:**

Allow srcipaddress for routed mode networks
VR deploys successfully with the specified public IP

**Suggestion**

The validation logic could potentially be updated to:

- Continue rejecting srcipaddress for unsupported network types
- Explicitly allow it for routed mode networks where deterministic VR addressing is desired

What are your thoughts?

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en server/src/main/java/com/cloud/network/IpAddressManagerImpl.java alrededor de la línea 1641 y reproduce el comando cloudmonkey create network con --srcipaddress. Rastrea la validación para el modo enrutado y las redes sin SourceNat, y después verifica el despliegue de VR con una IP pública especificada manualmente. La tarea está terminada cuando el modo enrutado acepta la dirección, mientras que los tipos de red no compatibles siguen siendo rechazados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
cloud, networking
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
52/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.