mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Assign service to FHRP groups #5985
Closed
opened 2025-12-29 19:35:10 +01:00 by adam
·
11 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#5985
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 @topical on GitHub (Jan 21, 2022).
Originally assigned to: @jnovinger on GitHub.
NetBox version
v3.1.6
Feature type
New functionality
Proposed functionality
Be able to assign services to a FHRP group.
This can be done by either:
Use case
You have a service (e.g. HTTP) that is redundantly provided by 2 servers (e.g. web1, web2). For this, you define a FHRP group (e.g. "1"), add an IP address to it (say 192.168.100.100) and assign this group to both servers. Servers may be devices or virtual machines.
Now, you want to define the service somehow. Assigning it directly to a server is impossible, as the shared IP address is not shown (this is another topic). Assigning a service to the FHRP group is impossible too.
In my case, my monitoring system reads service definitions from NetBox, which is sadly impossible.
Workaround is to not use FHRP groups in NetBox but assign CARP IP addresses directly to server interfaces, but that's a step backwards.
Database changes
No response
External dependencies
No response
@github-actions[bot] commented on GitHub (Mar 23, 2022):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.
@jeremystretch commented on GitHub (Apr 6, 2022):
This will require ditching the current
deviceandvirtual_machinefields on the Service model in favor of a generic foreign key.@topical commented on GitHub (Apr 7, 2022):
I don't know how much has to be changed for this, but I would be really happy if this could be done. As described in my request, I cannot use FHRP yet because of this restriction.
@neuro42 commented on GitHub (Jul 6, 2022):
Service definitely needs some way to describe load balanced services, both layer 3/4 like LVS and layer 7. One ends up with two types of nodes involved in the service, however. The load balancer (where the IP gets bound/answers ARP/VRRP), and the service nodes (where the service actually runs, which are either NAT'd or don't answer ARP/VRRP). This is very similar to FHRP, but not quite the same. The gateway protocols FHRP covers are typically only on the LB, with the LB either having multiple NAT targets for the VIP (layer 7/LVS NAT), or the same IP configured, but not answering arp (LVS DR).
@thscma commented on GitHub (Aug 29, 2022):
I run into the same problem when I try to document exposed kubernetes services.
From my point of view, it make sense to assign a service only to an ip address and never direct to a device or vm.
The ip address could then assigned to an interface of a device or vm or via FHRP to interfaces at multiple devices/vm`s.
@topical commented on GitHub (Aug 31, 2022):
For me, this sounds like a perfect solution. Support of FHRP would be just a "side effect" of the change.
Apart from the work and the breaking changes there is one thing to consider: if a device/VM has multiple IP addresses, you need multiple service definitions. Especially with dual stack setups, this isn't really funny.
BTW: the way services are defined is not perfect in general. Services usually depend on the role of the device. E.g. with icinga this can be defined automagically, but this is far beyond this issue :)
@engageant commented on GitHub (Nov 17, 2022):
We're in need of this as well, and I'd also like to suggest that however this gets implemented that the services are still visible on the device or VM's main page.
@kfox1111 commented on GitHub (Nov 30, 2022):
We've also hit this, trying to roughly map k8s pods as netbox vm's.
@Yarli commented on GitHub (Dec 30, 2022):
I also hit this issue too.
We have 2 HA firewalls using CARP/FHRP groups for our public IP addresses which are shared across the 2 units.
Trying to assign an open port on a public IP address seem to only allow when the public IP is directly assigned to the device, therefore we can see the single CARP public ip per firewall, but not hte remaining shared (virtual IP's) assigned onthe FHRP group.
Oddly the "Service" section shows on the FHRP group, but i'm unsure how you would ever populate it when the requirement is there to specify a device of virtual machine. I feel a 3rd tab is needed for FHRP groups as well.
Having said all that, if you don't specify anything in the device/VM drop down, and then type your Public IP into the IP address box, it does let you select it, then if you go back up to the device box and type in the device and select it, you can then save the form and it then does show up against the FHRP group and on the device as well.
Maybe the filter on the IP address dropdown jsut needs extending to include any associated IP's via the FHRP groups as well ??
@mmfreitas commented on GitHub (Mar 24, 2023):
I also have the need to record the service on a FHRP Group IP Address, would love to see this in the next implementation of 3.5 or 3.6 if it's not too much of a hustle.
@Omripresent commented on GitHub (May 16, 2023):
I see it differently, in case of F5 and other highly available deployments, the actual used IP is never attached to a given interface, it would respond to ARP requests if the virtual address is on the same subnet as one of its vlan interfaces, or if the prefix is routed to the F5.
In those cases it would make more sense to be able to attach a server to a set of devices, physical or virtual, and associate an address to it (not restricted to ones attached to the devices).
This would more accurately represent the "real world" deployment.
In cases of HA Proxy and Keepalived for example, the same process can be used, the service address would be the same as of teh FHRP group and the associated devices would be the number of HA Proxy servers, this way there's flexibility to allow both use cases.