apache / apache/cloudstack

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

Offen
#13,184 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
component:networking type:improvement
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.4k
Ø Merge
6 T. 19 Std.
Gemergte PRs (30 T.)
32

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in server/src/main/java/com/cloud/network/IpAddressManagerImpl.java ungefähr bei Zeile 1641 und reproduziere den cloudmonkey create network-Befehl mit --srcipaddress. Verfolge die Validierung für den gerouteten Modus und Netzwerke ohne SourceNat, und überprüfe anschließend die VR-Bereitstellung mit einer manuell angegebenen öffentlichen IP-Adresse. Als erledigt gilt die Aufgabe, wenn der geroutete Modus die Adresse akzeptiert, während nicht unterstützte Netzwerktypen weiterhin abgelehnt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
cloud, networking
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.