Send netdisco-users mailing list submissions to
        netdisco-users@lists.sourceforge.net

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.sourceforge.net/lists/listinfo/netdisco-users
or, via email, send a message with subject or body 'help' to
        netdisco-users-requ...@lists.sourceforge.net

You can reach the person managing the list at
        netdisco-users-ow...@lists.sourceforge.net

When replying, please edit your Subject line so it is more specific
than "Re: Contents of netdisco-users digest..."
Today's Topics:

   1. Re: ARP matching for netdisco (Christian Ramseyer)
   2. Re: ARP matching for netdisco (n...@erudicon.com)
--- Begin Message ---
Hi Muris

On 25.07.2024 06:27, Muris wrote:
Hey all,

Ive picked up another issue ive come across in relation to arpnip’s and netdisco picking up for matching to mac addresses

  * Ive found on ArubaOS controllers this does not work, and gets 0 arps
    and ive seen it on a couple of Aruba switches or two. This is
    running the netdisco-do arpnip function when I look at the output.
  * Ive also noticed on Cisco SDWAN platform using Cisco ISR 1127/1131
    which has VRF’s on a router it also doesn’t appear to match arps to
macs probably because it has VRFs? I tried to use the SSH script in this instance but still didn’t work. The routers I have are running IOS XE, which doesn’t seem to work with the SSH collector, as that only has IOS and IOSXR

1) I wanted to ask, is there a troubleshooting method for arps retrieval, and what part of code handles the arp matching?
> 3) What part of the code in netdisco looks at arp retrieval and then
> storing it into the db into particular method? Is there something that
> can be tweaked how it interprets the data, say for a Aruba Controller,
> or a Cisco router with vrfs etc


For 1 + 3 I use something like this:

Run netdisco-do arpnip on the commandline with debugging flags:

-D (always, general debugging)
-SI (snmp OIDs + snmp info layer)
-Q (DB queries, ignore unless you suspect a db issue)

e.g. "netdisco-do -DIS -d lab2-ce2 arpnip"

To see whats going wrong it's very helpful to compare a device with the expected outcome to the one where stuff doesn't work.

From the debugging you can tell which OIDs are used, whether they send back a response etc. I often also just forget about netdisco and try to get what I need with regular snmpwalk/get, then figure out where the mismatch is. Or conclude that the device does not have the data at all.

If you grep around in the code for strings appearing in the debug output it's easy to find where stuff happens, e.g (shortened):

 $ shopt -s globstar
 $ egrep '(store_arp|processed.*ARP Cache)' **/* 2>/dev/null

lib/App/Netdisco/Util/Node.pm:=head2 store_arp( \%host, $now?, $device_ip )
lib/App/Netdisco/Util/Node.pm:sub store_arp {
lib/App/Netdisco/Util/Node.pm: debug sprintf 'store_arp - device %s mac %s ip %s', lib/App/Netdisco/Worker/Plugin/Arpnip/Nodes.pm:use App::Netdisco::Util::Node qw/che lib/App/Netdisco/Worker/Plugin/Arpnip/Nodes.pm: store_arp(\%$_, $now, $device->ip)


Then just start hacking around in there until it works :)





2) What if I have a IOS XE router with vrf’s is it able to retrieve IP to mac mappings? If I can do a “show arp vrf 2000” this shows the list, but how do I make that available into netdisco?


I actually just tried this on regular IOS-XE and I seem to get all VRFs from the regular SNMP method, e.g.:


# show version

Cisco IOS XE Software, Version 17.09.03a
Cisco IOS Software [Cupertino], ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 17.9.3a, RELEASE SOFTWARE (fc2)
cisco ISR4331/K9


lab2-CE2#show vrf
Name Default RD Protocols Interfaces
  Mgmt-intf                        <not set>             ipv4,ipv6   Gi0
  VPRN-KTV1                        65126:20923           ipv4,ipv6   Lo1

Gi0/0/0

Gi0/0/2.3811
lab2-CE2#show ip arp
lab2-CE2#show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet 10.18.220.233 89 4055.82a1.xxxx ARPA GigabitEthernet0/0/2.3899 Internet 10.18.220.234 94 147b.ac00.xxxx ARPA GigabitEthernet0/0/2.3899 Internet 10.18.220.238 - 70d3.791a.xxxx ARPA GigabitEthernet0/0/2.3899
lab2-CE2#
lab2-CE2#show ip arp vrf VPRN-KTV1
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet 10.18.199.129 89 4055.82a1.xxxx ARPA GigabitEthernet0/0/2.3811 Internet 10.18.199.130 90 147b.ac00.xxxx ARPA GigabitEthernet0/0/2.3811 Internet 10.18.199.134 - 70d3.791a.xxxx ARPA GigabitEthernet0/0/2.3811 Internet 10.30.194.49 - 70d3.791a.xxxx ARPA GigabitEthernet0/0/0 Internet 10.30.194.50 0 001c.7fa3.xxxx ARPA GigabitEthernet0/0/0
lab2-CE2#


netdisco-do -D -d lab2-ce2 arpnip
...
[13904] 2024-07-26 15:24:42 debug => running workers for phase: store
[13904] 2024-07-26 15:24:42 debug -> run worker store/0 "arpnip::nodes"
[13904] 2024-07-26 15:24:42 debug resolving 8 ARP entries with max 50 outstanding requests [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 40:55:82:a1:xx:xx ip 10.18.220.233 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 14:7b:ac:00:xx:xx ip 10.18.199.130 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 70:d3:79:1a:xx:xx ip 10.30.194.49 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 14:7b:ac:00:xx:xx ip 10.18.220.234 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 40:55:82:a1:xx:xx ip 10.18.199.129 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 00:1c:7f:a3:xx:xx ip 10.30.194.50 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 70:d3:79:1a:xx:xx ip 10.18.220.238 [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 70:d3:79:1a:xx:xx ip 10.18.199.134 [13904] 2024-07-26 15:24:42 debug [10.18.165.188] arpnip - processed 8 ARP Cache entries [13904] 2024-07-26 15:24:42 debug [10.18.165.188] arpnip - processed 0 IPv6 Neighbor Cache entries


So I suspect the trouble is related to the SDWAN features or a specific release?

Generally the more virutalization and software defined doohickeys a platform has the less likely it is to cough up all arp entries via SNMP. If you need to make an SSH Collector for IOS-XE SDWAN, you best figure out first what commands are needed, then copy an existing one an make it work. Many already do something like enumerate all contexts/vrf/vdoms and then run commands for each, you can look at e.g. CPVSX, ASAContext or FortiOS.



Good luck
Christian


Sorry if its been asked before .. but im finding lately due to the environment getting complex I wouldn’t mind how the whole arp storing works and getting more things to work better .

Muris



_______________________________________________
Netdisco mailing list
netdisco-users@lists.sourceforge.net
https://sourceforge.net/p/netdisco/mailman/netdisco-users/

--
Christian Ramseyer, netnea ag
Network Management. Security. OpenSource.
https://www.netnea.com
Phone: +41 79 644 77 64



--- End Message ---
--- Begin Message ---
I don’t the Aruba stuff has been updated since ArubaOS 6.X (Aruba is currently 
pushing customers from version 8 to 10 which has the control plane in the cloud 
).

Neil

On Fri, Jul 26, 2024, at 11:03 AM, Christian Ramseyer wrote:
> Hi Muris
> 
> On 25.07.2024 06:27, Muris wrote:
> > Hey all,
> > 
> > Ive picked up another issue ive come across in relation to arpnip’s and 
> > netdisco picking up for matching to mac addresses
> > 
> >   * Ive found on ArubaOS controllers this does not work, and gets 0 arps
> >     and ive seen it on a couple of Aruba switches or two. This is
> >     running the netdisco-do arpnip function when I look at the output.
> >   * Ive also noticed on Cisco SDWAN platform using Cisco ISR 1127/1131
> >     which has VRF’s on a router it also doesn’t appear to match arps to
> >     macs probably because it has VRFs? 
> > 
> > I tried to use the SSH script in this instance but still didn’t work. 
> > The routers I have are running IOS XE, which doesn’t seem to work with 
> > the SSH collector, as that only has IOS and IOSXR
> > 
> > 1) I wanted to ask, is there a troubleshooting method for arps 
> > retrieval, and what part of code handles the arp matching?
> > 3) What part of the code in netdisco looks at arp retrieval and then
> > storing it into the db into particular method? Is there something that
> > can be tweaked how it interprets the data, say for a Aruba Controller,
> > or a Cisco router with vrfs etc
> 
> 
> For 1 + 3 I use something like this:
> 
> Run netdisco-do arpnip on the commandline with debugging flags:
> 
> -D (always, general debugging)
> -SI (snmp OIDs + snmp info layer)
> -Q (DB queries, ignore unless you suspect a db issue)
> 
> e.g. "netdisco-do -DIS -d lab2-ce2 arpnip"
> 
> To see whats going wrong it's very helpful to compare a device with the 
> expected outcome to the one where stuff doesn't work.
> 
> From the debugging you can tell which OIDs are used, whether they send 
> back a response etc. I often also just forget about netdisco and try to 
> get what I need with regular snmpwalk/get, then figure out where the 
> mismatch is. Or conclude that the device does not have the data at all.
> 
> If you grep around in the code for strings appearing in the debug output 
> it's easy to find where stuff happens, e.g (shortened):
> 
>   $ shopt -s globstar
>   $ egrep '(store_arp|processed.*ARP Cache)' **/* 2>/dev/null
> 
> lib/App/Netdisco/Util/Node.pm:=head2 store_arp( \%host, $now?, $device_ip )
> lib/App/Netdisco/Util/Node.pm:sub store_arp {
> lib/App/Netdisco/Util/Node.pm:  debug sprintf 'store_arp - device %s mac 
> %s ip %s',
> lib/App/Netdisco/Worker/Plugin/Arpnip/Nodes.pm:use 
> App::Netdisco::Util::Node qw/che
> lib/App/Netdisco/Worker/Plugin/Arpnip/Nodes.pm:  store_arp(\%$_, $now, 
> $device->ip)
> 
> 
> Then just start hacking around in there until it works :)
> 
> 
> 
> 
> > 
> > 2) What if I have a IOS XE router with vrf’s is it able to retrieve IP 
> > to mac mappings? If I can do a “show arp vrf 2000” this shows the list, 
> > but how do I make that available into netdisco?
> > 
> 
> I actually just tried this on regular IOS-XE and I seem to get all VRFs 
> from the regular SNMP method, e.g.:
> 
> 
> # show version
> 
> Cisco IOS XE Software, Version 17.09.03a
> Cisco IOS Software [Cupertino], ISR Software 
> (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 17.9.3a, RELEASE SOFTWARE (fc2)
> cisco ISR4331/K9
> 
> 
> lab2-CE2#show vrf
>    Name                             Default RD            Protocols 
> Interfaces
>    Mgmt-intf                        <not set>             ipv4,ipv6   Gi0
>    VPRN-KTV1                        65126:20923           ipv4,ipv6   Lo1
>  
> Gi0/0/0
>  
> Gi0/0/2.3811
> lab2-CE2#show ip arp
> lab2-CE2#show ip arp
> Protocol  Address          Age (min)  Hardware Addr   Type   Interface
> Internet  10.18.220.233         89   4055.82a1.xxxx  ARPA 
> GigabitEthernet0/0/2.3899
> Internet  10.18.220.234         94   147b.ac00.xxxx  ARPA 
> GigabitEthernet0/0/2.3899
> Internet  10.18.220.238          -   70d3.791a.xxxx  ARPA 
> GigabitEthernet0/0/2.3899
> lab2-CE2#
> lab2-CE2#show ip arp vrf VPRN-KTV1
> Protocol  Address          Age (min)  Hardware Addr   Type   Interface
> Internet  10.18.199.129         89   4055.82a1.xxxx  ARPA 
> GigabitEthernet0/0/2.3811
> Internet  10.18.199.130         90   147b.ac00.xxxx  ARPA 
> GigabitEthernet0/0/2.3811
> Internet  10.18.199.134          -   70d3.791a.xxxx  ARPA 
> GigabitEthernet0/0/2.3811
> Internet  10.30.194.49           -   70d3.791a.xxxx  ARPA 
> GigabitEthernet0/0/0
> Internet  10.30.194.50           0   001c.7fa3.xxxx  ARPA 
> GigabitEthernet0/0/0
> lab2-CE2#
> 
> 
> netdisco-do -D -d lab2-ce2 arpnip
> ...
> [13904] 2024-07-26 15:24:42 debug => running workers for phase: store
> [13904] 2024-07-26 15:24:42 debug -> run worker store/0 "arpnip::nodes"
> [13904] 2024-07-26 15:24:42 debug  resolving 8 ARP entries with max 50 
> outstanding requests
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 40:55:82:a1:xx:xx ip 10.18.220.233
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 14:7b:ac:00:xx:xx ip 10.18.199.130
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 70:d3:79:1a:xx:xx ip 10.30.194.49
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 14:7b:ac:00:xx:xx ip 10.18.220.234
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 40:55:82:a1:xx:xx ip 10.18.199.129
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 00:1c:7f:a3:xx:xx ip 10.30.194.50
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 70:d3:79:1a:xx:xx ip 10.18.220.238
> [13904] 2024-07-26 15:24:42 debug store_arp - device 10.18.165.188 mac 
> 70:d3:79:1a:xx:xx ip 10.18.199.134
> [13904] 2024-07-26 15:24:42 debug  [10.18.165.188] arpnip - processed 8 
> ARP Cache entries
> [13904] 2024-07-26 15:24:42 debug  [10.18.165.188] arpnip - processed 0 
> IPv6 Neighbor Cache entries
> 
> 
> So I suspect the trouble is related to the SDWAN features or a specific 
> release?
> 
> Generally the more virutalization and software defined doohickeys a 
> platform has the less likely it is to cough up all arp entries via SNMP. 
> If you need to make an SSH Collector for IOS-XE SDWAN, you best figure 
> out first what commands are needed, then copy an existing one an make it 
> work. Many already do something like enumerate all contexts/vrf/vdoms 
> and then run commands for each, you can look at e.g. CPVSX, ASAContext 
> or FortiOS.
> 
> 
> 
> Good luck
> Christian
> 
> > 
> > Sorry if its been asked before .. but im finding lately due to the 
> > environment getting complex I wouldn’t mind how the whole arp storing 
> > works and getting more things to work better .
> > 
> > Muris
> > 
> > 
> > 
> > _______________________________________________
> > Netdisco mailing list
> > netdisco-users@lists.sourceforge.net
> > https://sourceforge.net/p/netdisco/mailman/netdisco-users/
> 
> -- 
> Christian Ramseyer, netnea ag
> Network Management. Security. OpenSource.
> https://www.netnea.com
> Phone: +41 79 644 77 64
> 
> 
> _______________________________________________
> Netdisco mailing list
> netdisco-users@lists.sourceforge.net
> https://sourceforge.net/p/netdisco/mailman/netdisco-users/

--- End Message ---
_______________________________________________
Netdisco mailing list - Digest Mode
netdisco-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/netdisco-users

Reply via email to