* Linux router responds to any ARP query when iproute2 xfrm policies are configured for an IPSec tunnel. What's going on?
@ 2020-01-16 18:25 Jarkko Oranen
2020-01-17 16:50 ` (Solved) " Jarkko Oranen
0 siblings, 1 reply; 2+ messages in thread
From: Jarkko Oranen @ 2020-01-16 18:25 UTC (permalink / raw)
To: linux-kernel
Hi,
First of all, I'm not currently subscribed to LKML, so please CC any
replies.
I recently debugged a DHCP client which refused to accept a lease, and
noticed that my router seems to reply to ARP requests for any IP
address, apparently causing the client to think it was receiving a
duplicate IP.
After some debugging, I learned that my router will respond to any ARP
query if the IP falls within the traffic selector I'm using for my xfrm
interface-based IPSec VPN. For example:
$ arping 1.1.1.1
ARPING 1.1.1.1 from 10.21.1.10 enp7s0
Unicast reply from 1.1.1.1 [00:0D:B9:4B:07:C1] 1.449ms
I tried changing the various ARP-related sysctls, but they had no effect
on this behaviour. It stops immediately if I kill the IPSec tunnel and
the xfrm policies are removed.
The xfrm interface is created simply with
ip link add st0 type xfrm dev eth0 if_id 1
and 10/8 is routed to it, though this doesn't seem to matter.
When the IPSec tunnel is up and running, it configures xfrm policies
like so:
src 0.0.0.0/0 dst 0.0.0.0/0
dir out priority 399999 ptype main
tmpl src <my-ip> dst <remote-ip>
proto esp spi 0xc5a3f611 reqid 1 mode tunnel
if_id 0x1
src 0.0.0.0/0 dst 0.0.0.0/0
dir fwd priority 399999 ptype main
tmpl src <remote-ip> dst <my-ip>
proto esp reqid 1 mode tunnel
if_id 0x1
src 0.0.0.0/0 dst 0.0.0.0/0
dir in priority 399999 ptype main
tmpl src <remote-ip> dst <my-ip>
proto esp reqid 1 mode tunnel
if_id 0x1
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src ::/0 dst ::/0
socket in priority 0 ptype main
src ::/0 dst ::/0
socket out priority 0 ptype main
src ::/0 dst ::/0
socket in priority 0 ptype main
src ::/0 dst ::/0
socket out priority 0 ptype main
The traffic selector affects what ARP requests the router responds to,
so if I change it to 10.0.0.0/8, it will respond to any ARP request for
IPs in that range.
This is happening on Alpine Linux running kernel version 5.4.12-1-lts.
Is this expected behaviour? I would appreciate some pointers.
--
Jarkko Oranen
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-01-17 16:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-16 18:25 Linux router responds to any ARP query when iproute2 xfrm policies are configured for an IPSec tunnel. What's going on? Jarkko Oranen
2020-01-17 16:50 ` (Solved) " Jarkko Oranen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®