nautobot-app-firewall-models icon indicating copy to clipboard operation
nautobot-app-firewall-models copied to clipboard

Evaluate using dynamic groups inside of `AddressObject`

Open Kircheneer opened this issue 2 years ago • 3 comments

Environment

  • Nautobot version: 1.4.4
  • nautobot-plugin-firewall-model version: 1.1.0

Proposed Functionality

Allow AddressObjectGroup to source its members from a dynamic group. This could for example be a new ForeignKey field on the model pointing to DynamicGroup.

Use Case

All prefixes with the role user-lan should have access to a set of services. Instead of manually updating the policy rule (or NAT policy rule) whenever there are changes, we could instead use dynamic groups to automatically accomplish that.

Kircheneer avatar Oct 20 '22 09:10 Kircheneer

At this time the performance limitations with dynamic groups makes this a non-starter at scale. We should keep the issue and reevaluate pending performance improvements for dynamic groups.

Dynamic Groups start having performance degradation over the 500 groups count on a single content type.

whitej6 avatar Oct 24 '22 07:10 whitej6

I feel like the development and added functionality this would bring to this plugin would be worth it to keep moving forward, even if there is a warning or a opt in configuration parameter to enable this. Hopefully when the feature is ready in this plugin Nautobot Core would have an update... Because I really want this feature

nniehoff avatar Nov 21 '22 21:11 nniehoff

I have some work on logical grouping which is solving this from a different PoV. I see this really relevant when it comes to controller based systems and how each group is treated as unique and how the group has access to certain items depending on where it's at within the tree. From a firewall object modeling perspective some of the patterns in dynamic groups does not solve this problem case and introduces a level of complexity in managing uniqueness.

I'm open to discussions around the topic and personally would love to swap out <type>ObjectGroup to a generic upstream group & how we can assign X content types to the same group. I am committed to keeping this issue open until we have a more elegant solution available in the plugin/core.

whitej6 avatar Nov 22 '22 16:11 whitej6