[PR #3032] [MERGED] Add dns interceptor based domain route functionality #16076

Open
opened 2026-08-05 04:05:41 -04:00 by saavagebueno · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbirdio/netbird/pull/3032
Author: @pappz
Created: 12/12/2024
Status: Merged
Merged: 12/13/2024
Merged by: @lixmal

Base: feature/new-networks-conceptHead: dns-interceptor


📝 Commits (10+)

📊 Changes

27 files changed (+1736 additions, -159 deletions)

View changed files

📝 .github/workflows/golangci-lint.yml (+2 -2)
client/internal/dns/handler_chain.go (+192 -0)
client/internal/dns/handler_chain_test.go (+490 -0)
📝 client/internal/dns/mock_server.go (+19 -3)
📝 client/internal/dns/server.go (+74 -20)
📝 client/internal/dns/server_test.go (+4 -2)
📝 client/internal/dns/service_listener.go (+1 -0)
📝 client/internal/dns/upstream.go (+5 -0)
client/internal/dnsfwd/forwarder.go (+120 -0)
client/internal/dnsfwd/manager.go (+106 -0)
📝 client/internal/engine.go (+83 -69)
📝 client/internal/engine_test.go (+11 -10)
📝 client/internal/peer/conn.go (+5 -0)
client/internal/peerstore/store.go (+87 -0)
📝 client/internal/routemanager/client.go (+54 -4)
client/internal/routemanager/dnsinterceptor/handler.go (+334 -0)
📝 client/internal/routemanager/dynamic/route.go (+1 -5)
📝 client/internal/routemanager/manager.go (+68 -23)
📝 client/internal/routemanager/manager_test.go (+3 -3)
📝 client/internal/routemanager/mock.go (+24 -7)

...and 7 more files

📄 Description

Describe your changes

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)
  • Extended the README / documentation, if necessary

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbirdio/netbird/pull/3032 **Author:** [@pappz](https://github.com/pappz) **Created:** 12/12/2024 **Status:** ✅ Merged **Merged:** 12/13/2024 **Merged by:** [@lixmal](https://github.com/lixmal) **Base:** `feature/new-networks-concept` ← **Head:** `dns-interceptor` --- ### 📝 Commits (10+) - [`d77ac20`](https://github.com/netbirdio/netbird/commit/d77ac2076055f6a7ca8e5f22b158f772365c5a9b) Add DNS interceptor - [`16a2867`](https://github.com/netbirdio/netbird/commit/16a2867d694080feecb976d92956a4a836c9a93d) f - [`9d820f1`](https://github.com/netbirdio/netbird/commit/9d820f1eaef3076f435e65f7fe36b6c5adc52341) f - [`d802b7b`](https://github.com/netbirdio/netbird/commit/d802b7b9bafff52a1d6be6d1f47b4817d573df5b) ffffffff - [`d020755`](https://github.com/netbirdio/netbird/commit/d020755dd53569bb50809e434c797bf11e19c9cf) Add dns forwarder service - [`619d899`](https://github.com/netbirdio/netbird/commit/619d899047735514c03af18c9309c4518a6dceb4) DNS forwarder (#3024) - [`da0a54c`](https://github.com/netbirdio/netbird/commit/da0a54c6d62ace2edf301b0f201abba1d8a08341) Implement upstream DNS for intercepted domains (#3027) - [`cb44454`](https://github.com/netbirdio/netbird/commit/cb44454288fddb3fa81ddcd01edb60e6821d82c7) Create thread safe peer store (#3028) - [`0e761b1`](https://github.com/netbirdio/netbird/commit/0e761b1c5e695e24363ebbe78b3bff4104944f1c) Revert domain regex - [`e71e94a`](https://github.com/netbirdio/netbird/commit/e71e94a2adb14051a60d35b1aa25bf5dc65de32b) Fix iOS ### 📊 Changes **27 files changed** (+1736 additions, -159 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/golangci-lint.yml` (+2 -2) ➕ `client/internal/dns/handler_chain.go` (+192 -0) ➕ `client/internal/dns/handler_chain_test.go` (+490 -0) 📝 `client/internal/dns/mock_server.go` (+19 -3) 📝 `client/internal/dns/server.go` (+74 -20) 📝 `client/internal/dns/server_test.go` (+4 -2) 📝 `client/internal/dns/service_listener.go` (+1 -0) 📝 `client/internal/dns/upstream.go` (+5 -0) ➕ `client/internal/dnsfwd/forwarder.go` (+120 -0) ➕ `client/internal/dnsfwd/manager.go` (+106 -0) 📝 `client/internal/engine.go` (+83 -69) 📝 `client/internal/engine_test.go` (+11 -10) 📝 `client/internal/peer/conn.go` (+5 -0) ➕ `client/internal/peerstore/store.go` (+87 -0) 📝 `client/internal/routemanager/client.go` (+54 -4) ➕ `client/internal/routemanager/dnsinterceptor/handler.go` (+334 -0) 📝 `client/internal/routemanager/dynamic/route.go` (+1 -5) 📝 `client/internal/routemanager/manager.go` (+68 -23) 📝 `client/internal/routemanager/manager_test.go` (+3 -3) 📝 `client/internal/routemanager/mock.go` (+24 -7) _...and 7 more files_ </details> ### 📄 Description ## Describe your changes ## Issue ticket number and link ### Checklist - [ ] Is it a bug fix - [ ] Is a typo/documentation fix - [x] Is a feature enhancement - [ ] It is a refactor - [ ] Created tests that fail without the change (if possible) - [ ] Extended the README / documentation, if necessary --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
saavagebueno added the pull-request label 2026-08-05 04:05:41 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#16076