Back to Redis

Port Configurations

content/operate/rs/networking/port-configurations.md

latest6.8 KB
Original Source

All Redis Software deployments span multiple physical/virtual nodes. You'll need to keep several ports open between these nodes. This document describes the various port ranges and their uses.

{{< note >}} Whenever you create a new database, you must verify that the ports assigned to the new database's endpoints are open. The cluster will not perform this verification for you. {{< /note >}}

Ports and port ranges used by Redis Software

Redis Software's port usage falls into three general categories:

  • Internal: For traffic between or within cluster nodes
  • External: For traffic from client applications or external monitoring resources
  • Active-Active: For traffic to and from clusters hosting Active-Active databases
ProtocolPortConfigurableConnection sourceDescription
TCP8001<span title="Not configurable">❌ No</span>Internal, ExternalTraffic from application to Redis Software [Discovery Service]({{< relref "/operate/rs/databases/durability-ha/discovery-service.md" >}})
TCP8070<span title="Not configurable">❌ No</span>ExternalMetrics exported and managed by the web proxy
TCP3347-3349, 8000, 8071, 9091, 9125<span title="Not configurable">❌ No</span>InternalInternal metrics ports
TCP8443<span title="Configurable">✅ Yes</span>Internal, ExternalSecure (HTTPS) access to the management web UI
TCP9081<span title="Configurable">✅ Yes</span>InternalCRDB coordinator for Active-Active management (internal)
TCP9082<span title="Not configurable">❌ No</span>InternalCluster API internal port
TCP9443, 8080, 3346<span title="Configurable">✅ Yes</span>Internal, External, Active-ActiveREST API traffic, including cluster management and node bootstrap
TCP10050<span title="Not configurable">❌ No</span>InternalZabbix monitoring
TCP10000-10049, 10051-19999<span title="Configurable">✅ Yes</span>Internal, External, Active-ActiveDatabase traffic
UDP53, 5353<span title="Not configurable">❌ No</span>Internal, ExternalDNS/mDNS traffic
TCP1968<span title="Not configurable">❌ No</span>InternalProxy traffic
TCP3333-3345, 3350-3354, 36379<span title="Not configurable">❌ No</span>InternalInternode communication
TCP3355<span title="Configurable">✅ Yes</span>InternalAuthentication service internal port
TCP20000-29999<span title="Not configurable">❌ No</span>InternalDatabase shard traffic
TCP8002, 8004, 8006<span title="Configurable">✅ Yes</span>InternalDefault system health monitoring (envoy admin, envoy management server, gossip envoy admin)
TCP8444, 9080<span title="Not configurable">❌ No</span>InternalTraffic between web proxy and cnm_http/cm

Change port configuration

Reserve ports

Redis Software reserves some ports by default (system_reserved_ports). To reserve other ports or port ranges and prevent the cluster from assigning them to database endpoints, configure reserved_ports using one of the following methods:

  • [rladmin cluster config]({{< relref "/operate/rs/references/cli-utilities/rladmin/cluster/config" >}})

    sh
    rladmin cluster config reserved_ports <list of ports/port ranges>
    

    For example:

    sh
    rladmin cluster config reserved_ports 11000 13000-13010
    
  • [Update cluster settings]({{< relref "/operate/rs/references/rest-api/requests/cluster#put-cluster" >}}) REST API request

    sh
    PUT /v1/cluster
    { "reserved_ports": ["list of ports/port ranges"] }
    

    For example:

    sh
    PUT /v1/cluster
    { "reserved_ports": ["11000", "13000-13010"] }
    

Change the Cluster Manager UI port

The Redis Software Cluster Manager UI uses port 8443, by default. You can change this to a custom port as long as the new port is not in use by another process.

To change this port, run:

sh
rladmin cluster config cm_port <custom-port>

After you change the Cluster Manager UI port, use the new port in the URL when accessing the UI on any node in the cluster. Example: https://newnode.mycluster.example.com:<custom-port>

Change the envoy ports

For system health monitoring, Redis uses the following ports by default:

  • Port 8002 for envoy admin

  • Port 8004 for envoy management server

  • Port 8006 for gossip envoy admin

You can change each envoy port to a custom port using the [rladmin cluster config]({{< relref "/operate/rs/references/cli-utilities/rladmin/cluster/config" >}}) command as long as the new port is not in use by another process. When you change envoy_admin_port, expect a restart of envoy.

To change the envoy admin port, run:

sh
$ rladmin cluster config envoy_admin_port <new-port>
Updating envoy_admin_port... restarting now

To change the envoy management server port, run:

sh
$ rladmin cluster config envoy_mgmt_server_port <new-port>
Cluster configured successfully

To change the gossip envoy admin port, run:

sh
$ rladmin cluster config gossip_envoy_admin_port <new-port>
Cluster configured successfully

Change the REST API port

For the REST API, Redis Software uses port 9443 (secure) and port 8080 (not secure), by default. You can change this to a custom port as long as the new port is not in use by another process.

To change these ports, run:

sh
rladmin cluster config cnm_http_port <new-port>
sh
rladmin cluster config cnm_https_port <new-port>

OS conflicts with port 53

{{<embed-md "port-53.md">}}

Update sysctl.conf to avoid port collisions

{{<embed-md "port-collision-avoidance.md">}}

Configure HTTPS

Require HTTPS for API endpoints

By default, the Redis Software API supports communication over HTTP and HTTPS. However, you can turn off HTTP support to ensure that API requests are encrypted.

Before you turn off HTTP support, make sure you migrate any scripts or proxy configurations that use HTTP to the encrypted API endpoint to prevent broken connections.

To turn off HTTP support for API endpoints, run:

sh
rladmin cluster config http_support disabled

After you turn off HTTP support, traffic sent to the unencrypted API endpoint is blocked.

HTTP to HTTPS redirection

Starting with version 6.0.12, you cannot use automatic HTTP to HTTPS redirection. To poll metrics from the metrics_exporter or to access the Cluster Manager UI, use HTTPS in your request. HTTP requests won't be automatically redirected to HTTPS for those services.

Nodes on different VLANs

Nodes in the same cluster must reside on the same VLAN. If you can't host the nodes on the same VLAN, then you must open [all ports]({{< relref "/operate/rs/networking/port-configurations.md" >}}) between them.