{
 "issue": {
  "id": 717,
  "iid": 37,
  "project_id": 400,
  "title": "srv02: Freifunk subnet is routed over Magrathea uplink (enp1s0) instead of ffhl",
  "description": "The following (redundant) route was added in systemd-networkd:\n\n```\n[Route]\nDestination=2001:67c:2d50::/64\nSource=2001:67c:2d50::/64\n```\n\nAnd resulted in the weird behaviour that traffic to the ffhl subnet (2001:67c:2d50::/64) was routed over the wrong interface:\n\n```\ntux@srv02:~$ sudo ip -6 route show table cache\n2001:67c:2d50:0:6a72:51ff:fe3a:ba63 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 382sec mtu 1480 pref medium\n2001:67c:2d50:0:1ad6:c7ff:fe51:7cf6 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 320sec mtu 1480 pref medium\n2001:67c:2d50:0:eade:27ff:feb3:184 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 36sec mtu 1480 pref medium\n2001:67c:2d50:0:6a72:51ff:fe32:27d9 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 27sec mtu 1480 pref medium\n2001:67c:2d50:0:f6f2:6dff:fe52:80f2 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 261sec mtu 1480 pref medium\n2001:67c:2d50:0:e0ae:aaff:fee6:5c3 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 439sec mtu 1480 pref medium\n2001:67c:2d50:0:f6f2:6dff:fe52:7ec8 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 140sec mtu 1480 pref medium\n2001:67c:2d50:0:26a4:3cff:fe69:aba0 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 382sec mtu 1480 pref medium\n2001:67c:2d50:0:c66e:1fff:fe2c:9424 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 261sec mtu 1480 pref medium\n2001:67c:2d50:0:f6f2:6dff:fe40:46f6 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 566sec mtu 1480 pref medium\n2001:67c:2d50:0:c66e:1fff:fec9:c5dc via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 445sec mtu 1480 pref medium\n2001:67c:2d50:0:26a4:3cff:fea0:e919 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 593sec mtu 1480 pref medium\n2001:67c:2d50:0:f2b0:14ff:fe51:2787 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 85sec mtu 1480 pref medium\n2001:67c:2d50:0:26a4:3cff:fe7d:d01b via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 322sec mtu 1480 pref medium\n2001:67c:2d50:0:eade:27ff:fe65:9c52 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 20sec mtu 1480 pref medium\n2001:67c:2d50:0:6670:2ff:fe91:5314 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 264sec mtu 1480 pref medium\n2001:67c:2d50:0:618:d6ff:fecb:6206 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 505sec mtu 1480 pref medium\n2001:67c:2d50:0:6670:2ff:fed1:8c9c via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 380sec mtu 1480 pref medium\n2001:67c:2d50:0:32b5:c2ff:fe22:ae0c via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 141sec mtu 1480 pref medium\n2001:67c:2d50:0:e263:daff:fe06:4bb5 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 20sec mtu 1480 pref medium\n2001:67c:2d50:0:d66e:eff:fef5:cbae via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 105sec mtu 1480 pref medium\n2001:67c:2d50:0:618:d6ff:fe91:f6b0 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 82sec mtu 1480 pref medium\n2001:67c:2d50:0:74cd:ffff:fe3d:e38f via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 352sec mtu 1480 pref medium\n2001:67c:2d50:0:fa1a:67ff:fed0:a120 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 440sec mtu 1480 pref medium\n2001:67c:2d50:0:26a4:3cff:fe9a:57d5 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 507sec mtu 1480 pref medium\n2001:67c:2d50:0:7cb7:27ff:fe32:7154 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 139sec mtu 1480 pref medium\n2001:67c:2d50:0:fa1a:67ff:fed8:e226 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 269sec mtu 1480 pref medium\n2001:67c:2d50:0:46d1:faff:fe5a:ca4 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 332sec mtu 1480 pref medium\n2001:67c:2d50:0:6670:2ff:feae:72e4 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 563sec mtu 1480 pref medium\n2001:67c:2d50:0:9683:c4ff:fe01:762d via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 267sec mtu 1480 pref medium\n2001:67c:2d50:0:216:3eff:fe02:3560 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 562sec mtu 1480 pref medium\n2001:67c:2d50:0:62e3:27ff:fef5:3390 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 265sec mtu 1480 pref medium\n2001:67c:2d50:0:26a4:3cff:fea0:e8d2 via 2a01:4f8:262:48c2:1::1 dev enp1s0 metric 1024 expires 326sec mtu 1480 pref medium\ntux@srv02:~$ ^C\ntux@srv02:~$ ip -6 r s\n::1 dev lo proto kernel metric 256 pref medium\n2001:67c:2d50::/64 from 2001:67c:2d50::/64 dev ffhl proto static metric 1024 pref medium\n2001:67c:2d50::/64 dev ffhl proto kernel metric 256 pref medium\n2a01:4f8:262:48c2::/64 dev enp1s0 proto kernel metric 256 pref medium\nfdef:ffc0:3dd7::/48 dev ffhl proto kernel metric 256 pref medium\nfe80::/64 dev ffhl proto kernel metric 256 pref medium\ndefault via 2a01:4f8:262:48c2:1::1 dev enp1s0 proto static metric 1024 pref medium\ntux@srv02:~$ ip -6 a s dev ffhl\n4: ffhl: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000\n    inet6 2001:67c:2d50::10/64 scope global \n       valid_lft forever preferred_lft forever\n    inet6 fdef:ffc0:3dd7::10/48 scope global \n       valid_lft forever preferred_lft forever\n    inet6 fe80::6866:fff:fecb:43cd/64 scope link \n       valid_lft forever preferred_lft forever\ntux@srv02:~$ ^C\ntux@srv02:~$ ^C\ntux@srv02:~$ ip -6 route get 2001:67c:2d50::bcd7:94ff:fefd:2ddd\n2001:67c:2d50:0:bcd7:94ff:fefd:2ddd from :: via 2a01:4f8:262:48c2:1::1 dev enp1s0 proto static src 2a01:4f8:262:48c2:1::3 metric 1024 pref medium\n```\n\nSimply removing this setting from systemd-networkd fixes this issue:\n\n```\ntux@srv02:~$ ip -6 route get 2001:67c:2d50::bcd7:94ff:fefd:2ddd\n2001:67c:2d50:0:bcd7:94ff:fefd:2ddd from :: dev ffhl proto kernel src 2001:67c:2d50::10 metric 256 pref medium\ntux@srv02:~$\n```\n\nLinux:\n\n```\ntux@srv02:~$ uname -a\nLinux srv02 5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17) x86_64 GNU/Linux\n```",
  "state": "opened",
  "created_at": "2022-08-25T20:39:44.082Z",
  "updated_at": "2022-08-25T20:40:21.205Z",
  "closed_at": null,
  "closed_by": null,
  "labels": [],
  "milestone": null,
  "assignees": [],
  "author": {
   "id": 4,
   "username": "tux",
   "public_email": "",
   "name": "Linus L\u00fcssing",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/136494b2c221809b086123f59384d25e22cd3d2131230a809b06551e12ba7bbb?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/tux"
  },
  "type": "ISSUE",
  "assignee": null,
  "user_notes_count": 0,
  "merge_requests_count": 0,
  "upvotes": 0,
  "downvotes": 0,
  "start_date": null,
  "due_date": null,
  "confidential": false,
  "discussion_locked": null,
  "issue_type": "issue",
  "web_url": "https://git.chaotikum.org/freifunk-luebeck/gateway-config/-/work_items/37",
  "time_stats": {
   "time_estimate": 0,
   "total_time_spent": 0,
   "human_time_estimate": null,
   "human_total_time_spent": null
  },
  "task_completion_status": {
   "count": 0,
   "completed_count": 0
  },
  "has_tasks": true,
  "task_status": "0 of 0 checklist items completed",
  "_links": {
   "self": "https://git.chaotikum.org/api/v4/projects/400/issues/37",
   "notes": "https://git.chaotikum.org/api/v4/projects/400/issues/37/notes",
   "award_emoji": "https://git.chaotikum.org/api/v4/projects/400/issues/37/award_emoji",
   "project": "https://git.chaotikum.org/api/v4/projects/400",
   "closed_as_duplicate_of": null
  },
  "references": {
   "short": "#37",
   "relative": "#37",
   "full": "freifunk-luebeck/gateway-config#37"
  },
  "severity": "UNKNOWN",
  "moved_to_id": null,
  "imported": false,
  "imported_from": "none",
  "service_desk_reply_to": null
 },
 "discussions": [
  {
   "id": "ad0d19bd0d4e50d30525a19c7636ff389a6b33c0",
   "reply_id": "ad0d19bd0d4e50d30525a19c7636ff389a6b33c0",
   "project_id": 400,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/freifunk-luebeck/gateway-config/-/issues/37/discussions/ad0d19bd0d4e50d30525a19c7636ff389a6b33c0/resolve",
   "notes": [
    {
     "id": "1684",
     "type": null,
     "author": {
      "id": 4,
      "username": "tux",
      "public_email": "",
      "name": "Linus L\u00fcssing",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/136494b2c221809b086123f59384d25e22cd3d2131230a809b06551e12ba7bbb?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/tux",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-08-25T20:40:21.288Z",
     "updated_at": "2022-08-25T20:40:21.291Z",
     "system": true,
     "noteable_id": 717,
     "noteable_type": "Issue",
     "project_id": 400,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 37,
     "commands_changes": {},
     "external_author": null,
     "note": "changed the description",
     "note_html": "<p data-sourcepos=\"1:1-1:23\" dir=\"auto\">changed the description</p>",
     "body_first_line_html": "<p>changed the description</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "is_noteable_author": true,
     "discussion_id": "ad0d19bd0d4e50d30525a19c7636ff389a6b33c0",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/freifunk-luebeck/gateway-config/-/work_items/37#note_1684",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "gateway-config",
     "path": "/freifunk-luebeck/gateway-config/notes/1684"
    }
   ]
  }
 ]
}