VRF's are not added/discovered for Arista switches

Tags: #<Tag:0x00007f521fbba7b0>

It seems that vrf discovery does not work for Arista switches, at least I haven’t gotten it to work.

Validation is fine and I have the vrf module globally on.

Output from a discovery to a specific host where we would want to be able to check the bgp sessions inside a vrf: https://p.libren.ms/view/26c0933a

It seems that arista has a separate MIB for vrf’s: http://www.circitor.fr/Mibs/Html/A/ARISTA-VRF-MIB.php so not sure if some customization is required here.

But also not sure if the os is detected properly looking at this:

  • Attempting to initialize OS: arista_eos

  • Attempting to initialize OS: arista

  • OS initialized as Generic

  • Modules status: Global+

I’ve looked further but don’t seem to be able to find a proper list of VRFs with the arista mib, I can only see the vrf names in port assignments but not a directly parse-able list.

May be it could still be possible to gather whatever is accessible.
You can try to have a look at the existing code and try to hack something out of it. We can then help you make it cleaner after.

I’ll indeed see about where can we most reliably collect the data from, then I can further with the case.

Seems that the VRF names should be found with oid .1.3.6.1.4.1.30065.3.18.1.1.1.1 but it doesn’t seem to be supported :frowning:

One could get each unique string obtained with 1.3.6.1.4.1.30065.3.18.1.2 but that is a bit ugly.

Confirmed from arista that the only way to get the info is to parse it out of the response of ARISTA-VRF-MIB::aristaVrfRoutingStatus, which is .1.3.6.1.4.1.30065.3.18.1.1.1.2 in the arista vrf mib.

It returns for example 3.18.1.1.1.2.3.109.103.116 where the first byte after the 2 is protocol identifier (I think) so 3 in dec is ipv4 and 9 in dec is ipv6. The rest are ascii codes in dec so in this case the vrf name would be ‘mgt’ (109 103 116).

Unfortunately I have no clue how this could be implemented to get the vrfs for arista switches :slight_smile:

Hi @Elias,

We can do that, we have functions in the snmp libs to parse this kind of structure. I cannot have a look at that in the near future but this can definitly be done.

Please open an issue here : https://github.com/librenms/librenms/issues

With the required data added to the issue, I’ll have a look at some point :smiley:

Awesome, thanks!

Related ticket: BGP sessions under VRF

Test time here :