Allow manual assignment of VR public IP address in Routed Mode networks
- 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