You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Intended ontology of IPAM: VRF model in Netbox? (Meant to represent the device-local instantiation of a VRF, or the extended/multi-device routing-domain of all nodes using the same route-targets values?)
#18020
I can't quite suss out what the authorial intent is with the VRF model in Netbox's IPAM application. On the one-hand, it includes a route-distinguisher field, which at least suggests that it's meant to represent the device-local VRF construct (since RD values need to be at least VRF-unique by device within an MP-BPG routing domain.) On the other hand; there's no foreign key relationship to the device table, making it un-tenable to "mean"/use-as that.
Alternatively, If it's meant to represent the extended/distributed routing-domain comprised by all the MP-BGP routers swapping routes with the same import-export values. In the MPLS or EVPN use-cases, I think this would essentially be a VPN-IPv4 address family (again, in the distributed/shared sense.) If that's the intent though, the presence of the RD field seems inappropriate.
Ideally, I'd like to be able to model both usages of the "VRF" concept, but I don't want to start ice-skating up-hill if one or the other is what was originally intended by the developers.
For my part, I've tried adding a "VRF-type" custom field, so that I can have entries for the shared/distributed VRF concept. (Which I can associate individual interface objects with). And I've also considered adding a custom-field that's a reference to the device model/object. In that scenario, I might end up with:
That let's me capture more-or-less everything I want to, but seems pretty janky to me. I think that the local-context usage is the more "important" one, in terms of modeling actual device configuration intent, but I do see the appeal in being able to easily/directly pluck a list of interfaces across dozens of different devices that are all in "the same VRF". I wonder if maybe it would make sense to lean fully into the device-local context data model, and setting the "VRF" field of the interface object to the device-local VRF object. And if we wanted to get a list of all interfaces "in the same VRF" across multiple devices, we'd need a more complex query (an outer join?) the grabbed all interfaces that were bound to VRF objects with matching route-target import/export values?
Anyone have any insights as to what the design intent is/was here? (Or any novel implementation strategies they've considered?)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I can't quite suss out what the authorial intent is with the VRF model in Netbox's IPAM application. On the one-hand, it includes a route-distinguisher field, which at least suggests that it's meant to represent the device-local VRF construct (since RD values need to be at least VRF-unique by device within an MP-BPG routing domain.) On the other hand; there's no foreign key relationship to the device table, making it un-tenable to "mean"/use-as that.
Alternatively, If it's meant to represent the extended/distributed routing-domain comprised by all the MP-BGP routers swapping routes with the same import-export values. In the MPLS or EVPN use-cases, I think this would essentially be a VPN-IPv4 address family (again, in the distributed/shared sense.) If that's the intent though, the presence of the RD field seems inappropriate.
Ideally, I'd like to be able to model both usages of the "VRF" concept, but I don't want to start ice-skating up-hill if one or the other is what was originally intended by the developers.
For my part, I've tried adding a "VRF-type" custom field, so that I can have entries for the shared/distributed VRF concept. (Which I can associate individual interface objects with). And I've also considered adding a custom-field that's a reference to the device model/object. In that scenario, I might end up with:
Devices
VRFs
That let's me capture more-or-less everything I want to, but seems pretty janky to me. I think that the local-context usage is the more "important" one, in terms of modeling actual device configuration intent, but I do see the appeal in being able to easily/directly pluck a list of interfaces across dozens of different devices that are all in "the same VRF". I wonder if maybe it would make sense to lean fully into the device-local context data model, and setting the "VRF" field of the interface object to the device-local VRF object. And if we wanted to get a list of all interfaces "in the same VRF" across multiple devices, we'd need a more complex query (an outer join?) the grabbed all interfaces that were bound to VRF objects with matching route-target import/export values?
Anyone have any insights as to what the design intent is/was here? (Or any novel implementation strategies they've considered?)
Beta Was this translation helpful? Give feedback.
All reactions