mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-12 05:20:31 +01:00
Add new field to Device/VM models for out-of-band management IP address #5820
Closed
opened 2025-12-29 19:33:06 +01:00 by adam
·
21 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#5820
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 @bitcollector1 on GitHub (Dec 21, 2021).
Originally assigned to: @ITJamie on GitHub.
NetBox version
v3.1.2
Feature type
Data model extension
Proposed functionality
BMC IP address is a key management item we track as a custom field, it would be great if the Device Management Box had an option for this information.
Use case
Currently I need to drill down into the interfaces to see the BMC IP address. We are creating custom fields so this information is available on the device page for easy reference, same as the primary IPv4 address.
Database changes
No response
External dependencies
No response
@jeremystretch commented on GitHub (Dec 22, 2021):
I think what you're referring to as BMC is more generally known as an out-of-band (OOB) management IP (but correct me if I'm mistaken). NetBox has the concept of management-only interfaces (via the
mgmt_onlyboolean attribute), but as you note we don't currently provide a direct link from a device/VM to this IP address.As seen in the screenshot above, NetBox has two primary IP fields on the device and VM models:
primary_ip4andprimary_ip6. The genericprimary_ipattribute included in the REST API representation of a device or VM points to one or the other depending on the value of thePREFER_IPV4configuration parameter.I'm not sure we'd want to fully replicate this structure for an OOB IP address, but it might make sense to introduce only a single
oob_ipForeignKey field pointing to the desired OOB IP address. I'm open to other opinions.@sdktr commented on GitHub (Dec 22, 2021):
Seems like a great use case for 'computed fields'. A type of custom field that is rendered when accessed.
Assuming that the IP can be retrieved from the device object, by filtering on type 'mgmt_only', or a user defined tag.
@jeremystretch commented on GitHub (Dec 22, 2021):
It would need to be a discrete field, as there could be more than one OOB IP address.
@bitcollector1 commented on GitHub (Dec 22, 2021):
it's nothing critical, once you explained the model it seemed like it was more effort than it was worth. Thanks for consideration, love everything about NetBox. Hope you have a Merry X-Mas!!
@bluikko commented on GitHub (Dec 23, 2021):
Wouldn't BMC be modeled as just another Interface on a Device, perhaps following a naming convention for a uniform name?
@jeremystretch commented on GitHub (Jan 14, 2022):
The interface itself would, but I think there's value in introducing a direct relationship to the preferred OOB IP address as well.
I'm going to tag this for milestone assignment with the presumption that it will entail adding a single
oob_ipForeignKey field to the Device model.@bragatto commented on GitHub (Mar 13, 2022):
Wouldn't it make sense to add the BMC as a child device and have the server as the parent device?
@DanSheps commented on GitHub (Apr 6, 2022):
Please continue discussion from #9050 here
@ITJamie commented on GitHub (Apr 6, 2022):
Based on the convo from the other issue.
We could just look to add the ips of interfaces which have the mgmt_only boolean?
Though I guess thats also not perfect as people could add multiple ips to the interface with mgmt_only.
I can actually think of some older EMC san devices that have multiple ips on their "mgmt" interface even though only one of them is accessible, the others are used for some active/failover tests
Adding an additional foreign key like @jeremystretch mentioned seems like the most obvious solution
@bitcollector1 commented on GitHub (Sep 14, 2022):
just wanted to mention that we tried the workaround for this, the services thing, and it was less than ideal as when the IPMI address is changed it's not reflected in the service template. So this means it's just another thing that needs to be updated :(
@bitcollector1 commented on GitHub (Sep 14, 2022):
our users would love to have that IPMI address show up right there on the front page just like the primary IPv4 address does :)
@ITJamie commented on GitHub (Sep 23, 2022):
@jeremystretch Id be happy to attempt this in a PR if this is something you would consider this as acceptable?
@arthanson commented on GitHub (Jan 6, 2023):
@ITJamie Would you still be interested in working this and submitting a PR, potentially for the upcoming 3.5 release?
@ryanmerolle commented on GitHub (Mar 23, 2023):
pushed to 3.6 milestone
@ITJamie commented on GitHub (Jun 22, 2023):
@arthanson I would be interested in this if it's just another field to the existing models, if the idea is make a new relationships model to do what @jeremystretch mentioned on https://github.com/netbox-community/netbox/pull/11953#issuecomment-1502166006 then its probably best taken on by another maintainer
@jsenecal commented on GitHub (Jul 4, 2023):
After glancing over #13013 I believe I'm actually on the same page as @DanSheps in https://github.com/netbox-community/netbox/pull/11953#issuecomment-1555150918
IMHO this would be better fledged out as a m2m relationship with an intermediary model and some validation to prevent things like duplicate "Primary IPv4" addresses.
@ITJamie commented on GitHub (Jul 4, 2023):
ok. in which case id need a bit more guidance on how we want that to look (eg guidance on what the extra intermediary model should be called, and even some validation decisions eg can an ip have multiple relationships).
I would have initially suggested ip roles or ip services but theres kind of already terminology in netbox around both of those right now.
From a modeling pov. It would be similar to the FHRPGroupAssignment model with a static list of choices to begin with.
@DanSheps commented on GitHub (Jul 5, 2023):
My personal views on this:
@ITJamie commented on GitHub (Jul 5, 2023):
if we did
IPAddressDeviceFunctionalRoleit would hint that we would needIPAddressVDCFunctionalRoleandIPAddressVirtualMachineFunctionalRole.would we want that or would we want one relationships table to host all of them
here was a quick idea of what I had been thinking:
I would also assume that we are then going to accept that a whole new list/edit/view would exist for assigning these? or would we try to make it work the same way primary_ip assignments work right now
@ITJamie commented on GitHub (Jul 5, 2023):
ive created an initial POC of the m2m relationship - https://github.com/netbox-community/netbox/pull/13094/files. any feedback would be appreciated before I go further on this
@jeremystretch commented on GitHub (Jul 25, 2023):
As the scope of this FR was limited to introducing a field to track out-of-band IPs, and because I'd like this to ship in NetBoxv3.6, I've merged @ITJamie's PR #13013 mostly as-is. If anyone would like to propose a change to the underlying mechanism for tracking primary/OOB IP relationships, they are welcome to do so in a separate FR.