[GH-ISSUE #5748] Networks routing peer not forwarding traffic to LAN subnet - clients cannot reach local network #11932

Open
opened 2026-08-05 01:31:42 -04:00 by saavagebueno · 0 comments
Owner

Originally created by @johngianni on GitHub (Mar 31, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5748

Describe the problem

When configuring a Network with a subnet resource (10.0.0.0/24) and a routing peer, clients connected to the mesh cannot reach any host on the local subnet. The routing peer itself is reachable via its NetBird IP but traffic is not forwarded to other LAN hosts.
Investigation of iptables shows that NETBIRD-RT-FWD-IN and NETBIRD-RT-FWD-OUT chains are created but contain only RELATED,ESTABLISHED rules. The mangle table correctly marks new packets with 0x1bd21 and 0x1bd22 but no corresponding ACCEPT rules are added in the FORWARD chain for these marks. New connection packets hit the DROP rule and are discarded.

To Reproduce

  1. Install NetBird client on Ubuntu 22.04 ARM64 host that also runs Docker
  2. Connect client to a self-hosted NetBird server
  3. Configure a Network with subnet resource 10.0.0.0/24 and assign the Ubuntu host as routing peer
  4. Connect a second peer (macOS or iOS client)
  5. Try to ping or reach any LAN host other than the routing peer itself

Expected behavior

Connected clients should be able to reach all hosts on 10.0.0.0/24 through the routing peer.

Are you using NetBird Cloud?

Self-hosted, version 0.67.1.

NetBird version

0.67.1 (both server and client)

Is any other VPN software installed?

No. Docker is running on the same host as the routing peer.

Debug output

NetBird Details on Routing Peer:

netbird status -dA
Peers detail:
 ha-peer.netbird.selfhosted:
  NetBird IP: 100.92.123.4
  Public key: XXXXXXXXXXXXX
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/host
  ICE candidate endpoints (Local/Remote): 10.0.0.58:42630/10.0.0.51:51820
  Relay server address: rels://netbird.XXXXXXXX.domain:443
  Last connection update: 6 minutes, 54 seconds ago
  Last WireGuard handshake: 40 seconds ago
  Transfer status (received/sent) 368 B/1.2 KiB
  Quantum resistance: false
  Networks: -
  Latency: 11.598128ms

 iphone-ilpr3s.netbird.selfhosted:
  NetBird IP: 100.92.157.119
  Public key: XXXXXXXXXXXXXXX
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://netbird.XXXXXXXXX.domain:443
  Last connection update: 6 minutes, 54 seconds ago
  Last WireGuard handshake: 39 seconds ago
  Transfer status (received/sent) 400 B/1.2 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

 imac-di-filippo.netbird.selfhosted:
  NetBird IP: 100.92.192.249
  Public key: XXXXXXXXXX
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://netbird.XXXXXXXX.domain:443
  Last connection update: 6 minutes, 54 seconds ago
  Last WireGuard handshake: 1 minute, 44 seconds ago
  Transfer status (received/sent) 1.3 KiB/1.7 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

Events:
  [INFO] SYSTEM (XXXXXXXXXXXXX)
    Message: Network map updated
    Time: 6 minutes, 54 seconds ago
OS: linux/arm64
Daemon version: 0.67.1
CLI version: 0.67.1
Profile: default
Management: Connected to https://netbird.XXXXXXXX.domain:443
Signal: Connected to https://netbird.XXXXXXX.domain:443
Relays: 
  [stun:netbird.XXXXXXX.domain:3478] is Available
  [rels://netbird.XXXXXXXX.domain:443] is Available
Nameservers: 
  [10.0.0.1:53] for [XXXXXXX.domain] is Available
FQDN: johngianni-desktop.netbird.selfhosted
NetBird IP: 100.92.116.34/16
Interface type: Userspace
Quantum resistance: false
Lazy connection: false
SSH Server: Disabled
Networks: 10.0.0.0/24
Peers count: 3/3 Connected

NetBird details on remote client

Peers detail:
 johngianni-desktop.netbird.selfhosted:
  NetBird IP: 100.92.116.34
  Public key: XXXXXXXXXXXX
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://netbird.XXXX.it:443
  Last connection update: 11 minutes ago
  Last WireGuard handshake: 1 minute, 26 seconds ago
  Transfer status (received/sent) 5.6 KiB/2.3 KiB
  Quantum resistance: false
  Networks: -
  Latency: 0s

 ha-peer.netbird.selfhosted:
  NetBird IP: 100.92.123.4
  Public key: XXXXXXXXXXXXXXX
  Status: Connected
  -- detail --
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-
  ICE candidate endpoints (Local/Remote): -/-
  Relay server address: rels://netbird.XXXX.it:443
  Last connection update: 16 minutes, 42 seconds ago
  Last WireGuard handshake: 40 seconds ago
  Transfer status (received/sent) 3.9 KiB/252.1 KiB
  Quantum resistance: false
  Networks: 10.0.0.0/24
  Latency: 0s

Events:
  [INFO] SYSTEM (XXXXXXXX)
    Message: Network map updated
    Time: 37 minutes, 57 seconds ago
  [WARNING] DNS (XXXXXXXXXXXXX)
    Message: All upstream servers failed (probe failed)
    Time: 37 minutes, 57 seconds ago
    Metadata: upstreams: 10.0.0.1:53
  [INFO] SYSTEM (XXXXXXXXXXXXX)
    Message: Network map updated
    Time: 37 minutes, 15 seconds ago
  [WARNING] DNS (XXXXXXXXXXXXX)
    Message: All upstream servers failed (probe failed)
    Time: 37 minutes, 14 seconds ago
    Metadata: upstreams: 10.0.0.1:53
  [INFO] SYSTEM (XXXXXXXXXXXXX)
    Message: Network map updated
    Time: 23 minutes, 46 seconds ago
  [WARNING] DNS (XXXXXXXXXXXXX)
    Message: All upstream servers failed (probe failed)
    Time: 23 minutes, 46 seconds ago
    Metadata: upstreams: 10.0.0.1:53
  [INFO] SYSTEM (XXXXXXXXXXXXX)
    Message: Network map updated
    Time: 21 minutes, 53 seconds ago
  [WARNING] DNS (XXXXXXXXXXXXX)
    Message: All upstream servers failed (probe failed)
    Time: 21 minutes, 52 seconds ago
    Metadata: upstreams: 10.0.0.1:53
  [INFO] SYSTEM XXXXXXXXXXXXX)
    Message: Network map updated
    Time: 16 minutes, 43 seconds ago
  [WARNING] DNS (XXXXXXXXXXXXX)
    Message: All upstream servers failed (probe failed)
    Time: 16 minutes, 42 seconds ago
    Metadata: upstreams: 10.0.0.1:53
OS: darwin/amd64
Daemon version: 0.67.1
CLI version: 0.67.1
Profile: default
Management: Connected to https://netbird.XXXX.it:443
Signal: Connected to https://netbird.XXXX.it:443
Relays: 
  [stun:netbird.XXXX.it:3478] is Available
  [rels://netbird.XXXX.it:443] is Available
Nameservers: 
  [10.0.0.1:53] for [XXXX.it] is Unavailable, reason: 1 error occurred:
	* with udp: read udp 100.92.192.249:52548->10.0.0.1:53: i/o timeout
FQDN: imac-di-filippo.netbird.selfhosted
NetBird IP: 100.92.192.249/16
Interface type: Userspace
Quantum resistance: false
Lazy connection: false
SSH Server: Disabled
Networks: -
Peers count: 2/2 Connected

debug Routing Peer
1d22df4510e4bd0ca9a10e2f8251fcd3f476263de08a76587bc5a7820e91f7eb/baf9e168-be10-48ea-88c3-6aaf0a92aba5

debug Client
1d22df4510e4bd0ca9a10e2f8251fcd3f476263de08a76587bc5a7820e91f7eb/1981fac6-ff19-44f7-bcad-566cae150de9

Additional context

Routing peer uses userspace WireGuard interface (wt0) — kernel WireGuard module is not loaded
Docker runs on the same host and manages its own iptables rules
Issue persists after full NetBird reinstall and complete iptables flush followed by Docker restart
Connection type between all peers is Relayed (symmetric NAT router)

Have you tried these troubleshooting steps?

Reviewed client troubleshooting
Checked for newer NetBird versions
Searched for similar issues on GitHub (including closed ones)
Restarted the NetBird client
Disabled other VPN software
Checked firewall settings

Originally created by @johngianni on GitHub (Mar 31, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5748 **Describe the problem** When configuring a Network with a subnet resource (10.0.0.0/24) and a routing peer, clients connected to the mesh cannot reach any host on the local subnet. The routing peer itself is reachable via its NetBird IP but traffic is not forwarded to other LAN hosts. Investigation of iptables shows that NETBIRD-RT-FWD-IN and NETBIRD-RT-FWD-OUT chains are created but contain only RELATED,ESTABLISHED rules. The mangle table correctly marks new packets with 0x1bd21 and 0x1bd22 but no corresponding ACCEPT rules are added in the FORWARD chain for these marks. New connection packets hit the DROP rule and are discarded. **To Reproduce** 1. Install NetBird client on Ubuntu 22.04 ARM64 host that also runs Docker 2. Connect client to a self-hosted NetBird server 3. Configure a Network with subnet resource `10.0.0.0/24` and assign the Ubuntu host as routing peer 4. Connect a second peer (macOS or iOS client) 5. Try to ping or reach any LAN host other than the routing peer itself **Expected behavior** Connected clients should be able to reach all hosts on `10.0.0.0/24` through the routing peer. **Are you using NetBird Cloud?** Self-hosted, version 0.67.1. **NetBird version** 0.67.1 (both server and client) **Is any other VPN software installed?** No. Docker is running on the same host as the routing peer. **Debug output** NetBird Details on Routing Peer: ``` netbird status -dA Peers detail: ha-peer.netbird.selfhosted: NetBird IP: 100.92.123.4 Public key: XXXXXXXXXXXXX Status: Connected -- detail -- Connection type: P2P ICE candidate (Local/Remote): host/host ICE candidate endpoints (Local/Remote): 10.0.0.58:42630/10.0.0.51:51820 Relay server address: rels://netbird.XXXXXXXX.domain:443 Last connection update: 6 minutes, 54 seconds ago Last WireGuard handshake: 40 seconds ago Transfer status (received/sent) 368 B/1.2 KiB Quantum resistance: false Networks: - Latency: 11.598128ms iphone-ilpr3s.netbird.selfhosted: NetBird IP: 100.92.157.119 Public key: XXXXXXXXXXXXXXX Status: Connected -- detail -- Connection type: Relayed ICE candidate (Local/Remote): -/- ICE candidate endpoints (Local/Remote): -/- Relay server address: rels://netbird.XXXXXXXXX.domain:443 Last connection update: 6 minutes, 54 seconds ago Last WireGuard handshake: 39 seconds ago Transfer status (received/sent) 400 B/1.2 KiB Quantum resistance: false Networks: - Latency: 0s imac-di-filippo.netbird.selfhosted: NetBird IP: 100.92.192.249 Public key: XXXXXXXXXX Status: Connected -- detail -- Connection type: Relayed ICE candidate (Local/Remote): -/- ICE candidate endpoints (Local/Remote): -/- Relay server address: rels://netbird.XXXXXXXX.domain:443 Last connection update: 6 minutes, 54 seconds ago Last WireGuard handshake: 1 minute, 44 seconds ago Transfer status (received/sent) 1.3 KiB/1.7 KiB Quantum resistance: false Networks: - Latency: 0s Events: [INFO] SYSTEM (XXXXXXXXXXXXX) Message: Network map updated Time: 6 minutes, 54 seconds ago OS: linux/arm64 Daemon version: 0.67.1 CLI version: 0.67.1 Profile: default Management: Connected to https://netbird.XXXXXXXX.domain:443 Signal: Connected to https://netbird.XXXXXXX.domain:443 Relays: [stun:netbird.XXXXXXX.domain:3478] is Available [rels://netbird.XXXXXXXX.domain:443] is Available Nameservers: [10.0.0.1:53] for [XXXXXXX.domain] is Available FQDN: johngianni-desktop.netbird.selfhosted NetBird IP: 100.92.116.34/16 Interface type: Userspace Quantum resistance: false Lazy connection: false SSH Server: Disabled Networks: 10.0.0.0/24 Peers count: 3/3 Connected ``` NetBird details on remote client ``` Peers detail: johngianni-desktop.netbird.selfhosted: NetBird IP: 100.92.116.34 Public key: XXXXXXXXXXXX Status: Connected -- detail -- Connection type: Relayed ICE candidate (Local/Remote): -/- ICE candidate endpoints (Local/Remote): -/- Relay server address: rels://netbird.XXXX.it:443 Last connection update: 11 minutes ago Last WireGuard handshake: 1 minute, 26 seconds ago Transfer status (received/sent) 5.6 KiB/2.3 KiB Quantum resistance: false Networks: - Latency: 0s ha-peer.netbird.selfhosted: NetBird IP: 100.92.123.4 Public key: XXXXXXXXXXXXXXX Status: Connected -- detail -- Connection type: Relayed ICE candidate (Local/Remote): -/- ICE candidate endpoints (Local/Remote): -/- Relay server address: rels://netbird.XXXX.it:443 Last connection update: 16 minutes, 42 seconds ago Last WireGuard handshake: 40 seconds ago Transfer status (received/sent) 3.9 KiB/252.1 KiB Quantum resistance: false Networks: 10.0.0.0/24 Latency: 0s Events: [INFO] SYSTEM (XXXXXXXX) Message: Network map updated Time: 37 minutes, 57 seconds ago [WARNING] DNS (XXXXXXXXXXXXX) Message: All upstream servers failed (probe failed) Time: 37 minutes, 57 seconds ago Metadata: upstreams: 10.0.0.1:53 [INFO] SYSTEM (XXXXXXXXXXXXX) Message: Network map updated Time: 37 minutes, 15 seconds ago [WARNING] DNS (XXXXXXXXXXXXX) Message: All upstream servers failed (probe failed) Time: 37 minutes, 14 seconds ago Metadata: upstreams: 10.0.0.1:53 [INFO] SYSTEM (XXXXXXXXXXXXX) Message: Network map updated Time: 23 minutes, 46 seconds ago [WARNING] DNS (XXXXXXXXXXXXX) Message: All upstream servers failed (probe failed) Time: 23 minutes, 46 seconds ago Metadata: upstreams: 10.0.0.1:53 [INFO] SYSTEM (XXXXXXXXXXXXX) Message: Network map updated Time: 21 minutes, 53 seconds ago [WARNING] DNS (XXXXXXXXXXXXX) Message: All upstream servers failed (probe failed) Time: 21 minutes, 52 seconds ago Metadata: upstreams: 10.0.0.1:53 [INFO] SYSTEM XXXXXXXXXXXXX) Message: Network map updated Time: 16 minutes, 43 seconds ago [WARNING] DNS (XXXXXXXXXXXXX) Message: All upstream servers failed (probe failed) Time: 16 minutes, 42 seconds ago Metadata: upstreams: 10.0.0.1:53 OS: darwin/amd64 Daemon version: 0.67.1 CLI version: 0.67.1 Profile: default Management: Connected to https://netbird.XXXX.it:443 Signal: Connected to https://netbird.XXXX.it:443 Relays: [stun:netbird.XXXX.it:3478] is Available [rels://netbird.XXXX.it:443] is Available Nameservers: [10.0.0.1:53] for [XXXX.it] is Unavailable, reason: 1 error occurred: * with udp: read udp 100.92.192.249:52548->10.0.0.1:53: i/o timeout FQDN: imac-di-filippo.netbird.selfhosted NetBird IP: 100.92.192.249/16 Interface type: Userspace Quantum resistance: false Lazy connection: false SSH Server: Disabled Networks: - Peers count: 2/2 Connected ``` debug Routing Peer 1d22df4510e4bd0ca9a10e2f8251fcd3f476263de08a76587bc5a7820e91f7eb/baf9e168-be10-48ea-88c3-6aaf0a92aba5 debug Client 1d22df4510e4bd0ca9a10e2f8251fcd3f476263de08a76587bc5a7820e91f7eb/1981fac6-ff19-44f7-bcad-566cae150de9 **Additional context** Routing peer uses userspace WireGuard interface (wt0) — kernel WireGuard module is not loaded Docker runs on the same host and manages its own iptables rules Issue persists after full NetBird reinstall and complete iptables flush followed by Docker restart Connection type between all peers is Relayed (symmetric NAT router) **Have you tried these troubleshooting steps?** Reviewed client troubleshooting Checked for newer NetBird versions Searched for similar issues on GitHub (including closed ones) Restarted the NetBird client Disabled other VPN software Checked firewall settings
saavagebueno added the triage-needed label 2026-08-05 01:31:42 -04:00
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11932