Linux Pacemaker Failover Clustering/SQL Server Firewall Access Rules
Firewall Ports: Linux Pacemaker Multi-Subnet Cluster for SQL Server Availability Groups
Last updated: 2026-08-21 16:28:01
This document lists the firewall ports for a Linux Pacemaker Multi-Subnet Cluster that hosts SQL Server Availability Groups (AG). The ports are in order by function and by number, for the network and security teams.
Contents
Inter-node traffic: Allow every port in the tables below, Inbound and Outbound, between the cluster subnets.
Note: The subnets 10.10.33.192/26 and 10.20.33.192/26 are examples. The actual IP ranges depend on your environment.
1. Pacemaker, Corosync, and Clustering Ports
These ports keep quorum among the cluster nodes. The ports also send cluster state, manage the cluster, and connect the nodes to shared services for high availability.
| Port(s) | Protocol(s) | Direction | Component / Service | Purpose |
|---|---|---|---|---|
| 22 | TCP | Bi-directional | SSH | SSH for cluster management. |
| 22 | TCP | Outbound | Fencing (fence_ssh) |
Fencing (STONITH) through fence_ssh agents. |
| 443 | TCP | Outbound | Fencing (cloud/vCenter/IPMI) | Fencing (STONITH) to cloud, vCenter, or IPMI APIs. |
| 2224 | TCP | Bi-directional | Pacemaker (pcsd daemon) |
Core cluster management for configuration and authentication. Also serves the pcsd HTTPS web UI on this same port. |
| 3121 | TCP | Outbound | Pacemaker Remote | Full cluster nodes connect out to a remote/guest node's pacemaker_remoted. The remote node does not connect back on this port. |
| 3260 | TCP | Outbound | iSCSI Initiator | Cluster nodes (initiators) connect out to the iSCSI target for SBD (fencing) or shared storage. The target does not connect back on this port. |
| 5403 | TCP | Outbound | Corosync (qnetd) |
Cluster nodes run corosync-qdevice and connect out to the qnetd arbitrator. The arbitrator does not connect back on this port. |
| 5404-5412 | UDP | Bi-directional | Corosync/KNET | Core cluster heartbeat and messaging. Covers the KNET multi-link range for redundancy. |
| 9929 | TCP/UDP | Bi-directional | Booth | Used for multi-site clustering arbitration. |
| 21064 | TCP | Bi-directional | DLM | Distributed Lock Manager (necessary for GFS2/OCFS2). |
2. SQL Server and Availability Group Ports
These ports handle client access and AG data synchronization on the Linux cluster nodes themselves.
| Port(s) | Protocol(s) | Direction | Component / Service | Purpose |
|---|---|---|---|---|
| 445 | TCP | Outbound | SMB (backup volume) | Mounts a Windows SMB/CIFS share on the cluster node to store or read SQL Server backups. The node connects out to the Windows share. The share does not connect back on this port. See note N1. |
| 1433 | TCP | Inbound | SQL Server/AG Listener | Default connection for client access and the AG Listener. Clients connect in. The listener does not start this connection outbound. |
| 1434 | TCP/UDP | Inbound | SQL Server | TCP for the Dedicated Administrator Connection (DAC). UDP for SQL Server Browser. A client connects to the two. The server never starts this connection. |
| 5022 | TCP | Bi-directional | AG Endpoint | Core Availability Group communication for data synchronization. |
3. Custom and Non-Standard Port Examples
This section lists ports that are not defaults. Open them only when necessary, for a custom application configuration, a named instance, or a specific resource agent.
| Port(s) | Protocol(s) | Direction | Component / Service | Purpose |
|---|---|---|---|---|
| 111 | TCP/UDP | Bi-directional | NFS: RPC Portmapper | Optional. Only open if this environment uses NFS for shared storage, backups, or logs. Resolves other RPC service ports (for example, MountD, RquotaD). See note N4. |
| 662 | TCP/UDP | Bi-directional | NFS: RPC Status | Optional. Used by the NFS locking mechanism. Confirmed Bi-directional, regardless of server location. See note N4. |
| 875 | TCP/UDP | Bi-directional | NFS: RPC RquotaD | Optional. Remote quota reporting for NFS. See note N4. |
| 892 | TCP/UDP | Bi-directional | NFS: RPC MountD | Optional. Used to mount NFS file systems. See note N4. |
| 2049 | TCP/UDP | Bi-directional | NFS: Core | Optional. Core file transfer port for Network File System. See note N4. |
| 7788-7799 | TCP | Bi-directional | DRBD Proxy | Example port range for a resource agent that uses DRBD Proxy. See note N2. |
| 14330 | TCP | Inbound | SQL Server Instance | Example custom port for a specific named instance (for example, SQLAG_PROD). Carries traffic for client connectivity and the AG Listener. Clients connect in. |
| 32769 | UDP | Bi-directional | NFS: RPC LockD (UDP) | Optional. Used by the NFS locking mechanism. Confirmed Bi-directional, regardless of server location. See note N4. |
| 32803 | TCP | Bi-directional | NFS: RPC LockD (TCP) | Optional. Used by the NFS locking mechanism. Confirmed Bi-directional, regardless of server location. See note N4. |
4. Research and Reference URLs
The team used the following external documentation as the basis for the port requirements in this environment.
- Microsoft Learn (AG, Pacemaker): Configure a Pacemaker Cluster for SQL Server Availability Groups. This is the architecture this document covers. This guide has no SMB, Samba, NFS, or file-share-witness requirement anywhere.
- Microsoft Learn (FCI, not AG): Configure SMB Storage FCI for SQL Server on Linux. SMB only appears in Microsoft's SQL Server on Linux docs as shared storage for a Failover Cluster Instance (FCI). FCI is a different clustering model from AG. See note N1.
- Red Hat Documentation: Configuring and managing high availability clusters (RHEL 8)
- Red Hat Documentation: Configuring and managing high availability clusters (RHEL 10)
- YouTube: SQL Server 2022 HA on Linux
pcsd(8)man page: Debian Manpages. This confirms thatpcsdserves the daemon traffic and the HTTPS web UI on the same port, 2224. Basis for the removal of the duplicate port 443 row.statd(8)man page: man7.org. This confirms that NFS lock recovery usesSM_NOTIFY, sent by whichever host, client or server, restarts. Basis for the N4 direction split in Section 5.
5. Document Notes
This section records the corrections made during review. It also lists the items where the document owner's confirmation is necessary.
Corrected (verified against current vendor documentation):
- DRBD Proxy port: the source listed TCP 3389, the well-known RDP port. The correct range for DRBD and DRBD Proxy is TCP 7788-7799. Corrected in Section 3.
- DAC terminology: the source called port 1434's TCP function the "Dedicated Admin Port (DAP)." The correct SQL Server term is the "Dedicated Administrator Connection (DAC)." Corrected in Section 2.
- RPC LockD protocol label: row 32769 read "RPC LockD (DCP)," inconsistent with its own UDP protocol column and with the TCP-labeled row below it. Corrected to "(UDP)" in Section 1.
- Port 443 "PCSD Web UI" row: removed as a duplicate. Port 2224 serves the
pcsdweb UI, the same port already listed forpcsddaemon traffic. Red Hat'spcsddocumentation and thepcsd(8)man page confirm this. No separate pcsd service exists on port 443. The 2224 row's purpose text also states that this port serves the web UI. - Port 445 (SMB): moved from Section 1 to Section 2, and re-scoped. Microsoft's own Pacemaker-for-AG guide has zero mentions of SMB, Samba, NFS, or a file-share witness.
corosync_votequorumhandles quorum by itself. SMB only appears in Microsoft's SQL Server on Linux docs as the shared-storage backend for a Failover Cluster Instance (FCI), a different clustering model from AG. The confirmed purpose here is narrow: this port mounts a Windows SMB share to store or read SQL Server backup files. This is a client connection, outbound from the cluster node, not Bi-directional. - NFS ports (111, 662, 875, 892, 2049, 32769, 32803): moved from Section 1 to Section 3 and marked optional. Same reason as the SMB move: Microsoft's Pacemaker-for-AG guide has no NFS requirement anywhere, and the AG architecture is shared-nothing, so these ports are not core Pacemaker/Corosync/AG requirements. Open them only if this specific environment genuinely uses NFS for shared storage, backups, or logs.
Removed (Windows-only artifacts, not applicable to a Linux Pacemaker cluster):
- Ports 135, 137, 138, 139: these are the Windows DCE/RPC Endpoint Mapper (135) and legacy NetBIOS-over-TCP/IP services (137/138/139). Standard Samba file sharing on Linux does not use them. Direct-hosted SMB on port 445 replaced this requirement, starting with SMB 2.0.2. Removed from Section 1.
- Ports 49152-65535 (Dynamic Range): this is the Windows RPC/DCOM ephemeral port range used by Windows Server Failover Clustering. Linux SQL Server Availability Groups use fixed ports only (1433, 5022) and do not negotiate a dynamic RPC range. Removed from Section 2.
Direction corrected (verified against vendor/upstream documentation):
- Port 3121 (Pacemaker Remote): changed Bi-directional to Outbound. Full cluster nodes connect out to a remote/guest node. The remote node never connects back on this port.
- Port 3260 (iSCSI Initiator): changed Bi-directional to Outbound. The initiator (cluster node) connects out to the storage target. The target does not connect back.
- Port 5403 (
corosync-qnetd): changed Bi-directional to Outbound. Cluster nodes connect out to the qnetd arbitrator. The arbitrator does not connect back on this port. - Port 1433 (SQL Server/AG Listener), Port 1434 (DAC/Browser), Port 14330 (custom named instance): changed Bi-directional to Inbound. These are client-to-server connections. The SQL Server instance does not start them.
N1: SMB port (445): retained for one purpose only: mounting a Windows SMB share to store or read SQL Server backup files. Confirmed as Outbound from the cluster node. This is not a general Samba/CIFS file-sharing or AD-authentication use, and it is not inter-node traffic between cluster members. If the backup destination changes (a different protocol, or a Linux-hosted share instead of Windows), revisit this entry.
N2: DRBD Proxy applicability: confirm this resource agent is actually part of this cluster design before you open the 7788-7799 range.
N3: Scope: this document covers RHEL 8 and RHEL 10 only. Confirm which of the two applies to your environment before you use the reference links in Section 4.
N4: NFS ports (Section 3), optional, two direction groups:
These seven ports are not a Pacemaker/Corosync/AG requirement. Open them only if this environment genuinely uses NFS for shared storage, backups, or logs. Otherwise, leave them closed.
- 111 (portmapper), 892 (mountd), 875 (rquotad), 2049 (core NFS): if you do use NFS, direction depends on where the NFS server role lives. For an external NAS or gateway, Outbound-from-nodes and Inbound-to-server are necessary. For a cluster node that acts as the NFS server, Bi-directional is necessary. Confirm the NFS server location before you rely on this direction.
- 662 (
rpc.statd), 32769/32803 (lockd/NLM): if you do use NFS, these are confirmed Bi-directional regardless of server location. NFS lock recovery usesSM_NOTIFY: whichever host, client or server, reboots sends a notification to every monitored peer. Either side can be the one that reboots. An inbound rule is necessary on each side for this reason. Source:statd(8)man page and Google Cloud Filestore's NFS locking documentation.
Comments
Post a Comment