1

In my home network I have a router running Linux, with several VLANs coming into the same physical interface. This is what things look like on the router:

➜ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: wan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 7c:83:34:be:b0:9b brd ff:ff:ff:ff:ff:ff
    altname enp1s0
    inet 80.x.x.x/20 metric 1024 brd x.x.x.255 scope global dynamic wan0
       valid_lft 67664sec preferred_lft 67664sec
    inet6 x:x:x:7000:1a86:1082:f9e:41bf/64 scope global temporary dynamic
       valid_lft 82400sec preferred_lft 22122sec
    inet6 x:x:x:a839:e160:a5b4:8601:7da8/64 scope global temporary dynamic
       valid_lft 85823sec preferred_lft 3023sec
    inet6 x:x:x:7000:8916:b7a2:bfc:3a40/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:a839:3546:462d:74e4:e284/64 scope global temporary deprecated dynamic
       valid_lft 85823sec preferred_lft 0sec
    inet6 x:x:x:7000:aef4:f2a8:62bc:8d8d/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:7000:7e83:34ff:febe:b09b/64 metric 256 scope global dynamic mngtmpaddr
       valid_lft 82400sec preferred_lft 68000sec
    inet6 x:x:x:a839:7c6d:b30d:b272:aebf/64 scope global temporary deprecated dynamic
       valid_lft 85823sec preferred_lft 0sec
    inet6 x:x:x:a839:7e83:34ff:febe:b09b/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 85823sec preferred_lft 3023sec
    inet6 fe80::7e83:34ff:febe:b09b/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
3: lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 7c:83:34:be:b0:9c brd ff:ff:ff:ff:ff:ff
    altname enp2s0
    inet 10.0.0.254/24 brd 10.0.0.255 scope global lan0
       valid_lft forever preferred_lft forever
    inet6 x:x:x:7001:3d40:df56:2ca8:e57/64 scope global temporary dynamic
       valid_lft 82400sec preferred_lft 63479sec
    inet6 x:x:x:7001:e887:62d5:fd5c:1183/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:7001:7e83:34ff:febe:b09c/64 metric 256 scope global dynamic mngtmpaddr
       valid_lft 82400sec preferred_lft 68000sec
    inet6 fe80::1/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::7e83:34ff:febe:b09c/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
5: guest@lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 7c:83:34:be:b0:9c brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.254/24 brd 10.0.20.255 scope global guest
       valid_lft forever preferred_lft forever
    inet6 x:x:x:7020:384c:ffca:2bb7:af47/64 scope global temporary dynamic
       valid_lft 82400sec preferred_lft 64243sec
    inet6 x:x:x:7020:6f98:4139:a482:f1eb/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:7020:7e83:34ff:febe:b09c/64 metric 256 scope global dynamic mngtmpaddr
       valid_lft 82400sec preferred_lft 68000sec
    inet6 fe80::1/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::7e83:34ff:febe:b09c/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
6: iot@lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 7c:83:34:be:b0:9c brd ff:ff:ff:ff:ff:ff
    inet 10.0.10.254/24 brd 10.0.10.255 scope global iot
       valid_lft forever preferred_lft forever
    inet6 x:x:x:7010:e395:3d0:37d9:2be/64 scope global temporary dynamic
       valid_lft 82400sec preferred_lft 63524sec
    inet6 x:x:x:7010:5ccf:38dc:555e:a054/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:7010:7e83:34ff:febe:b09c/64 metric 256 scope global dynamic mngtmpaddr
       valid_lft 82400sec preferred_lft 68000sec
    inet6 fe80::1/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::7e83:34ff:febe:b09c/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
7: management@lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 7c:83:34:be:b0:9c brd ff:ff:ff:ff:ff:ff
    inet 10.0.30.254/24 brd 10.0.30.255 scope global management
       valid_lft forever preferred_lft forever
    inet6 x:x:x:7030:2e30:b0b1:8c51:a572/64 scope global temporary dynamic
       valid_lft 82400sec preferred_lft 63118sec
    inet6 x:x:x:7030:a321:4fcd:7e25:c127/64 scope global temporary deprecated dynamic
       valid_lft 82400sec preferred_lft 0sec
    inet6 x:x:x:7030:7e83:34ff:febe:b09c/64 metric 256 scope global dynamic mngtmpaddr
       valid_lft 82400sec preferred_lft 68000sec
    inet6 fe80::1/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::7e83:34ff:febe:b09c/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

➜ ip r
default via 80.x.x.x dev wan0 proto dhcp src x.x.x.x metric 1024
10.0.0.0/24 dev lan0 proto kernel scope link src 10.0.0.254
10.0.10.0/24 dev iot proto kernel scope link src 10.0.10.254
10.0.20.0/24 dev guest proto kernel scope link src 10.0.20.254
10.0.30.0/24 dev management proto kernel scope link src 10.0.30.254
80.x.x.x/20 dev wan0 proto kernel scope link src 80.x.x.x metric 1024
80.x.x.x dev wan0 proto dhcp scope link src 80.x.x.x metric 1024

Everything works well on the guest and iot VLANs, the problem is with the management one.

That network has no other devices currently, but when I connect my laptop to it, by creating an interface with the right VLAN ID, I start seeing ARP requests for public IPs that are obviously outside of the subnet.

This is the laptop's network config:

➜ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
    link/ether f4:4d:ad:02:ac:fd brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u1u2u1
    inet 10.0.0.55/24 metric 1024 brd 10.0.0.255 scope global dynamic lan0
       valid_lft 4768sec preferred_lft 4768sec
    inet6 x:x:x:7001:9667:e56d:71b:9ec8/64 scope global temporary dynamic
       valid_lft 3445sec preferred_lft 1645sec
    inet6 x:x:x:7001:f64d:adff:fe02:acfd/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 3445sec preferred_lft 1645sec
       valid_lft 3445sec preferred_lft 1645sec
    inet6 fe80::f64d:adff:fe02:acfd/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
3: lan1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq state DOWN group default qlen 1000
    link/ether 0c:37:96:96:28:5d brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u1u3i5
4: wifi0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether de:5f:48:3b:4a:ee brd ff:ff:ff:ff:ff:ff permaddr 7c:b5:66:65:be:72
    altname wlp1s0
5: management@lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f4:4d:ad:02:ac:fd brd ff:ff:ff:ff:ff:ff
    inet 10.0.30.63/24 metric 2048 brd 10.0.30.255 scope global dynamic management
       valid_lft 4764sec preferred_lft 4764sec
    inet6 x:x:x:7030:a44f:5260:dda1:efdd/64 scope global temporary dynamic
       valid_lft 3282sec preferred_lft 1482sec
    inet6 x:x:x:7030:f64d:adff:fe02:acfd/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 3282sec preferred_lft 1482sec
    inet6 fe80::f64d:adff:fe02:acfd/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
6: ztzlggwhus: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq state UNKNOWN group default qlen 1000
    link/ether x:x:x:x:x:x brd ff:ff:ff:ff:ff:ff
    inet 172.26.x.x/16 brd 172.26.255.255 scope global ztzlggwhus
       valid_lft forever preferred_lft forever
    inet6 x:x:x:x:x:x:x:x:x:x:x:x:x:x:x:x/88 scope global
       valid_lft forever preferred_lft forever
    inet6 x:x:x::1/40 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::x:x:x/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

➜ ip r
default via 10.0.0.254 dev lan0 proto dhcp src 10.0.0.55 metric 1024
10.0.0.0/24 dev lan0 proto kernel scope link src 10.0.0.55 metric 1024
10.0.0.254 dev lan0 proto dhcp scope link src 10.0.0.55 metric 1024
10.0.30.0/24 dev management proto kernel scope link src 10.0.30.63 metric 2048
172.26.x.x/16 dev ztzlggwhus proto kernel scope link src 172.26.x.x

When I run tcpdump on the management interface from either the router or the laptop, I see normal IPv6 NDP packets, and then a whole bunch of ARP requests like this:

➜ sudo tcpdump -s 1500 -i management -nn -vv
tcpdump: listening on management, link-type EN10MB (Ethernet), snapshot length 1500 bytes
00:29:12.774606 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 201.206.191.36 tell 10.0.30.63, length 28
00:29:12.775206 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 50.7.252.138 tell 10.0.30.63, length 28
00:29:12.775291 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 103.195.103.66 tell 10.0.30.63, length 28
00:29:12.775434 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 84.17.53.155 tell 10.0.30.63, length 28
00:29:12.775633 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 104.194.8.134 tell 10.0.30.63, length 28
00:29:13.792744 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 104.194.8.134 tell 10.0.30.63, length 28
00:29:13.792774 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 84.17.53.155 tell 10.0.30.63, length 28
00:29:13.792779 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 103.195.103.66 tell 10.0.30.63, length 28
00:29:13.792784 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 50.7.252.138 tell 10.0.30.63, length 28
00:29:13.792788 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 201.206.191.36 tell 10.0.30.63, length 28
00:29:14.816739 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 201.206.191.36 tell 10.0.30.63, length 28
00:29:14.816779 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 50.7.252.138 tell 10.0.30.63, length 28
00:29:14.816784 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 103.195.103.66 tell 10.0.30.63, length 28
00:29:14.816788 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 84.17.53.155 tell 10.0.30.63, length 28
00:29:14.816792 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 104.194.8.134 tell 10.0.30.63, length 28
00:29:17.780657 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 70.57.30.7 tell 10.0.30.63, length 28
00:29:18.784750 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 70.57.30.7 tell 10.0.30.63, length 28
00:29:19.808723 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 70.57.30.7 tell 10.0.30.63, length 28
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel

Which I find very strange since those addresses are clearly outside of the subnet and so I would have expected that for any requests to those addresses, the kernel would simply forward the packet to the default gateway (10.0.0.254 on lan0) and not even try to send it out on the management interface.

So I'm trying to understand why these weird ARP requests for addresses outside of the subnet are being sent, and whether I have configured something wrongly.

1
  • are there any iptables/nftable rules that could interfere with theses packets?
    – Saïmonn
    Commented Mar 1 at 23:33

0

You must log in to answer this question.

Browse other questions tagged .