DNS
This module allows you to manage DNS zones and records directly within Drupal using content entities. It supports common and modern record types, Unicode domains, and granular access control among collaborators.
Manage DNS zones and records directly in Drupal.
The DNS module provides a modern, extensible system for defining and managing DNS data using Drupal content entities. It supports common and modern record types, strict validation, and a plugin-based architecture for future extensions and provider integrations.
Full documentation is available at project.pages.drupalcode.org/dns, including user guides, developer documentation, and migration instructions.
β¨ Features
- Zone management
- Create, edit, and delete DNS zones
- Unicode (IDN) support with automatic Punycode normalization
- Clean, canonical URLs based on zone names
- Per-zone collaborator delegation with fine-grained capabilities (view/edit/delete zone, CRUD records)
- Record management
- Full CRUD for DNS records within each zone
- Built-in support for common and modern record types:
- A, AAAA, CNAME, NS, MX, TXT, PTR, CAA, SRV, HTTPS, SVCB
- Validation based on DNS RFCs (including CNAME exclusivity rules)
- Modern Drupal architecture
- Zones and records are content entities
- Works with Views, REST, JSON:API, and other entity-based systems
- Plugin-based record type system for extensibility
- Views integration
- Built-in admin listing for records
- Zone pages include embedded record listings
- Custom Views fields for record data
- IDN-aware
- Enter domains like
mΓΌnchen.de - Stored internally as Punycode
- Displayed to users in Unicode
- Enter domains like
- Migration from Drupal 7
- Built-in Migrate support for
dns_zonesanddns_records - Tolerant handling of imperfect legacy data with logged review output
- Built-in Migrate support for
- Tested and CI-enabled
- Extensive unit, kernel, and functional test coverage
- Drupal.org CI (phpcs, phpstan, phpunit, etc.)
π Access model
DNS uses a two-layer access system:
- Site-wide permissions (roles) control general capabilities (create zones, administer DNS)
- Per-zone delegation allows assigning fine-grained capabilities to specific users via collaborators
Records inherit access from their parent zone.
π§ Project status
This is a complete rewrite of the legacy Drupal 7 DNS module.
- Current branch: 2.x
- Status: alpha
- Suitable for testing and early adoption; review before using for production-critical DNS workflows
The 2.x branch is a new architecture, not an in-place upgrade of the 7.x codebase.
β οΈ Current limitations
- No DNS provider integration yet
- Support for Cloudflare, Route 53, PowerDNS, etc. is planned
- Specialty record types in optional module
- Additional DNS types (DNAME, TLSA, SSHFP, etc.) are provided via the optional
dns_extrasmodule
- Additional DNS types (DNAME, TLSA, SSHFP, etc.) are provided via the optional
π§© Extensibility
The module is designed to be extended:
- Add new DNS record types via plugins:
#[RecordType( id: "my_type", label: "My record type" )] - Future provider modules will:
- Implement DNS APIs
- Add provider-specific record types or extensions
π£ Roadmap
- DNS provider integration (Cloudflare, Route 53, etc.)
- SPF builder/validator for TXT records
- IANA TLD validation
- DNS drift detection (compare stored vs live DNS)
π¦ Requirements
- Drupal 10.3+, 11.x
(Drupal 12 compatibility is tracked but not yet guaranteed)
π Drupal 7 users
- The 7.x-1.x branch remains available for Drupal 7 sites
- Use the built-in migration path when upgrading to 2.x
π Documentation
Comprehensive documentation is available at project.pages.drupalcode.org/dns, including:
- User guides and concepts
- Migration instructions from Drupal 7
- Developer documentation and extension points
π¬ Feedback
Bug reports, feature requests, and architecture feedback are welcome in the project issue queue.
π§ Why this module?
- DNS-aware validation and correctness
- Modern Drupal architecture (entities + plugins)
- Extensibility for record types and future providers
- Real-world usability (Views, APIs, IDN handling)
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 2.0.0-alpha3 | Pre-release | 10β11 | Adds per-zone collaborator delegation with capability-based access control, fixes access edge cases, and hardens validation, docs, and migration behavior. | Apr 29, 2026 | |
| 2.0.0-alpha2 | Pre-release | 10β11 | Adds HTTPS/SVCB (RFC 9460) to core, introduces the optional dns_extras submodule, and ships Drupal 7 β 2.x migration. | Apr 28, 2026 | |
| 2.x-dev | Dev | 10β11 | Rolling development snapshot of the 2.x branch. | Apr 27, 2026 | |
| 2.0.0-alpha1 | Pre-release | 10β11 | First alpha of the complete 2.x rewrite for Drupal 10.3+ / 11 β content-entity DNS zones and records, plugin-based architecture, nine built-in record types. | Apr 27, 2026 |