{
  "id": "cluster-dns",
  "title": "Configure cluster DNS",
  "url": "https://redis.io/docs/latest/operate/rs/7.8/networking/cluster-dns/",
  "summary": "Configure DNS to communicate between nodes in your cluster.",
  "content": "\nBy default, Redis Enterprise Software deployments use DNS to communicate between nodes.  You can also use the [Discovery Service](), which uses IP addresses to connect and complies with the [Redis Sentinel API]() supported by Redis Open Source.\n\nEach node in a Redis Enterprise cluster includes a small DNS server to manage internal functions, such as high availability, automatic failover, automatic migration, and so on.\nNodes should only run the DNS server included with the software.  Running additional DNS servers can lead to unexpected behavior.\n\n## Cluster name and connection management\n\nWhether you're administering Redis Enterprise Software or accessing databases, there are two ways to connect:\n\n- URL-based connections - URL-based connections use DNS to resolve the fully qualified cluster domain name (FQDN).  This means that DNS records might need to be updated when topology changes, such as adding (or removing) nodes from the cluster.  \n\n    Because apps and other client connections rely on the URL (rather than the address), they do not need to be modified when topology changes.  \n\n- IP-based connections - IP-based connections do not require DNS setup, as they rely on the underlying TCP/IP addresses.  As long as topology changes do not change the address of the cluster nodes, no configuration changes are needed, DNS or otherwise.  \n\n    However, changes to IP addresses (or changes to IP address access) impact all connections to the node, including apps and clients.  IP address changes can therefore be unpredictable or time-consuming.\n\n## URL-based connections\n\nThe fully qualified domain name (FQDN) is the unique cluster identifier that enables clients to connect to the different components of Redis Enterprise Software.\nThe FQDN is a crucial component of the high-availability mechanism because it's used internally to enable and implement automatic and transparent failover of nodes, databases, shards, and endpoints.\n\n\nSetting the cluster's FQDN is a one-time operation, one that cannot be changed after being set.\n\n\nThe FQDN must always comply with the IETF's [RFC 952](https://datatracker.ietf.org/doc/html/rfc952) standard\nand section 2.1 of the [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) standard.\n\n## Identify the cluster\n\nTo identify the cluster, either use DNS to define a fully qualified domain name or use the IP addresses of each node.  \n\n### Define domain using DNS\n\nUse DNS if you:\n\n- have your own domain\n- want to integrate the cluster into that domain\n- can access and update the DNS records for that domain\n\n1. Make sure that the cluster and at least one node (preferably all nodes) in the cluster\n    are correctly configured in the DNS with the appropriate NS entries.\n\n    For example:\n\n    - Your domain is: `mydomain.com`\n    - You would like to name the Redis Enterprise Software cluster `mycluster`\n    - You have three nodes in the cluster:\n        - node1 (IP address 1.1.1.1)\n        - node2 (2.2.2.2)\n        - node3 (3.3.3.3)\n\n1. In the FQDN field, enter the value `mycluster.mydomain.com`\n    and add the following records in the DNS table for `mydomain.com`:\n\n    ``` sh\n    mycluster.mydomain.com        NS  node1.mycluster.mydomain.com\n                                      node2.mycluster.mydomain.com\n                                      node3.mycluster.mydomain.com \n    \n    node1.mycluster.mydomain.com  A   1.1.1.1\n    \n    node2.mycluster.mydomain.com  A   2.2.2.2\n    \n    node3.mycluster.mydomain.com  A   3.3.3.3\n    ```\n\n### Zero-configuration using mDNS {#zeroconfiguration-using-mdns-development-option-only}\n\nDevelopment and test environments can use [Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) (mDNS), a zero-configuration service designed for small networks.  Production environments should _not_ use mDNS.\n\nmDNS is a standard protocol that provides DNS-like name resolution and service discovery capabilities\nto machines on local networks with minimal to no configuration.\n\nBefore adopting mDNS, verify that it's supported by each client you wish to use to connect to your Redis databases.  Also make sure that your network infrastructure permits mDNS/multi-casting between clients and cluster nodes.\n\nConfiguring the cluster to support mDNS requires you to assign the cluster a `.local` name.\n\nFor example, if you want to name the Redis Enterprise Software cluster `rediscluster`, specify the FQDN name as `rediscluster.local`.\n\nWhen using the DNS or mDNS option, failover can be done transparently and the DNS is updated automatically to point to the IP address of the new primary node.\n\n## IP-based connections\n\nWhen you use the IP-based connection option, the FQDN does not need to have any special format\nbecause clients use IP addresses instead of hostnames to access the databases so you are free to choose whatever name you want.\nUsing the IP-based connection option does not require any DNS configuration either.\n\nTo administer the cluster you do need to know the IP address of at least one of the nodes in the cluster.\nOnce you have the IP address, you can simply connect to port number 8443 (for example: \u003chttps://10.0.0.12:8443\u003e).\nHowever, as the topology of the cluster changes and node with the given IP address is removed,\nyou need to remember the IP address of another node participating in this cluster to connect to the Cluster Manager UI and manage the cluster.\n\nApplications connecting to Redis Software databases have the same constraints.\nWhen using the IP-based connection method, you can use the [Discovery Service]()\nto discover the database endpoint for a given database name as long as you have an IP address for at least one of the nodes in the cluster.\nThe API used for discovery service is compliant with the Redis Sentinel API.\n\nTo test your connection, try pinging the service.  For help, see [Connect to your database]().\n\n",
  "tags": ["docs","operate","rs"],
  "last_updated": "2026-04-01T08:10:08-05:00"
}

