mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Make IP-addresses visible in prefixes of other VRFs #10287
Closed
opened 2025-12-29 21:29:26 +01:00 by adam
·
8 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#10287
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Nefti-sama on GitHub (Sep 25, 2024).
NetBox version
v4.1.1
Feature type
Change to existing functionality
Proposed functionality
If you create a prefix in VRF Global and create an IP-Address in VRF-2, the IP-Address should be visible in the prefix you created in VRF Global.
The same applies for prefixes and child-prefixes.
Use case
Why would one want to have that?
How could that be achieved (just brainstorming)?
Database changes
Depends
External dependencies
No response
@cruse1977 commented on GitHub (Sep 28, 2024):
If I log onto a router and show the global table, I don't see VRF routes. Likewise, in the main VRF's don't see other VRF routes, unless I specifically configure routing leaking - so your use case is against how most routers would work.
I think you need to flesh this out more, what you are describing is more akin to a l3 domain - but arguably its not VRF.
@Nefti-sama commented on GitHub (Oct 1, 2024):
I think you are mixing up how the real world works (which is like you describe it besides the fact that I do indeed see the transfer-networks in both VRFs that it connects) and how a useful display of information in the netbox GUI could be done.
My usecase addresses the display of information in the GUI. If you are doing a bit of IP address management you are quite happy to see the information that I describe without clicking to 15 different places.
This could also be achieved with selecting a "display-parent prefix" for each prefix which would overwrite the automatic placement. The key point is the ability to display information in a compact way without sacrificing/altering parameters that could be used for automation
@PieterL75 commented on GitHub (Oct 2, 2024):
Current behavior is : if your prefix is set to 'global' then you will see all of the child prefixes and the IPs of all VRFs. once you select a VRF for the prefix, then only the child prefix and IPs of that VRF will be shown.
@DanSheps commented on GitHub (Oct 2, 2024):
The main consumers of NetBox are Network Engineers. NetBox is designed to mimic the real-world where possible. To your proposal, I do not want my IP's that are in VRF ABC to be displayed in the global table, irregardless of whether or not there is containing active prefix.
This is your use case, but not the thousands of other users of NetBox.
I don't think we need to add any additional knobs for this. I don't think this is an option the vast majority of the community wants. That said, you are free to create a plugin to display this how you like using the existing models.
Not 100% true. Behaviour is:
If Prefix:
containerit will display those IPs
@Nefti-sama commented on GitHub (Oct 9, 2024):
Thats great, because I am a network engineer too - and I need that. And yes, Netbox shall mimic the real world (while it does not in many cases, just thinking of SFPs with multiple lanes that are broke out to multiple "physical" ports where you can't assign lanes to these ports or "use" the same SFP).
And you are right in the case where you don't want IP's "pop up" in other VRFs, that would be a disaster if it is unintentionally. But you can't deny the fact that it is currently not possible to accurately display the very real world example where there is a /30 network that connects 2 VRFs together. You would have the first IP sit in VRF1 and the second IP in VRF2 while the prefix can't sit in either (because its between those 2) and the IP's would be "orphaned" in the VRFs.
Netbox is not just about storing real world data. If you want to do that you create some database and push data into it or put files into a directory. The very fact that Netbox has a GUI and does some very incredible visualizations proof that. And I remember when Netbox did not have many of these things - apparently the community was asking for it and I am sure it was not the vast majority. I am also sure that there are many more already implemented features that this vast majority does not want or need (more "not need" than "not want").
The problem is that you do not know for sure. You have now way of knowing. Because ppl will probably workaround this problem by creating a "Interconnect VRF" or a "Loopback Pool VRF" where they put in the prefixes and IPs and use some syntax in the Comments or Tags (if even needed) to make it understandable to the automation what that fuzz is about. Most of them don't got through the effort of creating a GitHub issue and wait for days/weeks/months for this to be implemented. They need the solution now (because they stumbled across it) and creating an issue for the future is not relevant to them because they won't change their workaround anyways (it works fine for them). And this way they slowly deviate from the idea you defend so much: mimicing the real-world where possible
And yes, it is true, I can just create a plugin and be happy. But if everyone would have just created his own plugins, Netbox would miss out on many cool features that ppl love and wanted to use. And as I pointed out earlier, I assume for pretty much no feature the "vast majority" did ask for it.
I do not think being a plugin-hub is the way to go for Netbox but I also don't think every idea should be implemented. I layed down my arguments why I think this would be a good thing to have and I proposed two possible implementations: automatic or semi automatic - where I would argue that the semi-automatic would be more deterministic and would not result in addresses popping up in Global (or another VRF) where they should not be. There could also be a different solution that I did not think of.
@DanSheps commented on GitHub (Oct 9, 2024):
There is a parent/child relationship for exactly this reason within NetBox on the Interface model to specifically allow modelling a breakout cable.
The simple fact of the matter is, for consistency reasons, the data model cannot handle this use case, and it won't.
You have two choices:
The community is very active on both GitHub and slack, if a feature is missing, they will request it. We have had over 10K, we just recently crossed the 10000 issue mark, which just goes to show that we are in fact a very active community.
You can always release your plugin. Many people have released their plugins.
@jeremystretch commented on GitHub (Jan 23, 2025):
The proposed behavior would violate the intended functioning of VRFs in NetBox, which exist primarily to define isolated domains, as has been detailed above.
@PieterL75 commented on GitHub (Jan 23, 2025):
@DanSheps
This feature has been requested multiple times, by me and many others. The ISP workgroup is also asking for it.
The implementation of a VRF in NetBox is too limited. One IP range can be unique across vrfs, when these vrfs are interconnected ( firewall, leaking, redist in other protocol, ... ) and not only within the vrf.
I understand that the current implementation is deep in the logic, but maybe it is time to change that, before more routing logic is implemented and making it even more difficult.
Just my 5 cents, I really hope to see this in NetBox