Multiple arp replies comming but failed to learn and install on Cumulus


I am testing the arp migration capability on Cumulus.

what I have tested:

The topology TC1(arp reply generator)------------------(SWP50)DUT(cumulus)

The arp reply initiate from the TC1 and all those Arp packet can be captured on the incoming port, but the problem is the device failed to learn those arp update. Below is what I captured.

Thanks and regards
Paul




root@sw248:/etc/cumulus# tcpdump -i swp50
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on swp50, link-type EN10MB (Ethernet), capture size 262144 bytes
10:12:05.070269 ARP, Reply 12.12.12.59 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.080200 ARP, Reply 12.12.12.60 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.090277 ARP, Reply 12.12.12.61 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.100266 ARP, Reply 12.12.12.62 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.110212 ARP, Reply 12.12.12.63 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.120267 ARP, Reply 12.12.12.64 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.130292 ARP, Reply 12.12.12.65 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.140208 ARP, Reply 12.12.12.66 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.150295 ARP, Reply 12.12.12.67 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.160274 ARP, Reply 12.12.12.68 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.170276 ARP, Reply 12.12.12.69 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.180269 ARP, Reply 12.12.12.70 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.190281 ARP, Reply 12.12.12.71 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.200272 ARP, Reply 12.12.12.72 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.210271 ARP, Reply 12.12.12.73 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.220273 ARP, Reply 12.12.12.74 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.230274 ARP, Reply 12.12.12.75 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.240267 ARP, Reply 12.12.12.76 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.250268 ARP, Reply 12.12.12.77 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.260268 ARP, Reply 12.12.12.78 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.270278 ARP, Reply 12.12.12.79 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.280268 ARP, Reply 12.12.12.80 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.290277 ARP, Reply 12.12.12.81 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.300268 ARP, Reply 12.12.12.82 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.310276 ARP, Reply 12.12.12.83 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.320274 ARP, Reply 12.12.12.84 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.330268 ARP, Reply 12.12.12.85 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.340260 ARP, Reply 12.12.12.86 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.350269 ARP, Reply 12.12.12.87 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.360269 ARP, Reply 12.12.12.88 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.370278 ARP, Reply 12.12.12.89 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.380268 ARP, Reply 12.12.12.90 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.390277 ARP, Reply 12.12.12.91 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.400263 ARP, Reply 12.12.12.92 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.410279 ARP, Reply 12.12.12.93 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.420275 ARP, Reply 12.12.12.94 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.430251 ARP, Reply 12.12.12.95 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.440252 ARP, Reply 12.12.12.96 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.450171 ARP, Reply 12.12.12.97 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.460255 ARP, Reply 12.12.12.98 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.470263 ARP, Reply 12.12.12.99 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.480250 ARP, Reply 12.12.12.100 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
10:12:05.490253 ARP, Reply 12.12.12.101 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56
^C10:12:05.500246 ARP, Reply 12.12.12.102 is-at 00:00:00:ff:66:d0 (oui Ethernet), length 56

44 packets captured
44 packets received by filter
0 packets dropped by kernel
root@sw248:/etc/cumulus# ip addr show swp50
53: swp50: mtu 1500 qdisc pfifo_fast state UP group default qlen 500
link/ether 7c:fe:90:ff:54:d2 brd ff:ff:ff:ff:ff:ff
inet 12.12.12.1/24 scope global swp50
valid_lft forever preferred_lft forever
inet6 fe80::7efe:90ff:feff:54d2/64 scope link
valid_lft forever preferred_lft forever
root@sw248:/etc/cumulus# arp -a
? (13.13.13.2) at 00:00:6d:85:5d:ec [ether] on swp51
? (10.12.69.247) at 24:8a:07:09:77:14 [ether] on eth0
? (10.12.69.2) at 98:e7:f4:f2:1f:ba [ether] on eth0
? (11.1.1.2) at 00:00:6d:85:19:02 [ether] on swp49
9NLDOX2EDJS75HE.mshome.net (10.12.69.1) at b8:88:e3:f8:e8:b7 [ether] on eth0
? (12.12.12.2) at 00:00:6d:85:5d:eb [ether] on swp50
root@sw248:/etc/cumulus# ip neighbor show
13.13.13.2 dev swp51 lladdr 00:00:6d:85:5d:ec STALE
10.12.69.247 dev eth0 lladdr 24:8a:07:09:77:14 STALE
10.12.69.2 dev eth0 lladdr 98:e7:f4:f2:1f:ba REACHABLE
11.1.1.2 dev swp49 lladdr 00:00:6d:85:19:02 STALE
10.12.69.1 dev eth0 lladdr b8:88:e3:f8:e8:b7 REACHABLE
12.12.12.2 dev swp50 lladdr 00:00:6d:85:5d:eb STALE
fe80::e578:1782:48db:cf17 dev eth0 lladdr 98:e7:f4:f2:1f:ba STALE
fe80::16:32f3:b743:bf2e dev eth0 lladdr b8:88:e3:f8:e8:b7 router STALE
fe80::254c:cc70:9a3b:b9e7 dev eth0 lladdr d4:81:d7🇧🇫6c:be STALE

3 replies

Userlevel 3
The answer here is going to depend upon what type of ARP packets your generator is creating. I typically generate gratuitous ARP packets when I want to load up the ARP table. You'll also need to enable the arp_accept sysctl to make the kernel accept those ARPs. There's a document which describes some of the kernel ARP handling here: https://support.cumulusnetworks.com/hc/en-us/articles/203859616-Default-ARP-Settings-in-Cumulus-Linu...

Scott Emery wrote:

The answer here is going to depend upon what type of ARP packets your generator is creating. I ty...

Thank you Scott, it is useful.
if the arp stack is linux native, I think it won't just learn the entry base on reply pkts, if it does, arp table is easily poisoned. I remember this behaviour is tunable, never tried myself.

Reply