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.

  • 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