This guide provides a single-page reference for all ports that must be open across a Cisco Crosswork Assurance deployment. It consolidates platform, collector, agent, and browser-access ports into a single matrix, including the additional rows required for no-DNS mode.
Before You Begin
You need:
- Deployment inventory: install type (VM or Kubernetes), which collectors, which agents, and whether the deployment runs in DNS mode or no-DNS mode.
- Access to your firewall's rule set to add or verify rules.
Quick Reference
| Category | Ports | Direction |
|---|---|---|
| External Access | 443, 2443, 3443, 4443, 30000 | Inbound |
| Inter-Node | 2380, 4789, 6443, 9091, 9443, 10249, 10250, 10256 | Bidirectional |
| Local Processes | 2379, 7443, 9099, 10248, 10257, 10259 | Local only |
For per-component detail, including internal service health endpoints and a network topology diagram, see Complete Port Matrix and Firewall Rules.
External Access Ports
External access ports must be reachable from outside the cluster for user and administrative access. The specific ports depend on whether you use DNS mode or no-DNS mode.
DNS Mode (Recommended)
In DNS mode, all applications share port 443 and are differentiated by hostname. This is the recommended configuration for production deployments.
| Port | Protocol | Application | Access URL |
|---|---|---|---|
| 443 | TCP | Tenant UI | https://{domain} |
| 443 | TCP | Deployment UI | https://deploy.{domain} |
| 443 | TCP | Zitadel (auth) | https://auth.{domain} |
| 443 | TCP | Grafana | https://grafana.{domain} |
No-DNS Mode
In no-DNS mode, each application uses a different port and is accessed by IP.
| Port | Protocol | Application | Access URL |
|---|---|---|---|
| 443 | TCP | Tenant UI | https://{external-ip} |
| 2443 | TCP | Deployment UI | https://{external-ip}:2443 |
| 3443 | TCP | Zitadel (auth) | https://{external-ip}:3443 |
| 4443 | TCP | Grafana | https://{external-ip}:4443 |
Admin Console
The KOTS Admin Console is always accessible on port 30000 regardless of DNS mode.
| Port | Protocol | Application | Access URL |
|---|---|---|---|
| 30000 | TCP | KOTS Admin Console | https://{ip}:30000 |
Inter-Node Ports
These ports must be open bidirectionally between all cluster nodes.
| Port | Protocol | Component | Purpose |
|---|---|---|---|
| 2380 | TCP | etcd | etcd peer communication |
| 4789 | UDP | VXLAN | Pod network overlay |
| 6443 | TCP | Kubernetes API | API server |
| 9091 | TCP | kURL | kURL proxy |
| 9443 | TCP | kURL | kURL proxy (TLS) |
| 10249 | TCP | kube-proxy | Metrics |
| 10250 | TCP | Kubelet | Kubelet API |
| 10256 | TCP | kube-proxy | Health check |
Local Process Ports
These ports are local only and should not need firewall rules unless you have host-based filtering.
| Port | Protocol | Component | Purpose |
|---|---|---|---|
| 2379 | TCP | etcd | etcd client connections |
| 7443 | TCP | kURL | Registry proxy |
| 9099 | TCP | Calico | Felix health |
| 10248 | TCP | Kubelet | Health check |
| 10257 | TCP | kube-controller-manager | Secure port |
| 10259 | TCP | kube-scheduler | Secure port |
Sensor Agent Ports
Sensors send telemetry to the platform and receive configuration updates over port 443.
| Port | Protocol | Service | Purpose |
|---|---|---|---|
| 443 | TCP | RoadRunner | Telemetry ingestion (gRPC over TLS) |
| 443 | TCP | Sensor-Orchestrator | Configuration distribution |
For installation-specific requirements, see Assurance Sensor Agent Installation Guidelines.
Firewall Rule Examples
iptables (Linux)
# External access (DNS mode)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000 -j ACCEPT
# Inter-node communication (replace with your node IPs)
NODE_IPS="<node-1-ip> <node-2-ip> <node-3-ip>"
for NODE_IP in $NODE_IPS; do
iptables -A INPUT -s $NODE_IP -p tcp --dport 2380 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p udp --dport 4789 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 6443 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 9091 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 9443 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 10249 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 10250 -j ACCEPT
iptables -A INPUT -s $NODE_IP -p tcp --dport 10256 -j ACCEPT
done
firewalld (RHEL / CentOS)
# External access
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=30000/tcp
# Inter-node (create zone for cluster)
firewall-cmd --permanent --new-zone=pca-cluster
firewall-cmd --permanent --zone=pca-cluster --add-source=<node-cidr>
firewall-cmd --permanent --zone=pca-cluster --add-port=2380/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=4789/udp
firewall-cmd --permanent --zone=pca-cluster --add-port=6443/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=9091/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=9443/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=10249/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=10250/tcp
firewall-cmd --permanent --zone=pca-cluster --add-port=10256/tcp
firewall-cmd --reload
Cloud Security Groups (AWS / GCP / Azure)
# Inbound Rules
Type Protocol Port Source
HTTPS TCP 443 0.0.0.0/0 (or restricted CIDR)
Custom TCP TCP 30000 Admin IP range
Custom TCP TCP 2380 Cluster security group (self)
Custom UDP UDP 4789 Cluster security group (self)
Custom TCP TCP 6443 Cluster security group (self)
Custom TCP TCP 9091 Cluster security group (self)
Custom TCP TCP 9443 Cluster security group (self)
Custom TCP TCP 10249 Cluster security group (self)
Custom TCP TCP 10250 Cluster security group (self)
Custom TCP TCP 10256 Cluster security group (self)
Verification
For each row, verify the port is reachable from the source host to the destination:
# from source host, replace <dst> and <port>
nc -vz <dst> <port>
To see which ports are listening on a host:
ss -tlnp
If a check fails, follow the Network Connectivity Checklist.
Related Documentation
- Complete Port Matrix and Firewall Rules — per-component detail, topology diagram, and internal service health endpoints
- Firewall and Port Requirements
- Network Connectivity Checklist
- Assurance Sensor Agent Installation Guidelines
- Browser and Connectivity Requirements
© 2026 Cisco and/or its affiliates. All rights reserved.
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms