Title: Allow manual assignment of VR public IP address in Routed Mode networks · Issue #13184 · apache/cloudstack · GitHub
Open Graph Title: Allow manual assignment of VR public IP address in Routed Mode networks · Issue #13184 · apache/cloudstack
X Title: Allow manual assignment of VR public IP address in Routed Mode networks · Issue #13184 · apache/cloudstack
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 ...
Open Graph 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 supporte...
X 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 supporte...
Opengraph URL: https://github.com/apache/cloudstack/issues/13184
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Allow manual assignment of VR public IP address in Routed Mode networks","articleBody":"### The required feature described as a wish\n\nHi,\n\n**Description**\n\nIn 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.\n\nFor operators integrating CloudStack into existing routed infrastructure, deterministic VR public IP assignment is often required for:\n\n- Upstream firewall rules\n- Static routing policies\n- BGP/edge integrations\n- Monitoring and observability\n- DNS and reverse DNS consistency\n- HA/failover operational predictability\n- Migration scenarios from existing infrastructure\n\n**Current Behavior**\n\nWhen a routed mode network is created, the VR public IP is automatically selected from the public IP range by CloudStack.\n\n**Operators cannot:**\n\n- Specify a desired public IP during network creation\n- Reserve a public IP specifically for VR assignment\n- Reassign the VR to a chosen public IP after deployment\n\n**Proposed Feature**\n\nAs an Operator I would like to deterministicly assign public IP address of a VR in Routed Mode networks.\n\n**Proof of Concept / Observed Behavior**\n\nI tested this by modifying the validation logic that currently rejects --srcipaddress on networks without NAT enabled (which includes routed mode networks).\n\nAfter 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.\n\nThis suggests the limitation is primarily an API/CLI validation restriction rather than a fundamental networking or VR capability limitation.\n\n**Example**\n\n**Current behavior:**\n\n`cloudmonkey create network ... --srcipaddress=\u003cip\u003e`\n\nGive a result that the parameter srcipaddress is not supported for networks without SourceNat.\n\n**Modified behavior:**\n\nAllow srcipaddress for routed mode networks\nVR deploys successfully with the specified public IP\n\n**Suggestion**\n\nThe validation logic could potentially be updated to:\n\n- Continue rejecting srcipaddress for unsupported network types\n- Explicitly allow it for routed mode networks where deterministic VR addressing is desired\n\nWhat are your thoughts?\n","author":{"url":"https://github.com/vA-Ali","@type":"Person","name":"vA-Ali"},"datePublished":"2026-05-18T14:48:28.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4},"url":"https://github.com/13184/cloudstack/issues/13184"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:8a2ea255-f793-4d29-9b1d-66138fc4af99 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A1EC:475D7:6C8ADC:93FD55:6A4D6777 |
| html-safe-nonce | 3a5033ee571916b926dd6d3843a89b9cbf08352bbcca265499f4495585c882af |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMUVDOjQ3NUQ3OjZDOEFEQzo5M0ZENTU6NkE0RDY3NzciLCJ2aXNpdG9yX2lkIjoiNDQwNDg4OTY1NzM4MTYyMDM5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | eb638ef2ef21166921424328deaa5791397783ec2c389d2731970c2e4de1580c |
| hovercard-subject-tag | issue:4470096530 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/apache/cloudstack/13184/issue_layout |
| twitter:image | https://opengraph.githubassets.com/039af8c4f751c304776d119f1715eb2e690b101117a327d9c9860c29b1fc44e3/apache/cloudstack/issues/13184 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/039af8c4f751c304776d119f1715eb2e690b101117a327d9c9860c29b1fc44e3/apache/cloudstack/issues/13184 |
| og:image:alt | 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 supporte... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | vA-Ali |
| hostname | github.com |
| expected-hostname | github.com |
| None | 7db3950e3f59095e20a9789440c3dd554efc62d434882ead06ae05b5815605b9 |
| turbo-cache-control | no-preview |
| go-import | github.com/apache/cloudstack git https://github.com/apache/cloudstack.git |
| octolytics-dimension-user_id | 47359 |
| octolytics-dimension-user_login | apache |
| octolytics-dimension-repository_id | 9759448 |
| octolytics-dimension-repository_nwo | apache/cloudstack |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 9759448 |
| octolytics-dimension-repository_network_root_nwo | apache/cloudstack |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | cd8f6a71db61d6012a0cbb134be844fdbe9b8a45 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width