daeuniverse / dae

eBPF-based Linux high-performance transparent proxy solution.
GNU Affero General Public License v3.0
3.35k stars 205 forks source link

[Bug Report] Seemingly DNS failure after a short interval of time #604

Open LEXUGE opened 3 months ago

LEXUGE commented 3 months ago

Checks

Current Behavior

After a certain period of time, dae fails to dial with error:

dial to wss://SERVER: dial tcp: lookup SERVER: device or resource busy

However, the dig SERVER works just fine. Not sure if it's actually a DNS failure.

Expected Behavior

No response

Steps to Reproduce

My config:

global{
  wan_interface: auto

  log_level: info
  allow_insecure: false
  # auto_config_kernel_parameter: true
  dial_mode: domain
}

# Forward all DNS requests to local DNS
dns {
  upstream {
    dcompass: 'udp://127.0.0.1:53'
  }
  routing {
    request {
      fallback: dcompass
    }
  }
}

node {
 v2ray: "NODE DETAIL"
}

group {
  first {
    policy: fixed(0)
  }
}

routing{
  # Don't route dcompass's requests
  pname(NetworkManager, dcompass) -> must_direct

  domain(geosite:category-ads) -> block
  dip(geoip:private) -> direct
  dip(geoip:cn) -> direct
  # domain(geosite:cn) -> direct

  # Don't route games that have server in China.
  domain(geosite:category-games@cn) -> direct

  fallback: first
}

Environment

Anything else?

No response

dae-prow[bot] commented 3 months ago

Thanks for opening this issue!

LEXUGE commented 3 months ago

Seems like it's due to my node doesn't have IPv6 support while IPv6 was used. Disable IPv6 in dae dns resolves this issue. But I suspect dae should handle better?

mzz2017 commented 2 months ago

的确,这种情况应该会被 connectivity check 检测到,你的 group 的 policy 是什么,如果是 fixed 可能会使得检测失效。 另外,你的 group 有几个节点?