mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Mark an interface as connected without connecting it to anything #2981
Closed
opened 2025-12-29 18:24:20 +01:00 by adam
·
18 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#2981
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 @millijuna on GitHub (Oct 28, 2019).
Originally assigned to: @jeremystretch on GitHub.
Environment
Proposed Functionality
It would be very useful to me if I could mark interfaces as "Connected" and have them show as such, including both the text and the interface colour, without actually connecting them to anything.
Use Case
The main use case here is on access switches, where the device at the other end of the wire is beyond the scope of the networking team. It would be great if we could put in an interface description (for example "Accounting Office J12" and simply mark the interface as connected.
In our environment, this description would then match the description found on the interface in the switch configuration itself. These are just access ports, nothing more.
There are workarounds that can be done (creating a patch panel with interfaces and connecting to that) but that seems hacky, and not as clean as simply being able to mark an interface as "connected"
Database Changes
Unknown, but may require changes to permit an interface showing as connected with a null link to a cable.
External Dependencies
None.
@ljb2of3 commented on GitHub (Oct 30, 2019):
I'd find this one useful! I'd love to be able to track what switch ports are connected in our IDFs where we don't keep track of anything beyond the patch panel.
@kobayashi commented on GitHub (Nov 2, 2019):
Thank you for this issue.
I understand your situation because I have same issue. However, connection state should be 'connected' when connecting 2 ports between devices which are registered in netbox IMO.
As my workaround, I am adding 'unmanaged devices/ports' which are managed by others in netbox, then connect from my side to them. I hope this may be a solution for you.
@millijuna commented on GitHub (Nov 2, 2019):
I’d respectfully disagree with that... the very fact that you’re creating unmanaged devices/ports in your database means that you are tracking/creating/working on them.
If you’re just putting them in there and not looking after them, that means you’re polluting the database with all sorts of devices that don’t actually exist (or at least aren’t representative). For something that’s supposed to be a “source of truth”, filling it with bogus information seems like a bad idea. I mean, I could just create my patch panels with interfaces rather than front/rear ports, and satisfy things, but then my system is containing bogus data just to make things look pretty.
IMHO, being able to simply pick “unmanaged device” or something without creating the requisite cable/model/device would be the best option.
@DanSheps commented on GitHub (Nov 4, 2019):
You should have your switch connected to a patch panel or some other termination using front/rear ports. This will result in a "proper" connection state on the switch, but the termination front/rear port just won't be connected to anything, which would be valid.
It would be an even bigger faux pas in my opinion, to have it connected but not at least try and describe the connection. There will always be a cable. It also isn't that the information is bogus, it is that it is outside of the scope of the team. You could create a unnamed device and say "Desktop Device" and that would be completely accurate.
As an example, in our own instance for access layer switches we are doing the following:
Switch <> Panel Front Port // Panel Rear Port <> Termination Rear Port // Termination Front Port
Switch to Panel Front Port is connected, Panel Rear Port to Termination Rear Port is connected, Termination Front Port is out of scope (normally) and is left as-is. This also gives you a cable trace up to the device that should be plugged in.
@robweber commented on GitHub (Nov 4, 2019):
I'm mirroring the setup you describe (using front/rear termination points) but it still seems like not the best solution to me. I concur it would be nice if there was some option on the far end of a connection to flag it as connected to "something" that was unmanaged; be it desktop, IP phone, etc. This would complete the connection path and allow it to be shown as connected.
The situation you describe allows for a good cable trace but makes Netbox think the connection is still unfinished. I'm curious what others are doing in this area. I tried using patch panels with interfaces instead of front/rear ports for a while and didn't like that either. Seemed hacky. This is my one big issue when trying to mirror the physical layout of my datacenter, trying to illustrate connections beyond the datacenter that are in fact connected but not managed through a solution like this. For devices all connected within the purview of Netbox the connection status and tracing work flawless.
@millijuna commented on GitHub (Nov 8, 2019):
I’ve continued my usual updating and population of netbox, and realized that Netbox already supports a subset of this... When you create a virtual device (Loopback interface, VLAN interface, etc...) they automatically show up as connected, which makes sense (heck, that’s the whole point of virtual interfaces such as loopbacks, they’re always up). To me, that makes for a decent precedent that there are connected interfaces that do not have an associated cable connection.
@ljb2of3 commented on GitHub (Nov 8, 2019):
After thinking about it, I agree. We should be tracking switch to patch panel connections, even if that panel represents some far off offices and we don't connect the Rear Ports on that panel to anything.
Of course, this means a lot of work creating all the front/rear interfaces for all of our hundreds of access layer patch panels, and the work of actually "connecting" the cables, which is a very time-consuming process. Wasn't there some sort of bulk connect option? Or am I crazy?
@ljb2of3 commented on GitHub (Nov 8, 2019):
This probably belongs in a new issue, but on the note of "connected via a cable" but not "connected to anything on the far end". Netbox is showing the port in green to represent something plugged in, but still says "not connected".
In this case, perhaps it would be useful to say "Incomplete connection" instead, and maybe have mouseover text that tells you what patch panel and port the local cable is connected to. I don't mind clicking the trace cable button to see the entire path, but a quick way to see the first hop without reloading the page would be nice.
The interface is too cluttered to add that information as visible by default, but a mouseover or hover text feature would be nice. What are your thoughts?
@DanSheps commented on GitHub (Nov 12, 2019):
Just to note, I was able to write up a crude script to automate the creation, connection of a patch panel for my own work. Once I refine it, it might upload it to a repo.
This can be done within Netbox, using the "scripts" feature.
@ljb2of3 commented on GitHub (Nov 12, 2019):
Interesting. I'll have to look into the scripts feature. I ended up creating a standalone flask application to aid me in mapping ports between switches and patch panels in bulk. I posted it over at https://gitlab.com/landy/port-mapper if anyone is interested in using it.
@nomaster commented on GitHub (Dec 24, 2019):
I'm currently involved with creating a network for an event, where the proposed feature could also be useful.
We place access switches in public areas, with some of them using another access switch as uplink (trunk interfaces). The interfaces are otherwise free to use by the visitors. Obviously, these two configurations are different.
When planning a connection to serve as an uplink from one access switch to another, the view on NetBox presents the user with a drop-down list of available interfaces on the other switch - regardless of its connection. The user will likely use any of these interfaces for the trunk connection.
We would like to mark these interfaces as "unmanaged connected", i.e. without a specific device. With a feature like this, we could simply say that all interfaces in connected state are reserved for access and all others available for trunks.
@darcynz commented on GitHub (Jan 30, 2020):
2nd this FR. We have many ports connected that we do not manage as the network team. Whilst we. could create devices and interfaces for each, we don't manage these so wont know the relevant information other than something generic. We thought about using circuits as a substitute but the suggestion here would be a much better fit.
@bert-heylen commented on GitHub (Apr 2, 2020):
+1 for this request. We have many devices out of our scope using our fiber plant. It would be very helpful if we could just mark patch panel ports as "in use" without actually connecting it. We already use the description field to provide some info.
The similar functionality could be used to mark ports as "reserved" for future projects, to make sure nobody uses the port in the meantime.
@avermeer-tc commented on GitHub (May 25, 2020):
I've actually fixed this in the past by creating a Circuit and connecting the A side to the port that is in use.
That way it shows up as connected.
@yarnocobussen commented on GitHub (May 25, 2020):
Not to go to far off-topic, but for any colocation providers out there: combine this hack with assigning tenants to circuits, and you can track which tenant uses which interface on your fan-out switches, without relying on outside data or customizations to Netbox.
We did this after #3059 got rejected and it's easy to consume this information for things like monitoring and billing automation.
@jeremystretch commented on GitHub (Jul 24, 2020):
This might be related to #4900 but probably not.
@jeremystretch commented on GitHub (Nov 18, 2020):
For context, this is likely going to be limited to an
occupiedboolean (or something to that effect) on the interface model, and possibly others.@jeremystretch commented on GitHub (Mar 2, 2021):
I ended up naming the boolean field
mark_connectedas it was the best name I could think of. I've also included a read-only boolean field in the REST API serializers named_occupiedto indicate whether a termination is available to connect a new cable.