gluon/package
Linus Lüssing 909363f5b9 gluon-mesh-batman-adv: fix source MAC for the IPv6 local-node address
Before, IPv6 packets from the local-node interface using the IPv6 ULA
were wrongly using the MAC address from br-client (64:70:02:ae:72:e4):

client$ tcpdump -i enp0s31f6 -e -n "ether src 16:41:95:40:f7:dc or ether src 64:70:02:ae:72:e4 or ether src 8c:16:45:66:ba:11"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s31f6, link-type EN10MB (Ethernet), capture size 262144 bytes
00:02:51.202570 8c:16:45:66:ba:11 > 16:41:95:40:f7:dc, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11 > fdef:ffc0:3dd7::1: ICMP6, echo request, seq 3, length 64
00:02:51.203040 64:70:02:ae:72:e4 > 8c:16:45:66:ba:11, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7::1 > fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11: ICMP6, echo reply, seq 3, length 64
00:02:52.226566 8c:16:45:66:ba:11 > 16:41:95:40:f7:dc, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11 > fdef:ffc0:3dd7::1: ICMP6, echo request, seq 4, length 64
00:02:52.227255 64:70:02:ae:72:e4 > 8c:16:45:66:ba:11, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7::1 > fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11: ICMP6, echo reply, seq 4, length 64

(br-client: 64:70:02:ae:72:e4, local-node: 16:41:95:40:f7:dc, client device: 8c:16:45:66:ba:11)

$ ip a s dev local-node
10: local-node@local-port: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
qdisc noqueue state UP qlen 1000
    link/ether 16:41:95:40:f7:dc brd ff:ff:ff:ff:ff:ff
    inet 10.130.0.1/20 brd 10.130.15.255 scope global local-node
       valid_lft forever preferred_lft forever
    inet6 fdef:ffc0:3dd7::1/128 scope global deprecated
       valid_lft forever preferred_lft 0sec
    inet6 fe80::1441:95ff:fe40:f7dc/64 scope link
       valid_lft forever preferred_lft forever

With this patch applied ICMPv6 uses the correct source MAC
address from the local-node interface (16:41:95:40:f7:dc):

$ tcpdump -i enp0s31f6 -e -n "ether src 16:41:95:40:f7:dc or ether src 64:70:02:ae:72:e4 or ether src 8c:16:45:66:ba:11"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s31f6, link-type EN10MB (Ethernet), capture size 262144 bytes
00:15:19.757790 8c:16:45:66:ba:11 > 16:41:95:40:f7:dc, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11 > fdef:ffc0:3dd7::1: ICMP6, echo request, seq 1, length 64
00:15:19.758567 16:41:95:40:f7:dc > 33:33:ff:66:ba:11, ethertype IPv6 (0x86dd), length 86: fdef:ffc0:3dd7::1 > ff02::1:ff66:ba11: ICMP6, neighbor solicitation, who has fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11, length 32
00:15:19.758617 8c:16:45:66:ba:11 > 16:41:95:40:f7:dc, ethertype IPv6 (0x86dd), length 86: fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11 > fdef:ffc0:3dd7::1: ICMP6, neighbor advertisement, tgt is fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11, length 32
00:15:19.759220 16:41:95:40:f7:dc > 8c:16:45:66:ba:11, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7::1 > fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11: ICMP6, echo reply, seq 1, length 64
00:15:20.759425 8c:16:45:66:ba:11 > 16:41:95:40:f7:dc, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11 > fdef:ffc0:3dd7::1: ICMP6, echo request, seq 2, length 64
00:15:20.759966 16:41:95:40:f7:dc > 8c:16:45:66:ba:11, ethertype IPv6 (0x86dd), length 118: fdef:ffc0:3dd7::1 > fdef:ffc0:3dd7:0:8e16:45ff:fe66:ba11: ICMP6, echo reply, seq 2, length 64

In practice, this wrong MAC address does not seem to cause any
issues so far, though, as ebtables rules are filtering to bat0 for both
local-node MAC, IPv4 and IPv6 addresses and the IPv6 stack (at least in
Linux) does not seem to update its neighbor table from IPv6 data packets
(interestingly, contrary to the Linux IPv4 stack, as was observed
with 3ef28a4684
("gluon-client-bridge: Revert "move IPv4 local subnet route to br-client (#1312)").

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-11-15 01:43:49 +01:00
..
gluon-alfred treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-authorized-keys treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-autoupdater treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-client-bridge gluon-client-bridge: Revert "move IPv4 local subnet route to br-client (#1312)" 2018-07-22 16:42:41 +02:00
gluon-config-mode-autoupdater treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-config-mode-contact-info gluon-config-mode-contact-info: allow overriding contact field help and note in site 2018-06-24 19:47:52 +02:00
gluon-config-mode-core gluon-config-mode-core: don't cache index meta redirect 2018-10-11 03:23:29 +02:00
gluon-config-mode-domain-select gluon-config-mode-*: replace nixio with gluon.util 2018-07-17 20:08:16 +02:00
gluon-config-mode-geo-location gluon-config-mode-geo-location-osm: add OSM-based location picker 2018-09-01 11:35:39 +02:00
gluon-config-mode-geo-location-osm gluon-config-mode-geo-location-osm: add OSM-based location picker 2018-09-01 11:35:39 +02:00
gluon-config-mode-hostname gluon-config-mode-hostname: fix site check for prefill 2018-09-29 14:09:28 +02:00
gluon-config-mode-mesh-vpn gluon-mesh-vpn: support ingress bandwidth shaping with tunneldigger (#1460) 2018-07-26 01:26:00 +02:00
gluon-config-mode-theme gluon-web-osm: base on OpenLayers 5, add model class 2018-09-01 11:35:33 +02:00
gluon-core ar71xx: add support for Archer C7 v5 2018-10-15 00:38:18 +02:00
gluon-ebtables treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-ebtables-filter-multicast treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-ebtables-filter-ra-dhcp treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-ebtables-limit-arp treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-ebtables-source-filter treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-iptables-clamp-mss-to-pmtu gluon-iptables-clamp-mss-to-pmtu: add new package 2018-08-02 00:58:51 +02:00
gluon-l3roamd gluon-l3roamd: set gc_thresh for ipv4 and ipv6 to obtain DELNEIGH messages 2018-08-02 00:58:51 +02:00
gluon-lock-password treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-mesh-babel gluon-mesh-babel: add new package 2018-08-02 00:58:51 +02:00
gluon-mesh-batman-adv gluon-mesh-batman-adv: fix source MAC for the IPv6 local-node address 2018-11-15 01:43:49 +01:00
gluon-mesh-vpn-core gluon-mesh-vpn-core: add abstraction layer for VPN interface name (#1518) 2018-08-24 23:21:43 +02:00
gluon-mesh-vpn-fastd treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-mesh-vpn-tunneldigger gluon-mesh-vpn-tunneldigger: fix typo in description 2018-04-15 22:48:23 +02:00
gluon-neighbour-info treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-node-info treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-radv-filterd gluon-radv-filterd: Invalidate originators cache after some time (#1343) 2018-06-05 21:55:30 +02:00
gluon-radvd treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-respondd gluon-respondd: expose MemAvailable 2018-08-25 00:57:44 +02:00
gluon-setup-mode treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-site treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-status-page gluon-status-page: don't cache index meta redirect 2018-10-11 03:23:29 +02:00
gluon-status-page-mesh-batman-adv gluon-status-page: move neighbours-batadv wrapper to batadv-specific package 2018-06-30 16:03:13 +02:00
gluon-wan-dnsmasq gluon-wan-dnsmasq: replace nixio with luaposix 2018-07-17 20:08:15 +02:00
gluon-web gluon-web: add view helper for JSON-encoded values 2018-09-01 11:28:12 +02:00
gluon-web-admin gluon-web-admin: add site-commit to info page (#1482) 2018-07-25 22:30:29 +02:00
gluon-web-autoupdater treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-web-logging treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-web-mesh-vpn-fastd gluon-web-mesh-vpn-fastd: clarify config of default crypto method (#1502) 2018-08-06 21:36:05 +02:00
gluon-web-model gluon-web-model: add custom events for form elements 2018-09-01 11:28:12 +02:00
gluon-web-network gluon-web-network: remove legacy option for wired mesh 2018-04-27 17:48:36 +02:00
gluon-web-node-role treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-web-osm gluon-web-osm: base on OpenLayers 5, add model class 2018-09-01 11:35:33 +02:00
gluon-web-private-wifi treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-web-wifi-config gluon-web-*: replace nixio with luaposix 2018-07-17 20:08:16 +02:00
libbatadv treewide: remove redundant definitions from package Makefiles 2018-03-07 21:23:41 +01:00
libgluonutil treewide: move package Makefile boilerplate to gluon.mk 2018-03-08 19:49:41 +01:00
features package/features: add gluon-ebtables-limit-arp to batman feature (#1516) 2018-09-05 04:45:41 +02:00
gluon.mk treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00