docs: add nordvpn macos dns plan
This commit is contained in:
40
docs/plans/2026-03-12-nordvpn-macos-dns-design.md
Normal file
40
docs/plans/2026-03-12-nordvpn-macos-dns-design.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# NordVPN macOS DNS Design
|
||||
|
||||
## Goal
|
||||
Keep NordVPN DNS while connected on macOS, but only apply it to active physical services so the WireGuard backend does not break Tailscale or other virtual interfaces.
|
||||
|
||||
## Behavior
|
||||
- Keep the generated WireGuard config free of `DNS = ...`
|
||||
- During `connect` on macOS:
|
||||
- detect active physical network services
|
||||
- snapshot current DNS/search-domain settings
|
||||
- set NordVPN DNS only on those physical services
|
||||
- During `disconnect`:
|
||||
- restore the saved DNS/search-domain settings
|
||||
- During failed `connect` after DNS changes:
|
||||
- restore DNS before returning the error
|
||||
|
||||
## DNS Values
|
||||
- IPv4 primary: `103.86.96.100`
|
||||
- IPv4 secondary: `103.86.99.100`
|
||||
- No IPv6 DNS for now
|
||||
|
||||
## Service Selection
|
||||
Include only enabled physical services from `networksetup`.
|
||||
Exclude names matching:
|
||||
- Tailscale
|
||||
- Bridge
|
||||
- Thunderbolt Bridge
|
||||
- Loopback
|
||||
- VPN
|
||||
- utun
|
||||
|
||||
## Persistence
|
||||
- Save DNS snapshot under `~/.nordvpn-client`
|
||||
- Overwrite on each successful connect
|
||||
- Clear after successful disconnect restore
|
||||
|
||||
## Verification
|
||||
- Unit tests for service selection and DNS snapshot/restore helpers
|
||||
- Direct logic/config tests
|
||||
- Avoid live connect tests from this session unless explicitly requested because they can drop connectivity
|
||||
11
docs/plans/2026-03-12-nordvpn-macos-dns.md
Normal file
11
docs/plans/2026-03-12-nordvpn-macos-dns.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# NordVPN macOS DNS Plan
|
||||
|
||||
1. Add macOS DNS state file support under `~/.nordvpn-client`.
|
||||
2. Implement helpers to enumerate eligible physical services and snapshot existing DNS/search-domain settings.
|
||||
3. Implement helpers to apply NordVPN DNS only to eligible physical services.
|
||||
4. Implement helpers to restore previous DNS/search-domain settings on disconnect or failed connect.
|
||||
5. Add unit tests for service filtering and DNS state transitions.
|
||||
6. Update skill/docs to explain macOS physical-service DNS management.
|
||||
7. Sync the installed workspace copy.
|
||||
8. Run tests and non-destructive verification.
|
||||
9. Commit and push.
|
||||
Reference in New Issue
Block a user