We're evaluating TNSR to replace our MikroTik infrastructure, right now we run defaults only from our upstreams and we want to be able to actually handle full tables without worrying about overwhelming the router. We've been using VyOS but TNSR obviously has quite a few advantages.
In our testing thus far we've for the most part liked TNSR but keep running into issues, most of which I've managed to overcome (most of these are stemming from lack of experience with TNSR and its command hierarchy), but our test device is in an odd state right now.
All of the oddness started when inspecting the routing table, clixon/tnsr daemons seem to keep crashing.
To put some real world traffic on the router I gave it an (almost) full IPv4 BGP table directly from an upstream and announced a /24 to the upstream from TNSR. I shut this session down when I was starting to see some oddities yesterday. The only other BGP session is a default only from one of our MikroTiks. This morning I ran
show route table ipv4-VRF:0and all of the routes learned from the eBGP peer still appear to be in the routing table, despite the session being shut down for 15 hours at this point. It would also be nice to see where each route was learnt from (ebgp, ibgp, etc).
If I run
show interfacesthe SSH connection closes, and this appears in the log:
Jan 2 08:15:42 localhost vnet: vl_api_sw_interface_rx_placement_dump_t_handler:1112: interface type is not HARDWARE! P2P, PIPE and SUB interfaces are not supported Jan 2 08:15:42 localhost kernel: clixon_cli: segfault at 0 ip 00007f4e25db800e sp 00007ffd10618608 error 4 in libc-2.28.so[7f4e25d26000+1b9000] Jan 2 08:15:42 localhost kernel: Code: b6 07 29 c8 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa 89 f8 31 d2 66 0f ef ff 09 f0 25 ff 0f 00 00 3d c0 0f 00 00 0f 8f 74 02 00 00 <f3> 0f 6f 0f f3 0f 6f 06 66 0f 74 c1 66 0f da c1 66 0f ef c9 66 0f
With SNMP it would be nice if the interface description was made available. I've not looked too deeply into this, but on other platforms like MikroTik/Brocade/Cisco, the description gets copied across and with LibreNMS you can use the description to configure the port type (transit, peering, core, customer, etc). I also had to alter the port association type and snmp from v2 to v1 to even get librenms to detect any port utilisation (it detected ports, but didn't detect any utilisation, not sure which change fixed this). We also have had no port utilisation information since our first crash of the daemons yesterday
The CLI, it's nice having such robust documentation, as the CLI is familiar but different at the same time, so I know how I'd do what I want to do in FRR/VyOS/Cisco/etc but it's slightly different in TNSR. The only thing I do find myself struggling with, and I've not been able to find in the documentation is if I am (in config mode) in Interface Gigabit7/0/0, how I can easily view the configuration that's set at this level.
I'm also wondering if there's a way to reset an OSPF neighbor? I can see it for BGP.
We really want to make use of TNSR in our network, and early testing is promising but we've got a router in an unstable state after a couple of days of testing. I've left the router online and unrebooted, so I can run any commands to assist.
@jamescr We have opened a ticket for you and assigned one of our engineers to see if we can work through these concerns. Thanks!