DDNS - Dynamic Domain Name System
What is DDNS?
DDNS stands for Dynamic Domain Name System. It is a service that automatically updates DNS records when a device’s IP address changes, allowing you to access your device using a consistent domain name, even if its IP address is dynamic.
Why is DDNS useful?
You have a dynamic IP address from your ISP (common in home networks)
You want to remotely access your home server, CCTV, or IoT device
You don’t want to manually update DNS records every time your IP changes
How it works (in simple steps):
Device gets a new IP address – Usually assigned by the ISP via DHCP.
DDNS client detects the change- A small program running on your device or router notices new IP.
Client updates the DNS record – It contacts the DDNS provider and updates your domain name with the new IP.
Domain stays reachable – Anyone using your domain name is directed to the correct, updated IP address.
Where is DDNS used?
Home servers – To host websites, game servers, or file sharing from home.
Remote access – For accessing security cameras, NAS devices, or routers.
IoT and smart home – To connect to devices that don’t have static IPs.
Small businesses – That need remote access without paying for static IPs.
Which OSI layer does this protocol belong to?
It interacts with DNS services, which are application-level protocols.
It uses HTTP, HTTPS, or proprietary APIs to update DNS records.
It provides a user-facing service that maps domain names to IP addresses dynamically.
Topics in this section,
In this section, you are going to learn
Terminology
Version Info
DDNS Version |
RFC |
Year |
Core Idea / Contribution |
---|---|---|---|
DDNS v1 |
|||
RFC 2136 |
1997 |
Introduced dynamic updates to DNS records without restarting the server. |
|
TSIG (Security) |
|||
RFC 2845 |
2000 |
Transaction Signature (TSIG) for authenticating DDNS updates. |
|
TKEY (Key Exchange) |
|||
RFC 2930 |
2000 |
Mechanism for establishing shared secret keys for TSIG. |
|
SIG(0) (Alt. Auth) |
|||
RFC 2931 |
2000 |
Public key-based authentication for DNS updates. |
|
DHCP-DDNS Link |
|||
RFC 4701 4703 |
2006 |
Integration of DHCP with DDNS, including FQDN option and update behavior. |
|
Secure DHCP-DDNS |
|||
RFC 4361 |
2006 |
DHCPv4 client identifier for secure DDNS updates. |
Setup
Setup
Update Request Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
1 |
Update Request Packet |
Sent by the client to request changes to DNS records |
variable |
Header |
Identifies the message as an update and includes operation codes and flags |
12 |
|
ID |
Identifier for matching responses. |
2 |
|
Flags |
Opcode set to UPDATE (value 5), response codes, etc. |
2 |
|
ZCOUNT |
Number of entries in the Zone section. |
2 |
|
PRCOUNT |
Number of entries in the Prerequisite section. |
2 |
|
UPCOUNT |
Number of entries in the Update section. |
2 |
|
ADCOUNT |
Number of entries in the Additional section. |
2 |
|
Zone Section |
Specifies the zone (domain) to be updated |
||
NAME |
The domain name of the zone to be updated. |
variable |
|
TYPE |
Must be SOA (Start of Authority) to indicate a zone update. |
2 |
|
CLASS |
The class of the zone, typically IN (Internet). |
2 |
|
Prerequisite Section |
Specifies conditions that must be true before the update is applied |
variable |
|
NAME |
The domain name to check. |
variable |
|
TYPE |
The type of record (e.g., A, MX, etc.). |
2 |
|
CLASS |
Used to specify the condition (e.g., ANY, NONE, IN). |
2 |
|
TTL |
Must be zero. |
4 |
|
RDLENGTH |
Length of RDATA field. |
2 |
|
RDATA |
Optional data depending on the condition. |
variable |
|
Update Section |
Contains the actual changes to DNS records |
variable |
|
NAME |
The domain name to check. |
variable |
|
TYPE |
The type of record (e.g., A, MX, TXT). |
2 |
|
CLASS |
IN for additions, NONE for deletions. |
2 |
|
TTL |
Time-to-live for the record (0 for deletions). |
4 |
|
RDLENGTH |
Length of RDATA field. |
2 |
|
RDATA |
The actual data for the record (e.g., IP address). |
variable |
|
Additional Section |
variable |
||
TSIG-Signed Packet |
Adds authentication to the update request or response |
variable |
|
NAME |
Name of the key used (e.g., tsig-key.example.com.) |
variable |
|
TYPE |
Always TSIG (250) |
2 |
|
CLASS |
Always ANY (255) |
2 |
|
TTL |
Always 0 |
4 |
|
RDLENGTH |
Length of RDATA |
2 |
|
Algorithm Name |
Name of the HMAC algorithm (e.g., hmac-sha256.) |
variable |
|
Time Signed |
48-bit timestamp (seconds since epoch) |
6 |
|
Fudge |
Allowed time difference in seconds |
2 |
|
MAC Size |
Length of the MAC |
2 |
|
MAC |
Message Authentication Code |
variable |
|
Original ID |
Original DNS message ID |
2 |
|
Error |
Extended RCODE (0 = no error) |
2 |
|
Other Len |
Length of Other Data |
2 |
|
Other Data |
Optional (e.g., server time in case of error) |
variable |
Update Response Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
2 |
Update Response Packet |
Sent by the DNS server in response to an update request |
variable |
Header |
Contains status codes and counts of records in each section |
12 |
|
ID |
Matches the ID from the request. |
2 |
|
Flags |
Includes response code (RCODE) and flags like QR, AA, etc. CODE-0-NoError Update succeeded CODE-1-FormErr Format error CODE-2-ServFail Server failure CODE-3-NXDomain Name does not exist CODE-4-NotImp Operation not implemented CODE-5-Refused Update refused by policy CODE-6-15-Other DNS error codes |
2 |
|
ZCOUNT |
Number of records in the Zone section (usually 0). |
2 |
|
PRCOUNT |
Number of records in the Prerequisite section (usually 0). |
2 |
|
UPCOUNT |
Number of records in the Update section (usually 0). |
2 |
|
ADCOUNT |
Number of records in the Additional section. |
2 |
|
Zone Section |
Specifies the zone (domain) to be updated |
variable |
|
NAME |
The domain name of the zone to be updated. |
variable |
|
TYPE |
Must be SOA (Start of Authority) to indicate a zone update. |
2 |
|
CLASS |
The class of the zone, typically IN (Internet). |
2 |
|
Prerequisite Section |
Specifies conditions that must be true before the update is applied |
variable |
|
NAME |
The domain name to check. |
variable |
|
TYPE |
The type of record (e.g., A, MX, etc.). |
2 |
|
CLASS |
Used to specify the condition (e.g., ANY, NONE, IN). |
2 |
|
TTL |
Must be zero. |
4 |
|
RDLENGTH |
Length of RDATA field. |
2 |
|
RDATA |
Optional data depending on the condition. |
variable |
|
Update Section |
Contains the actual changes to DNS records |
variable |
|
NAME |
The domain name to check. |
variable |
|
TYPE |
The type of record (e.g., A, MX, TXT). |
2 |
|
CLASS |
IN for additions, NONE for deletions. |
2 |
|
TTL |
Time-to-live for the record (0 for deletions). |
4 |
|
RDLENGTH |
Length of RDATA field. |
2 |
|
RDATA |
The actual data for the record (e.g., IP address). |
variable |
|
Additional Section |
variable |
||
TSIG-Signed Packet |
Adds authentication to the update request or response |
variable |
|
NAME |
Name of the key used (e.g., tsig-key.example.com.) |
variable |
|
TYPE |
Always TSIG (250) |
2 |
|
CLASS |
Always ANY (255) |
2 |
|
TTL |
Always 0 |
4 |
|
RDLENGTH |
Length of RDATA |
2 |
|
Algorithm Name |
Name of the HMAC algorithm (e.g., hmac-sha256.) |
variable |
|
Time Signed |
48-bit timestamp (seconds since epoch) |
6 |
|
Fudge |
Allowed time difference in seconds |
2 |
|
MAC Size |
Length of the MAC |
2 |
|
MAC |
Message Authentication Code |
variable |
|
Original ID |
Original DNS message ID |
2 |
|
Error |
Extended RCODE (0 = no error) |
2 |
|
Other Len |
Length of Other Data |
2 |
|
Other Data |
Optional (e.g., server time in case of error) |
variable |
|
MAC Size |
Length of the MAC |
2 |
|
MAC |
Message Authentication Code |
variable |
|
Original ID |
Original DNS message ID |
2 |
|
Error |
Extended RCODE (0 = no error) |
2 |
|
Other Len |
Length of Other Data |
2 |
|
Other Data |
Optional (e.g., server time in case of error) |
variable |
S.no |
Use Case |
Description |
---|---|---|
1 |
Remote Access to Home Network |
Automatically updates domain names with changing IPs for home routers or servers. |
2 |
Hosting Services on Dynamic IP |
Enables hosting websites, FTP, or game servers on residential connections with dynamic IPs. |
3 |
IoT Device Connectivity |
Keeps IoT devices reachable even when their IP addresses change. |
4 |
Surveillance Systems |
Maintains access to IP cameras and DVRs from remote locations. |
5 |
VPN and Remote Work |
Ensures VPN endpoints remain accessible despite IP changes. |
6 |
Failover and Redundancy |
Supports switching to backup servers by updating DNS records in real time. |
7 |
Mobile Network Services |
Keeps services running on mobile networks with frequently changing IPs. |
S.no |
Feature |
Description |
---|---|---|
1 |
Dynamic IP Updates |
Automatically updates DNS records when a devices IP address changes. |
2 |
Real-Time DNS Mapping |
Keeps domain names mapped to current IPs without manual intervention. |
3 |
Remote Access Support |
Enables consistent access to home or office networks with dynamic IPs. |
4 |
Client Software Integration |
Works with routers, operating systems, and third-party clients to send updates. |
5 |
Authentication |
Uses secure keys or credentials to authorize DNS updates. |
6 |
IPv4 and IPv6 Support |
Supports dynamic updates for both IPv4 (A records) and IPv6 (AAAA records). |
7 |
Failover and Redundancy |
Allows switching to backup IPs or servers by updating DNS records dynamically. |
8 |
Integration with DHCP |
Often used with DHCP to update DNS records as leases are assigned or changed. |
9 |
Custom Domain Support |
Allows users to use their own domain names with DDNS services. |
Dynamic IP Updates - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Client Initialization |
Start DDNS client |
Client initializes successfully |
2 |
Server Availability |
Check if DDNS server is reachable |
Server responds to ping or DNS query |
3 |
Basic Update Request |
Send IP update to DDNS server |
Server acknowledges update |
4 |
Update with Authentication |
Send update with valid credentials |
Update accepted |
5 |
Update with Invalid Auth |
Send update with wrong credentials |
Update rejected |
6 |
Update with No Auth |
Send update without credentials |
Update rejected |
7 |
Update with Hostname |
Update specific hostname |
Hostname resolves to new IP |
8 |
Update with Multiple Hosts |
Update multiple hostnames |
All hostnames updated |
9 |
Update with IPv6 |
Send IPv6 address update |
Server accepts IPv6 |
10 |
Update with Invalid IP |
Send malformed IP address |
Update rejected |
11 |
Update with Expired Token |
Use expired auth token |
Update rejected |
12 |
Update Interval Test |
Send updates at regular intervals |
Server accepts periodic updates |
13 |
Update Flooding |
Send rapid updates |
Server throttles or blocks |
14 |
DNS Propagation |
Check DNS resolution after update |
New IP resolves correctly |
15 |
TTL Handling |
Set custom TTL for record |
TTL respected in DNS |
16 |
Network Change Detection |
Change client IP |
Client triggers update |
17 |
Offline Update Attempt |
Try update without network |
Update fails gracefully |
18 |
Server Downtime |
Update during server downtime |
Update fails, retries later |
19 |
Retry Mechanism |
Simulate failed update |
Client retries as configured |
20 |
Logging Enabled |
Enable client logs |
Logs show update attempts |
21 |
Logging Disabled |
Disable logging |
No logs generated |
22 |
Secure Connection (HTTPS) |
Use HTTPS for update |
Encrypted update sent |
23 |
Insecure Connection (HTTP) |
Use HTTP for update |
Update sent in plaintext |
24 |
DNS Query After Update |
Query hostname after update |
Returns updated IP |
25 |
Update with Wildcard Hostname |
Use wildcard in hostname |
Update rejected or ignored |
26 |
Update with Subdomain |
Update subdomain |
Subdomain resolves to new IP |
27 |
Update with Root Domain |
Update root domain |
Root domain resolves to new IP |
28 |
Update with CNAME Record |
Try to update CNAME |
Update rejected |
29 |
Update with MX Record |
Try to update MX record |
Update rejected |
30 |
Update with TXT Record |
Try to update TXT record |
Update rejected |
31 |
Update with A and AAAA |
Send both IPv4 and IPv6 updates |
Both records updated |
32 |
Update with Invalid Hostname |
Use invalid characters in hostname |
Update rejected |
33 |
Update with Long Hostname |
Use max-length hostname |
Update accepted or rejected |
34 |
Update with Unicode Hostname |
Use Unicode characters |
Update rejected or normalized |
35 |
Update with DNSSEC Enabled |
Use DNSSEC-protected domain |
Update accepted if supported |
36 |
Update with DNSSEC Disabled |
Use non-DNSSEC domain |
Update accepted |
37 |
Update with Dynamic TTL |
Vary TTL dynamically |
TTL changes reflected |
38 |
Update with Static IP |
Try to update static IP |
Update ignored or rejected |
39 |
Update with DHCP IP |
Update DHCP-assigned IP |
Update accepted |
40 |
Update with VPN IP |
Update while on VPN |
VPN IP updated |
41 |
Update with NAT IP |
Update behind NAT |
Public IP updated |
42 |
Update with Firewall Enabled |
Block update port |
Update fails |
43 |
Update with Port Forwarding |
Use port forwarding |
Update succeeds |
44 |
Update with Proxy |
Use HTTP proxy |
Update bypasses proxy |
45 |
Update with IPv6 Only |
Disable IPv4 stack |
IPv6 update succeeds |
46 |
Update with IPv4 Only |
Disable IPv6 stack |
IPv4 update succeeds |
47 |
Update with Custom Port |
Use non-standard port |
Update succeeds if supported |
48 |
Update with DNS Cache |
Query cached DNS after update |
Old IP may be returned |
49 |
Update with DNS Flush |
Flush DNS cache |
New IP returned |
50 |
Update with API Key |
Use API key for auth |
Update accepted |
Real-Time DNS Mapping - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
DDNS Client Initialization |
Start DDNS client on device |
Client initializes successfully |
2 |
DNS Server Reachability |
Ping DDNS server |
Server responds to ping |
3 |
IP Address Detection |
Detect current public IP |
Correct IP detected |
4 |
Initial DNS Update |
Send first DNS update to server |
DNS record updated |
5 |
Periodic DNS Update |
Wait for periodic update interval |
DNS record refreshed |
6 |
Forced DNS Update |
Manually trigger update |
DNS record updated immediately |
7 |
Update on IP Change |
Change IP and observe update |
New IP reflected in DNS |
8 |
Invalid Credentials |
Use wrong username/password |
Update rejected |
9 |
Expired Credentials |
Use expired token |
Update rejected |
10 |
Server Unreachable |
Block server IP |
Update fails with timeout |
11 |
DNS Record Verification |
Query DNS record after update |
Matches current IP |
12 |
Update with TTL |
Set TTL in update request |
TTL respected in DNS |
13 |
Update with Hostname |
Use custom hostname |
Hostname updated correctly |
14 |
Update with Wildcard |
Use wildcard domain |
Update rejected or handled |
15 |
Update with IPv6 |
Send IPv6 address |
IPv6 record updated |
16 |
Update with IPv4 |
Send IPv4 address |
IPv4 record updated |
17 |
Mixed IP Update |
Send both IPv4 and IPv6 |
Both records updated |
18 |
Invalid IP Format |
Send malformed IP |
Update rejected |
19 |
Update Frequency Limit |
Send updates too frequently |
Throttled or rejected |
20 |
Update Logging |
Enable logging |
Logs show update details |
21 |
DNS Propagation Delay |
Measure time to propagate |
Within acceptable delay |
22 |
DNS Cache Flush |
Flush local DNS cache |
New IP resolved |
23 |
DNS Query from Remote |
Query from external network |
Correct IP returned |
24 |
DNS Query from Local |
Query from same network |
Correct IP returned |
25 |
Update with Multiple Domains |
Update multiple domains |
All records updated |
26 |
Update with Subdomain |
Update subdomain |
Subdomain record updated |
27 |
Update with Port Info |
Include port in update |
Port ignored (DNS only) |
28 |
Update with TXT Record |
Add TXT record |
TXT record updated |
29 |
Update with MX Record |
Add MX record |
MX record updated |
30 |
Update with CNAME |
Add CNAME |
CNAME created |
31 |
Update with A and AAAA |
Add both A and AAAA records |
Both records created |
32 |
Update with Invalid Domain |
Use non-existent domain |
Update rejected |
33 |
Update with Unauthorized Domain |
Use domain not owned |
Update rejected |
34 |
Update with DNSSEC |
Use DNSSEC-enabled domain |
Update signed correctly |
35 |
Update with Dynamic TTL |
Vary TTL dynamically |
TTL changes reflected |
36 |
Update with Custom Headers |
Add custom HTTP headers |
Headers accepted or ignored |
37 |
Update with JSON Payload |
Send update in JSON |
Parsed and processed |
38 |
Update with XML Payload |
Send update in XML |
Parsed and processed |
39 |
Update with HTTP POST |
Use POST method |
Update accepted |
40 |
Update with HTTP PUT |
Use PUT method |
Update accepted or rejected |
41 |
Update with HTTPS |
Use secure connection |
Encrypted update sent |
42 |
Update with HTTP |
Use insecure connection |
Warning or rejection |
43 |
Update with Token Auth |
Use token-based auth |
Authenticated successfully |
44 |
Update with Basic Auth |
Use basic HTTP auth |
Authenticated successfully |
45 |
Update with OAuth2 |
Use OAuth2 token |
Authenticated successfully |
46 |
Update with Rate Limit Headers |
Check rate limit headers |
Headers present |
47 |
Update with Retry Logic |
Retry on failure |
Update succeeds after retry |
48 |
Update with Backup Server |
Use secondary DDNS server |
Update succeeds |
49 |
Update with DNS Failover |
Simulate primary DNS failure |
Backup DNS responds |
50 |
Update with API Versioning |
Use different API versions |
Compatible version accepted |
Remote Access Support - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
DDNS Client Initialization |
Start DDNS client on device |
Client initializes without error |
2 |
DDNS Server Reachability |
Ping DDNS server |
Server responds to ping |
3 |
DNS Update Request |
Send update to DDNS server |
Server acknowledges update |
4 |
IP Change Detection |
Change device IP |
Client detects IP change |
5 |
Update After IP Change |
Trigger update after IP change |
New IP reflected on DDNS server |
6 |
Invalid Credentials |
Use wrong username/password |
Update rejected |
7 |
Valid Credentials |
Use correct credentials |
Update accepted |
8 |
Hostname Registration |
Register a new hostname |
Hostname registered successfully |
9 |
Duplicate Hostname |
Register existing hostname |
Error: hostname already exists |
10 |
Hostname Removal |
Remove registered hostname |
Hostname removed successfully |
11 |
Periodic Updates |
Wait for periodic update interval |
Update sent periodically |
12 |
Manual Update Trigger |
Manually trigger update |
Update sent immediately |
13 |
Server Unreachable |
Block server IP |
Client retries or logs error |
14 |
Network Loss Recovery |
Disconnect and reconnect network |
Client resumes updates |
15 |
TTL Expiry |
Wait for DNS TTL to expire |
DNS record refreshed |
16 |
Multiple Hostnames |
Register multiple hostnames |
All hostnames updated |
17 |
IPv6 Support |
Use IPv6 address |
IPv6 updated on DDNS |
18 |
IPv4 and IPv6 Dual Stack |
Use both IP versions |
Both records updated |
19 |
DNS Record Verification |
Query DNS for hostname |
Returns correct IP |
20 |
Update with Custom Port |
Use non-standard port |
Update succeeds |
21 |
Update with SSL |
Use HTTPS for update |
Secure update succeeds |
22 |
Update with HTTP |
Use HTTP for update |
Update succeeds (if allowed) |
23 |
Invalid IP Format |
Send malformed IP |
Update rejected |
24 |
DDNS Client Logging |
Enable logs |
Logs show update activity |
25 |
DDNS Server Logging |
Check server logs |
Logs show received updates |
26 |
Update Frequency Limit |
Send updates too frequently |
Server throttles or blocks |
27 |
Update Retry Mechanism |
Simulate update failure |
Client retries update |
28 |
Hostname Case Sensitivity |
Register mixed-case hostname |
Treated as same or different (per server) |
29 |
Hostname Length Limit |
Use max-length hostname |
Accepted or rejected per spec |
30 |
Special Characters in Hostname |
Use invalid characters |
Update rejected |
31 |
DDNS with NAT |
Behind NAT device |
Public IP updated |
32 |
DDNS with Firewall |
Block outbound port |
Update fails |
33 |
DDNS with Proxy |
Use HTTP proxy |
Update bypasses or fails |
34 |
DDNS with VPN |
Connect via VPN |
VPN IP updated |
35 |
DDNS with Dynamic IP |
Use ISP with dynamic IP |
Updates reflect changes |
36 |
DDNS with Static IP |
Use static IP |
No update needed |
37 |
DDNS with Mobile Network |
Use 4G/5G connection |
Updates work |
38 |
DDNS with Ethernet |
Use wired connection |
Updates work |
39 |
DDNS with Wi-Fi |
Use wireless connection |
Updates work |
40 |
DDNS with Docker |
Run client in container |
Updates depend on network mode |
41 |
DDNS with VM |
Run client in VM |
Updates work (bridged mode) |
42 |
DDNS with IPv6 Only |
Disable IPv4 |
IPv6 updates only |
43 |
DDNS with DNSSEC |
Use DNSSEC-enabled domain |
Update succeeds (if supported) |
44 |
DDNS with Custom Domain |
Use own domain with DDNS |
Update works via API |
45 |
DDNS with Third-Party Provider |
Use No-IP, DynDNS, etc. |
Updates succeed per provider |
46 |
DDNS with API Key Auth |
Use API key for auth |
Update accepted |
47 |
DDNS with Token Auth |
Use bearer token |
Update accepted |
48 |
DDNS with CLI Tool |
Use command-line client |
Update succeeds |
49 |
DDNS with GUI Tool |
Use graphical client |
Update succeeds |
50 |
DDNS with Mobile App |
Use Android/iOS app |
Update succeeds |
Client Software Integration - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Client Initialization |
Start DDNS client integration module |
Module initializes successfully |
2 |
API Endpoint Configuration |
Configure DDNS API endpoint in client |
Endpoint saved and reachable |
3 |
Authentication Setup |
Configure API key/token |
Auth credentials accepted |
4 |
Invalid Authentication |
Use incorrect API key/token |
Authentication fails |
5 |
Hostname Configuration |
Set hostname in client |
Hostname saved correctly |
6 |
IP Detection |
Detect current public IP |
Correct IP detected |
7 |
Manual Update Trigger |
Trigger DDNS update manually |
Update request sent |
8 |
Automatic Update Trigger |
Enable auto-update on IP change |
Update triggered on IP change |
9 |
Update Confirmation |
Confirm update via API response |
Server returns success |
10 |
Update Failure Handling |
Simulate update failure |
Error logged and retry scheduled |
11 |
Retry Mechanism |
Retry after failed update |
Update succeeds after retry |
12 |
Logging Enabled |
Enable logging in client |
Logs show update attempts |
13 |
Logging Disabled |
Disable logging |
No logs generated |
14 |
Update Interval Configuration |
Set periodic update interval |
Updates sent at configured interval |
15 |
Invalid Hostname |
Use invalid characters in hostname |
Update rejected |
16 |
Duplicate Hostname |
Register already-used hostname |
Server returns error |
17 |
Hostname Removal |
Remove hostname from DDNS |
Hostname deleted successfully |
18 |
IPv6 Address Update |
Update with IPv6 address |
IPv6 record updated |
19 |
IPv4 and IPv6 Dual Update |
Update both address types |
Both records updated |
20 |
DNS Record Verification |
Query DNS for hostname |
Returns correct IP |
21 |
Network Change Detection |
Switch network (e.g., Wi-Fi to Ethernet) |
IP change detected |
22 |
Firewall Blocking |
Block outbound DDNS port |
Update fails |
23 |
Proxy Configuration |
Use HTTP proxy |
Update succeeds or fails based on proxy settings |
24 |
VPN Environment |
Connect via VPN |
VPN IP updated |
25 |
NAT Environment |
Behind NAT |
Public IP updated |
26 |
API Rate Limiting |
Send frequent updates |
Server throttles requests |
27 |
API Response Parsing |
Parse JSON/XML response |
Parsed successfully |
28 |
Invalid API Response |
Simulate malformed response |
Client handles error gracefully |
29 |
TLS/SSL Support |
Use HTTPS for API communication |
Secure connection established |
30 |
HTTP Fallback |
Use HTTP instead of HTTPS |
Update succeeds (if allowed) |
31 |
Client Timeout Handling |
Simulate server timeout |
Client retries or logs error |
32 |
Hostname Case Sensitivity |
Use mixed-case hostname |
Treated as same or different (per server) |
33 |
Hostname Length Limit |
Use max-length hostname |
Accepted or rejected per spec |
34 |
Client Uninstallation |
Uninstall client software |
No further updates sent |
35 |
Client Reinstallation |
Reinstall client |
Configuration restored or reset |
36 |
Configuration Backup |
Export client settings |
Backup file created |
37 |
Configuration Restore |
Import client settings |
Settings restored |
38 |
CLI Integration |
Use command-line interface |
Updates triggered via CLI |
39 |
GUI Integration |
Use graphical interface |
Updates triggered via GUI |
40 |
Service Start on Boot |
Enable auto-start on system boot |
Client starts automatically |
41 |
Service Stop |
Stop client service |
Updates stop |
42 |
Update Notification |
Notify user on successful update |
Notification displayed |
43 |
Error Notification |
Notify user on update failure |
Error message shown |
44 |
Multi-User Environment |
Use client in multi-user OS |
Updates work per user/session |
45 |
OS Compatibility |
Run client on different OS (Windows/Linux/macOS) |
Client functions correctly |
46 |
Resource Usage |
Monitor CPU/memory usage |
Within acceptable limits |
47 |
API Version Compatibility |
Use different API versions |
Client adapts or fails gracefully |
48 |
Debug Mode |
Enable debug mode |
Detailed logs generated |
49 |
Integration with Monitoring Tools |
Use with tools like Nagios/Zabbix |
DDNS status visible |
50 |
Integration with Cloud Services |
Use with AWS/GCP/Azure VMs |
Public IP updates correctly |
Authentication - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Valid Username/Password |
Authenticate with correct credentials |
Authentication succeeds |
2 |
Invalid Username |
Use incorrect username |
Authentication fails |
3 |
Invalid Password |
Use incorrect password |
Authentication fails |
4 |
Empty Credentials |
Leave username and password blank |
Authentication fails |
5 |
Expired Credentials |
Use expired credentials |
Authentication fails |
6 |
Locked Account |
Use credentials for locked account |
Access denied |
7 |
API Key Authentication |
Authenticate using valid API key |
Authentication succeeds |
8 |
Invalid API Key |
Use incorrect API key |
Authentication fails |
9 |
Expired API Key |
Use expired API key |
Authentication fails |
10 |
Token-Based Authentication |
Use valid bearer token |
Authentication succeeds |
11 |
Invalid Token |
Use malformed or expired token |
Authentication fails |
12 |
Token Expiry Handling |
Wait for token to expire |
Re-authentication required |
13 |
Token Refresh Mechanism |
Refresh token before expiry |
New token issued |
14 |
OAuth2 Authentication |
Authenticate via OAuth2 flow |
Access token granted |
15 |
OAuth2 Invalid Client ID |
Use wrong client ID |
Authentication fails |
16 |
OAuth2 Invalid Redirect URI |
Use mismatched redirect URI |
Authentication fails |
17 |
Multi-Factor Authentication (MFA) |
Enable MFA and authenticate |
Requires second factor |
18 |
MFA Failure |
Enter incorrect second factor |
Authentication fails |
19 |
Basic Auth Header Format |
Send correctly formatted Authorization header |
Authentication succeeds |
20 |
Missing Auth Header |
Omit Authorization header |
Authentication fails |
21 |
Auth Header Tampering |
Modify Authorization header |
Authentication fails |
22 |
HTTPS Enforcement |
Attempt auth over HTTP |
Connection rejected |
23 |
Auth Over HTTPS |
Authenticate over HTTPS |
Secure authentication succeeds |
24 |
Rate Limiting |
Send multiple auth attempts rapidly |
Requests throttled |
25 |
Brute Force Protection |
Attempt multiple failed logins |
Account locked or delayed |
26 |
IP Whitelisting |
Authenticate from allowed IP |
Authentication succeeds |
27 |
IP Blacklisting |
Authenticate from blocked IP |
Authentication fails |
28 |
Auth Logging Enabled |
Enable logging for auth attempts |
Logs show attempts |
29 |
Auth Logging Disabled |
Disable logging |
No logs generated |
30 |
Auth Audit Trail |
Review audit logs |
Shows auth history |
31 |
Auth with Proxy |
Authenticate behind proxy |
Authentication succeeds or fails |
32 |
Auth with VPN |
Authenticate over VPN |
Authentication succeeds |
33 |
Auth with NAT |
Authenticate behind NAT |
Authentication succeeds |
34 |
Auth with Mobile Network |
Authenticate over 4G/5G |
Authentication succeeds |
35 |
Auth with Static IP |
Authenticate from static IP |
Authentication succeeds |
36 |
Auth with Dynamic IP |
Authenticate from dynamic IP |
Authentication succeeds |
37 |
Auth with CLI Tool |
Use command-line client |
Authentication succeeds |
38 |
Auth with GUI Tool |
Use graphical client |
Authentication succeeds |
39 |
Auth with Mobile App |
Use mobile app for auth |
Authentication succeeds |
40 |
Auth with Browser |
Use browser-based login |
Authentication succeeds |
41 |
Auth with Curl |
Use curl to send auth request |
Authentication succeeds |
42 |
Auth with Postman |
Use Postman to test auth |
Authentication succeeds |
43 |
Auth with Invalid Content-Type |
Send request with wrong content-type |
Authentication fails |
44 |
Auth with JSON Payload |
Send credentials in JSON format |
Authentication succeeds |
45 |
Auth with Form Data |
Send credentials as form data |
Authentication succeeds |
46 |
Auth with XML Payload |
Send credentials in XML format |
Authentication succeeds or fails |
47 |
Auth with Missing Fields |
Omit required fields in request |
Authentication fails |
48 |
Auth with Extra Fields |
Send additional fields |
Authentication succeeds (ignored or logged) |
49 |
Auth with Unicode Characters |
Use Unicode in credentials |
Authentication succeeds or fails |
50 |
Auth with SQL Injection Attempt |
Inject SQL in username/password |
Authentication fails; input sanitized |
IPv4 and IPv6 Support - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
IPv4 Address Update |
Update DDNS with IPv4 address |
A record updated with IPv4 |
2 |
IPv6 Address Update |
Update DDNS with IPv6 address |
AAAA record updated with IPv6 |
3 |
Dual Stack Update |
Update both IPv4 and IPv6 addresses |
Both A and AAAA records updated |
4 |
IPv4 Only Network |
Connect from IPv4-only network |
Only A record updated |
5 |
IPv6 Only Network |
Connect from IPv6-only network |
Only AAAA record updated |
6 |
No IP Detected |
No IP assigned to interface |
Update fails with error |
7 |
Invalid IPv4 Format |
Send malformed IPv4 address |
Update rejected |
8 |
Invalid IPv6 Format |
Send malformed IPv6 address |
Update rejected |
9 |
IPv4 NAT Environment |
Behind NAT with IPv4 |
Public IPv4 updated |
10 |
IPv6 NAT Environment |
Behind NAT with IPv6 (NAT66) |
Public IPv6 updated |
11 |
IPv6 Privacy Extensions |
Use temporary IPv6 address |
Temporary address updated |
12 |
Static IPv4 Address |
Use static IPv4 address |
Static IP updated |
13 |
Static IPv6 Address |
Use static IPv6 address |
Static IP updated |
14 |
Dynamic IPv4 Address |
Use DHCP-assigned IPv4 |
IP change triggers update |
15 |
Dynamic IPv6 Address |
Use SLAAC-assigned IPv6 |
IP change triggers update |
16 |
DNS Record Verification (IPv4) |
Query A record for hostname |
Returns correct IPv4 |
17 |
DNS Record Verification (IPv6) |
Query AAAA record for hostname |
Returns correct IPv6 |
18 |
TTL Expiry for IPv4 |
Wait for A record TTL to expire |
Record refreshed |
19 |
TTL Expiry for IPv6 |
Wait for AAAA record TTL to expire |
Record refreshed |
20 |
IPv4 Address Change |
Change IPv4 address |
New A record updated |
21 |
IPv6 Address Change |
Change IPv6 address |
New AAAA record updated |
22 |
IPv4 Address Removal |
Remove IPv4 from interface |
A record removed or cleared |
23 |
IPv6 Address Removal |
Remove IPv6 from interface |
AAAA record removed or cleared |
24 |
IPv4 and IPv6 Swap |
Swap IPv4 and IPv6 addresses |
Both records updated accordingly |
25 |
DNS Record Conflict |
Same hostname used for different IPs |
Latest update reflected |
26 |
IPv6 Compression Handling |
Use compressed IPv6 format |
Accepted and updated correctly |
27 |
IPv6 Expansion Handling |
Use full IPv6 format |
Accepted and updated correctly |
28 |
IPv6 Scope ID Handling |
Include scope ID in IPv6 |
Scope ID ignored or handled |
29 |
IPv4-mapped IPv6 Address |
Use ::ffff:x.x.x.x format |
Treated as IPv4 or rejected |
30 |
IPv6 Link-local Address |
Use fe80:: address |
Rejected (non-routable) |
31 |
IPv6 Global Unicast Address |
Use 2000::/3 address |
Accepted and updated |
32 |
IPv6 Unique Local Address |
Use fc00::/7 address |
May be rejected depending on policy |
33 |
IPv6 Multicast Address |
Use ff00::/8 address |
Rejected |
34 |
IPv6 Loopback Address |
Use ::1 |
Rejected |
35 |
IPv4 Loopback Address |
Use 127.0.0.1 |
Rejected |
36 |
IPv4 Broadcast Address |
Use 255.255.255.255 |
Rejected |
37 |
IPv4 Private Address |
Use 192.168.x.x or 10.x.x.x |
Updated if NAT is handled |
38 |
IPv6 DNS Update Only |
Update only AAAA record |
A record remains unchanged |
39 |
IPv4 DNS Update Only |
Update only A record |
AAAA record remains unchanged |
40 |
DNSSEC Enabled Domain |
Use DNSSEC-protected domain |
Update succeeds if signed correctly |
41 |
DNS Update with Authentication |
Use token/API key for update |
Authenticated update succeeds |
42 |
DNS Update Without Authentication |
Skip auth headers |
Update rejected |
43 |
Update via CLI |
Use command-line tool |
IPv4/IPv6 updated |
44 |
Update via GUI |
Use graphical client |
IPv4/IPv6 updated |
45 |
Update via API |
Use REST API |
IPv4/IPv6 updated |
46 |
Update via Mobile App |
Use mobile client |
IPv4/IPv6 updated |
47 |
Update via Script |
Use custom script |
IPv4/IPv6 updated |
48 |
Update with Delay |
Delay update after IP change |
Update still succeeds |
49 |
Update with DNS Cache Flush |
Flush local DNS cache |
New IPs resolved correctly |
50 |
Update with DNS Propagation Check |
Check global DNS propagation |
Updated IPs visible globally |
Failover and Redundancy - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Primary Server Availability |
Connect to primary DDNS server |
Connection succeeds |
2 |
Secondary Server Availability |
Connect to secondary DDNS server |
Connection succeeds |
3 |
Primary Server Failure |
Simulate primary server down |
Fails over to secondary |
4 |
Secondary Server Failure |
Simulate secondary server down |
Primary handles requests |
5 |
Both Servers Down |
Simulate both servers down |
Update fails with error |
6 |
Failover Time Measurement |
Measure time to switch to backup server |
Within acceptable threshold |
7 |
DNS Record Consistency |
Compare records on primary and secondary |
Records are identical |
8 |
Update During Failover |
Send update during failover |
Update succeeds via backup |
9 |
Update Retry After Failover |
Retry update after failover |
Update succeeds |
10 |
Load Balancing Enabled |
Enable load balancing between servers |
Requests distributed evenly |
11 |
Load Balancing Disabled |
Disable load balancing |
Requests go to primary only |
12 |
Manual Failover Trigger |
Manually switch to backup server |
Backup server handles requests |
13 |
Automatic Failover Trigger |
Auto-switch on primary failure |
Seamless transition |
14 |
Failback to Primary |
Restore primary and switch back |
Requests return to primary |
15 |
Failover Logging |
Enable logging during failover |
Logs show failover events |
16 |
Failover Notification |
Notify admin on failover |
Notification sent |
17 |
Redundant IP Update |
Update IP on both servers |
Both servers reflect update |
18 |
Redundant Hostname Update |
Update hostname on both servers |
Both servers reflect update |
19 |
Server Sync Interval |
Set sync interval between servers |
Records sync periodically |
20 |
Server Sync Failure |
Simulate sync failure |
Alert or retry triggered |
21 |
DNS Query During Failover |
Query DNS during failover |
Returns correct IP |
22 |
DNS TTL Handling |
Set low TTL for quicker failover |
DNS reflects changes faster |
23 |
DNS Propagation Check |
Check global propagation after failover |
New IP visible globally |
24 |
Backup Server Authentication |
Authenticate with backup server |
Auth succeeds |
25 |
Backup Server Logging |
Check logs on backup server |
Logs show update activity |
26 |
Backup Server Load Test |
Send high volume of requests |
Server handles load |
27 |
Primary Server Load Test |
Stress test primary server |
Server remains stable |
28 |
Failover Under Load |
Failover during high traffic |
No data loss or delay |
29 |
Failover with IPv4 |
Failover using IPv4 |
Update succeeds |
30 |
Failover with IPv6 |
Failover using IPv6 |
Update succeeds |
31 |
Failover with Dual Stack |
Use both IPv4 and IPv6 |
Both records updated |
32 |
Failover with NAT |
Behind NAT during failover |
Public IP updated correctly |
33 |
Failover with VPN |
Use VPN during failover |
Update succeeds |
34 |
Failover with Proxy |
Use proxy during failover |
Update succeeds or fails based on config |
35 |
Failover with Mobile Network |
Use 4G/5G during failover |
Update succeeds |
36 |
Failover with Static IP |
Use static IP during failover |
Update succeeds |
37 |
Failover with Dynamic IP |
Use dynamic IP during failover |
Update succeeds |
38 |
Failover with CLI Tool |
Use CLI to test failover |
Update succeeds |
39 |
Failover with GUI Tool |
Use GUI to test failover |
Update succeeds |
40 |
Failover with API |
Use REST API to test failover |
Update succeeds |
41 |
Failover with Token Auth |
Use token-based auth during failover |
Auth succeeds |
42 |
Failover with API Key Auth |
Use API key during failover |
Auth succeeds |
43 |
Failover with DNSSEC |
Use DNSSEC-enabled domain |
Update succeeds |
44 |
Failover with DNS Cache Flush |
Flush DNS cache after failover |
New IP resolved |
45 |
Failover with Monitoring Tools |
Monitor failover with Zabbix/Nagios |
Failover events detected |
46 |
Failover with Logging Disabled |
Disable logging |
No logs generated |
47 |
Failover with Logging Enabled |
Enable detailed logging |
Logs show failover sequence |
48 |
Failover with Notification Disabled |
Disable notifications |
No alerts sent |
49 |
Failover with Notification Enabled |
Enable alerts on failover |
Admin notified |
50 |
Failover Recovery Test |
Restore all systems |
Normal operation resumes |
Integration with DHCP - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
DHCP Lease Assignment |
Assign IP via DHCP |
IP assigned to client |
2 |
DDNS Update on Lease Assignment |
Trigger DDNS update after lease |
DNS record created |
3 |
DDNS Update on Lease Renewal |
Renew DHCP lease |
DNS record refreshed |
4 |
DDNS Update on Lease Expiry |
Let lease expire |
DNS record removed or expired |
5 |
DDNS Update on Lease Release |
Release DHCP lease |
DNS record removed |
6 |
Hostname Registration via DHCP |
Send hostname in DHCP request |
Hostname registered in DNS |
7 |
Invalid Hostname in DHCP |
Send invalid hostname |
Update rejected |
8 |
DHCP Client Without Hostname |
Omit hostname in DHCP request |
Default or no DNS record created |
9 |
DHCP Server with DDNS Enabled |
Enable DDNS on DHCP server |
Updates sent to DNS server |
10 |
DHCP Server with DDNS Disabled |
Disable DDNS on DHCP server |
No DNS updates sent |
11 |
DDNS with Static DHCP Mapping |
Use static DHCP reservation |
DNS record created for reserved IP |
12 |
DDNS with Dynamic DHCP Mapping |
Use dynamic IP assignment |
DNS record created dynamically |
13 |
DDNS with IPv4 Lease |
Assign IPv4 via DHCP |
A record created |
14 |
DDNS with IPv6 Lease |
Assign IPv6 via DHCPv6 |
AAAA record created |
15 |
DDNS with Dual Stack Lease |
Assign both IPv4 and IPv6 |
A and AAAA records created |
16 |
DDNS Update Conflict Resolution |
Two clients request same hostname |
Conflict resolved per policy |
17 |
DDNS Update Authentication |
Use TSIG or key-based auth |
Authenticated update succeeds |
18 |
DDNS Update Without Authentication |
Skip auth headers |
Update rejected |
19 |
DHCP Server Restart |
Restart DHCP server |
DDNS updates resume normally |
20 |
DNS Server Restart |
Restart DNS server |
Updates resume after recovery |
21 |
DHCP Lease Renewal Interval |
Set short lease renewal interval |
Frequent DNS updates |
22 |
DHCP Lease Expiry Handling |
Let lease expire without renewal |
DNS record removed |
23 |
DHCP Lease Release Handling |
Manually release lease |
DNS record removed |
24 |
DNS Record TTL Configuration |
Set TTL for DDNS records |
Records expire as configured |
25 |
DNS Record Verification |
Query DNS after lease assignment |
Correct IP returned |
26 |
DNS Record Removal Verification |
Query DNS after lease release |
Record no longer exists |
27 |
DHCP Client Reboot |
Reboot client with same lease |
DNS record remains unchanged |
28 |
DHCP Client MAC Address Change |
Change MAC and request lease |
New DNS record created |
29 |
DHCP Server Logging Enabled |
Enable logging |
Logs show DDNS updates |
30 |
DHCP Server Logging Disabled |
Disable logging |
No logs generated |
31 |
DNS Server Logging Enabled |
Enable DNS logging |
Logs show update requests |
32 |
DNS Server Logging Disabled |
Disable DNS logging |
No logs generated |
33 |
DHCP Failover Scenario |
Simulate DHCP failover |
DDNS updates continue via secondary |
34 |
DNS Failover Scenario |
Simulate DNS failover |
Updates redirected to backup DNS |
35 |
DHCP with Proxy |
Use DHCP client behind proxy |
Updates succeed or fail based on config |
36 |
DHCP with VPN |
Use DHCP over VPN |
DNS record updated with VPN IP |
37 |
DHCP with NAT |
Use DHCP behind NAT |
Public IP updated if NAT-aware |
38 |
DHCP with Mobile Network |
Use DHCP over 4G/5G |
DNS record updated |
39 |
DHCP with Static IP |
Assign static IP via DHCP |
DNS record created |
40 |
DHCP with Dynamic IP |
Assign dynamic IP |
DNS record created |
41 |
DHCP with CLI Tool |
Use CLI to request lease |
DNS record created |
42 |
DHCP with GUI Tool |
Use GUI to request lease |
DNS record created |
43 |
DHCP with API Integration |
Use API to simulate DHCP lease |
DNS record created |
44 |
DHCP with Token Auth |
Use token-based auth for DDNS update |
Authenticated update succeeds |
45 |
DHCP with Key Auth |
Use key-based auth for DDNS update |
Authenticated update succeeds |
46 |
DHCP with DNSSEC |
Use DNSSEC-enabled domain |
Update succeeds if signed correctly |
47 |
DHCP with DNS Cache Flush |
Flush DNS cache after update |
New IP resolved |
48 |
DHCP with DNS Propagation Check |
Check global DNS after update |
New IP visible globally |
49 |
DHCP Lease Conflict |
Two clients request same IP |
Conflict resolved, DNS updated |
50 |
DHCP Lease Decline |
Client declines offered lease |
No DNS record created |
Custom Domain Support - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Valid Custom Domain Registration |
Register a valid custom domain |
Domain accepted and configured |
2 |
Invalid Domain Format |
Use malformed domain name |
Registration rejected |
3 |
Domain Ownership Verification |
Verify domain ownership via TXT record |
Verification succeeds |
4 |
Missing Ownership Verification |
Skip TXT record setup |
Verification fails |
5 |
DNS Provider API Integration |
Connect to supported DNS provider API |
Integration succeeds |
6 |
Unsupported DNS Provider |
Attempt integration with unsupported provider |
Integration fails |
7 |
A Record Update |
Update IPv4 address for custom domain |
A record updated |
8 |
AAAA Record Update |
Update IPv6 address for custom domain |
AAAA record updated |
9 |
CNAME Record Update |
Update CNAME for subdomain |
CNAME updated |
10 |
MX Record Preservation |
Ensure MX records are not affected |
MX records remain unchanged |
11 |
TTL Configuration |
Set TTL for custom domain records |
TTL applied correctly |
12 |
DNS Record Propagation |
Check global DNS after update |
New IP visible globally |
13 |
DNSSEC Enabled Domain |
Use DNSSEC-protected domain |
Update succeeds if signed correctly |
14 |
DNSSEC Failure |
Use misconfigured DNSSEC domain |
Update fails |
15 |
API Key Authentication |
Use API key for DNS provider |
Authenticated update succeeds |
16 |
OAuth Authentication |
Use OAuth for DNS provider |
Authenticated update succeeds |
17 |
Invalid API Key |
Use incorrect API key |
Update rejected |
18 |
Expired API Key |
Use expired API key |
Update rejected |
19 |
Subdomain Update |
Update subdomain (e.g., home.example.com) |
Subdomain record updated |
20 |
Wildcard Subdomain Update |
Update *.example.com |
All subdomains updated |
21 |
Domain with Multiple Records |
Update domain with A, AAAA, and CNAME |
All records updated correctly |
22 |
Domain with No Existing Records |
Add new records to empty domain |
Records created |
23 |
Domain with Conflicting Records |
Handle conflicting A and CNAME records |
Conflict resolved per policy |
24 |
Domain with External DNS |
Use third-party DNS provider |
Update succeeds via API |
25 |
Domain with Internal DNS |
Use internal DNS server |
Update succeeds via direct integration |
26 |
DNS Update Logging |
Enable logging for updates |
Logs show update activity |
27 |
DNS Update Notification |
Enable notifications on update |
Notification sent |
28 |
DNS Update Failure Logging |
Log failed update attempts |
Errors logged |
29 |
DNS Update Retry Mechanism |
Retry on update failure |
Update succeeds after retry |
30 |
DNS Update Rate Limiting |
Send frequent updates |
Requests throttled |
31 |
DNS Update with Proxy |
Use HTTP proxy for DNS API |
Update succeeds or fails based on config |
32 |
DNS Update with VPN |
Use VPN during update |
Update succeeds |
33 |
DNS Update with NAT |
Behind NAT |
Public IP updated |
34 |
DNS Update with Mobile Network |
Use 4G/5G |
Update succeeds |
35 |
DNS Update with Static IP |
Use static IP |
Update succeeds |
36 |
DNS Update with Dynamic IP |
Use dynamic IP |
Update succeeds |
37 |
DNS Update via CLI Tool |
Use command-line tool |
Update succeeds |
38 |
DNS Update via GUI Tool |
Use graphical client |
Update succeeds |
39 |
DNS Update via API |
Use REST API |
Update succeeds |
40 |
DNS Update via Script |
Use custom script |
Update succeeds |
41 |
DNS Update with JSON Payload |
Send update in JSON format |
Update succeeds |
42 |
DNS Update with XML Payload |
Send update in XML format |
Update succeeds |
43 |
DNS Update with Invalid Payload |
Send malformed request |
Update rejected |
44 |
DNS Update with Unicode Domain |
Use IDN (e.g., xn–example-9d0b.com) |
Update succeeds |
45 |
DNS Update with Long Domain Name |
Use max-length domain |
Update succeeds or fails per spec |
46 |
DNS Update with Special Characters |
Use domain with special characters |
Update rejected |
47 |
DNS Update with Expired Domain |
Use expired domain |
Update fails |
48 |
DNS Update with Suspended Domain |
Use suspended domain |
Update fails |
49 |
DNS Update with Registrar Lock |
Use domain with registrar lock |
Update fails |
50 |
DNS Update with WHOIS Privacy Enabled |
Use domain with WHOIS privacy |
Update succeeds |
Reference links