57 lines
1.8 KiB
ReStructuredText
57 lines
1.8 KiB
ReStructuredText
.. only:: comment
|
|
|
|
© Crown-owned copyright 2023, Defence Science and Technology Laboratory UK
|
|
|
|
DNS Client Server
|
|
=================
|
|
|
|
DNS Server
|
|
----------
|
|
Also known as a DNS Resolver, the ``DNSServer`` provides a DNS Server simulation by extending the base Service class.
|
|
|
|
Key capabilities
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
- Simulates DNS requests and DNSPacket transfer across a network
|
|
- Registers domain names and the IP Address linked to the domain name
|
|
- Returns the IP address for a given domain name within a DNS Packet that a DNS Client can read
|
|
- Leverages the Service base class for install/uninstall, status tracking, etc.
|
|
|
|
Usage
|
|
^^^^^
|
|
- Install on a Node via the ``SoftwareManager`` to start the database service.
|
|
- Service runs on TCP port 53 by default. (TODO: TCP for now, should be UDP in future)
|
|
|
|
Implementation
|
|
^^^^^^^^^^^^^^
|
|
|
|
- DNS request and responses use a ``DNSPacket`` object
|
|
- Extends Service class for integration with ``SoftwareManager``.
|
|
|
|
DNS Client
|
|
----------
|
|
|
|
The DNSClient provides a client interface for connecting to the ``DNSServer``.
|
|
|
|
Key features
|
|
^^^^^^^^^^^^
|
|
|
|
- Connects to the ``DNSServer`` via the ``SoftwareManager``.
|
|
- Executes DNS lookup requests and keeps a cache of known domain name IP addresses.
|
|
- Handles connection to DNSServer and querying for domain name IP addresses.
|
|
|
|
Usage
|
|
^^^^^
|
|
|
|
- Install on a Node via the ``SoftwareManager`` to start the database service.
|
|
- Service runs on TCP port 53 by default. (TODO: TCP for now, should be UDP in future)
|
|
- Execute domain name checks with ``check_domain_exists``.
|
|
- ``DNSClient`` will automatically add the IP Address of the domain into its cache
|
|
|
|
Implementation
|
|
^^^^^^^^^^^^^^
|
|
|
|
- Leverages ``SoftwareManager`` for sending payloads over the network.
|
|
- Provides easy interface for Nodes to find IP addresses via domain names.
|
|
- Extends base Service class.
|