daeuniverse / dae

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

feat: support assist connectivity check (udp-dns) by dns module #543

Closed mzz2017 closed 1 week ago

mzz2017 commented 1 week ago

Background

There were sporadic user reports in the past that tcp+udp did not work properly. I cannot reproduce this problem. One possibility is that the DNS server used for check connectivity is different from the actual DNS, and the dialer server has different connectivity quality (good/poor) to the two DNS servers.

To solve this problem, this PR supports the DNS module to feedback query failures to the connectivity module, thereby assisting in connectivity checks and lowering node priority.

Checklist

Full Changelogs

Issue Reference

Closes #[issue number]

Test Result

douglarek commented 1 week ago

Tested and passed on soft routing (Linux 6.6.32 aarch64 GNU/Linux). Btw, thanks to mzz for this passionate weekend of coding.