Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Sep 2024 22:35:58 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 262828] [carp] CARP arp replays with wrong src mac
Message-ID:  <bug-262828-7501-KHlG1qrw8v@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-262828-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-262828-7501@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D262828

--- Comment #16 from Ivan Rozhuk <rozhuk.im@gmail.com> ---
(In reply to Gleb Smirnoff from comment #14)

Topic with "hardware, that puts non-RFC compluant requirements on ARP packe=
ts"
started by zlei@.
IMHO it is irrelevant to this patch.



This patch fixes issues that at least was happen in our customers env and we
reproduce it in lab.

Annonce before patch apply:
root@safeinspect# tcpdump -n -i vmx2 -e -vvvvv arp | grep 192.168.15.224
tcpdump: listening on vmx2, link-type EN10MB (Ethernet), capture size 262144
bytes
11:57:51.249287 00:10:f3:2a:c2:ba > 00:00:5e:00:01:30, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.224 t=
ell
192.168.14.1, length 46
11:57:51.249317 00:00:5e:00:01:30 > 00:10:f3:2a:c2:ba, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:00:5e:00:01:30, length 28
11:57:55.823376 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:57:56.823714 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:57:59.023621 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:03.223640 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:03.842451 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:04.833800 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:07.033641 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:08.064321 00:0c:29:09:c3:44 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.224 t=
ell
192.168.15.224, length 46
11:58:08.064352 00:00:5e:00:01:30 > 00:0c:29:09:c3:44, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:00:5e:00:01:30, length 28
11:58:11.233572 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:11.234069 00:0c:29:09:c3:44 > 00:00:5e:00:01:30, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:0c:29:09:c3:44, length 46
11:58:11.852937 00:00:5e:00:01:30 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.225 t=
ell
192.168.15.224, length 28
11:58:11.853396 00:0c:29:09:c3:44 > 00:00:5e:00:01:30, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:0c:29:09:c3:44, length 46
11:58:12.289677 00:10:f3:2a:c2:ba > 00:00:5e:00:01:30, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.224 t=
ell
192.168.14.1, length 46
11:58:12.289713 00:00:5e:00:01:30 > 00:10:f3:2a:c2:ba, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:00:5e:00:01:30, length 28
11:58:45.019891 00:10:f3:2a:c2:ba > 00:00:5e:00:01:30, ethertype ARP (0x080=
6),
length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.15.224 t=
ell
192.168.14.1, length 46
11:58:45.019926 00:00:5e:00:01:30 > 00:10:f3:2a:c2:ba, ethertype ARP (0x080=
6),
length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.15.224 is-at
00:00:5e:00:01:30, length 28


Some master has owned CARPed 192.168.15.224.
Some backup CARPed host "00:0c:29:09:c3:44" is boot up and mess started at
"11:58:08.064321" and "11:58:11.234069" - "Gratuitous ARP" with wrong CARP =
MAC
in Ethernet and ARP headers.

Patch forces CARP MAC address to be used in Ethernet header and ARP header,=
 not
depend on CARP state "master" or not.


We totally use 3 path to CARP:
https://github.com/rozhuk-im/freebsd/commit/b4fa20fcbfa7a707ef3d7e499e93576=
4a9adc5f8
- this PR
https://github.com/rozhuk-im/freebsd/commit/4354cf4860dcf7e5e3c96d1fb0fdd95=
f1eabbfc3
- proper loopback detection
https://github.com/rozhuk-im/freebsd/commit/ddc90e5e6807469011f8aae93008ab5=
0509813f7
- some simple cosmetic
and we have no CARP related error reports since these patches landed to
customers.



> And what about IPv6 NA announcements?

We do not use IPv6 so I do not dig into this. My guess is yes, IPv6 needs
similar changes.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-262828-7501-KHlG1qrw8v>