netreplica/nrx

WAN network topology

frederic-loui opened this issue · 7 comments

Hi, Thanks for nrx development. We are managing a WAN network with mostly one hardware in each site.
What would be your recommandation in order to use nrx in that context ? Would there be in the long run:
1- a mode considering all nodes from a list of sites (e.g. sites=all)
2- consider circuit/uplink connectivity betwwen these sites ?
Thanks/Frederic

Hi Frederic, thank you for the interest in nrx!

Inter-site topologies is something I'd like to tackle in near future. In your case, do the sites always interconnect via a circuit? Meaning, if there is an inter-site link, shall I expect it to have terminations on both sites which in turn would be connected via cables to device interfaces?

Another question is, what would be the most meaningful way to select devices to be included in the topology? Would a tag (or a list of tags) work? Or maybe a list of sites?

Hi,

do the sites always interconnect via a circuit?

Yes.

Meaning, if there is an inter-site link, shall I expect it to have terminations on both sites
which in turn would be connected via cables to device interfaces?

Well actually inter-site link or end to end circuit are composite. Meaning that the end to end link is composed by various segment provided that multiple provider. We are calling this stitching segment in order to have an end to end circuit.

what would be the most meaningful way to select devices to be included in the topology?

That is a good question. And I presume that it all boils down on what we want to achieve/present.

In my case i'd like the bare minimum information that describe the circuit in order to make it a link in containerlab.
Therefore:

  • circuit_id
  • type: [site-2-site, service]
    if site-2-sitethe circuit is connecting site_a/device_a@interface_a <-> site_b/device_b@interface_b
    if service only site_a/device_a@interface_a end is known as the other demarc is unknown. (e.g Internet service)

But this assumes you have an "upper perspective" of what circuit is. In other perpective you can just consider physical wire, with meet-me room information and also have carrier hotel information (building, floor, room, cage etc.)

As an example please find the network I'd like to render using netbox/nrx to containerlab:

image

It seems that using netbox builtin tracing capability would be the best way to establish a topology when circuits are involved. I started to experiment with the implementation using the tracing API. Could you confirm that in your case, tracing via netbox UI does show end-2-end connectivity between devices on different sites?

IMHO, I'd stick with circuit definition as it seems to fit the problem. The documentation here indicates that A end and Z end can be associted to site that it self can be tied to deviceandinterface`.

Each circuit termination is attached to either a site or to a provider network. Site terminations may optionally be connected via a cable to a specific device interface or port within that site.

Two concerns:

  1. patch panels is where circuits tend to terminate
  2. circuit stitching, as you mentioned

Without relying on tracing API both would require to have recursive API calls from nrx – this is very inefficient due to API latency. Tracing API moves the recursion to netbox server side, reducing the latency dramatically.

bortok commented

This has been implemented with #26 and #27 and available in main now. Will be included in v0.2.0 release.