apache / apache/cloudstack

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

Ouverte
#13,184 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
component:networking type:improvement
Langage dominant
Java
Étoiles
3.1k
Forks
1.4k
Merge moyen
6 j 19 h
PR mergées (30 j)
32

Description

### 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?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez dans server/src/main/java/com/cloud/network/IpAddressManagerImpl.java autour de la ligne 1641 et reproduisez la commande cloudmonkey create network avec --srcipaddress. Suivez la validation du mode routé et des réseaux sans SourceNat, puis vérifiez le déploiement de la VR avec une adresse IP publique spécifiée manuellement. La tâche est terminée lorsque le mode routé accepte l’adresse, tandis que les types de réseau non pris en charge restent rejetés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
cloud, networking
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
52/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.