Skip to content

fix: resolve network scan hangs and subnet misclassification on Unraid#381

Merged
mayanayza merged 1 commit intodevfrom
fix/daemon-timeout
Dec 28, 2025
Merged

fix: resolve network scan hangs and subnet misclassification on Unraid#381
mayanayza merged 1 commit intodevfrom
fix/daemon-timeout

Conversation

@mayanayza
Copy link
Collaborator

This addresses two issues affecting network discovery reliability:

  1. ARP Scan Hang (Network scan not working docker on unraid. #374): Network scans hung indefinitely when targets didn't respond to ARP requests. The datalink channel was using default config with no read_timeout, causing rx.next() to block forever. Added 100ms read_timeout to allow deadline checks.

  2. Subnet Misclassification (Network scan not working docker on unraid. #374): On Unraid/Proxmox systems where the physical LAN uses a bridge interface (br0), subnets were incorrectly classified as DockerBridge, causing network discovery to skip them.

    Root cause: Docker's macvlan/ipvlan networks (used for container LAN access) were being treated the same as bridge networks, and the filter logic was backwards - removing host subnets instead of Docker subnets when CIDRs overlapped.

    Fixes: - Filter Docker networks by driver type: only bridge/overlay are DockerBridge, skip macvlan/ipvlan/host - Flip filter precedence: host interfaces take priority over Docker networks with same CIDR - Add br to LAN interface patterns (distinct from br- which is Docker's convention)

  This addresses two issues affecting network discovery reliability:

  1. ARP Scan Hang (#374): Network scans hung indefinitely when targets
     didn't respond to ARP requests. The datalink channel was using
     default config with no read_timeout, causing rx.next() to block
     forever. Added 100ms read_timeout to allow deadline checks.

  2. Subnet Misclassification (#374): On Unraid/Proxmox systems where
     the physical LAN uses a bridge interface (br0), subnets were
     incorrectly classified as DockerBridge, causing network discovery
     to skip them.

     Root cause: Docker's macvlan/ipvlan networks (used for container
     LAN access) were being treated the same as bridge networks, and
     the filter logic was backwards - removing host subnets instead of
     Docker subnets when CIDRs overlapped.

     Fixes:
     - Filter Docker networks by driver type: only bridge/overlay are
       DockerBridge, skip macvlan/ipvlan/host
     - Flip filter precedence: host interfaces take priority over
       Docker networks with same CIDR
     - Add br to LAN interface patterns (distinct from br- which
       is Docker's convention)
@mayanayza mayanayza merged commit 96d3b0d into dev Dec 28, 2025
3 checks passed
@mayanayza mayanayza deleted the fix/daemon-timeout branch December 31, 2025 04:02
mayanayza added a commit that referenced this pull request Feb 24, 2026
  fix: resolve network scan hangs and subnet misclassification on Unraid
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant