✨ New: Try our AI‑powered Search (Ctrl + K) — Read more

Consolidated Deployment Firewall and Port Matrix

Prev Next

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

© 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