torrust_tracker_deployer_lib/infrastructure/dns/mod.rs
1//! DNS resolution module
2//!
3//! This module provides DNS resolution capabilities for validating that configured
4//! domains resolve to the expected IP addresses. This is used by the `test` command
5//! to provide advisory warnings about DNS configuration without failing tests.
6//!
7//! ## Design Philosophy
8//!
9//! DNS resolution checks are **advisory only** - they provide early warnings about
10//! potential DNS issues without blocking infrastructure tests. This separation is
11//! intentional:
12//!
13//! - **Service tests**: Verify applications work (using internal IP resolution)
14//! - **DNS checks**: Verify external access will work (using system DNS)
15//!
16//! ## Use Cases
17//!
18//! - Validating DNS configuration after deployment
19//! - Detecting DNS propagation delays
20//! - Troubleshooting accessibility issues
21//! - Verifying `/etc/hosts` entries for `.local` domains
22//!
23//! ## Execution Context
24//!
25//! DNS resolution runs from the **deployer machine** (not inside the VM) to test
26//! how external users would resolve domain names. This matches the real-world
27//! access pattern where users connect from outside the infrastructure.
28
29pub mod resolver;
30
31pub use resolver::{DnsResolutionError, DnsResolver};