HP-UX IPFilter is a system firewall and as such should be
installed on end systems. Connections to an IPFilter system that
are lost during a remote failover must be reinitiated.
Install and configure HP-UX IPFilter on each node of an MC/ServiceGuard
cluster that must be protected. The IPFilter configuration for the
primary node might be different from the configuration for the backup
nodes.
For example, the backup node might be multi-homed and require
a different rule set. Also, rules could be configured to filter
on the static IP address of the receiving node that would be different
for each node in the cluster. Rules that filter on interface names
will also be different on different nodes in a cluster.
Filtering
on a Package IP Address
HP-UX IPFilter can filter on a package IP address. The package
IP address is an IP address that corresponds to a logical network
interface.
For example, a telnet connection is made to the primary cluster
node with a package IP address of 17.13.24.105. You want to configure IPFilter
to let telnet traffic through. Configure the following rule for incoming
telnet connections made to the telnet package:
pass in proto tcp from any to 17.13.24.105 flags S keep state
You can replace 17.13.24.105 with the package name in this
rule if the package has been configured properly and has a DNS entry.
Configure this rule on the backup nodes as well. This ensures
that when the telnet package fails to a backup, there is a rule
on the backup that lets telnet connections pass through as required.
This type of configuration can be used with any package.
Each node in an MC/ServiceGuard cluster has specific rules
that must be configured. These rules ensure that:
Normal remote
failovers are not disrupted.
No false remote failovers
occur because traffic is blocked by IPFilter that should not be
blocked.
The classes of mandatory rules cover:
Intra-Cluster
Communication
The following services should not be blocked:
hacl-qs 1238/tcp # High Availability (HA) Quorum Server clvm-cfg 1476/tcp # HA LVM configuration hacl-hb 5300/tcp # High Availability (HA) Cluster heartbeat hacl-hb 5300/udp # High Availability (HA) Cluster heartbeat hacl-gs 5301/tcp # HA Cluster General Services hacl-cfg 5302/tcp # HA Cluster TCP configuration hacl-cfg 5302/udp # HA Cluster UDP configuration hacl-probe 5303/tcp # HA Cluster TCP probe hacl-probe 5303/udp # HA Cluster UDP probe hacl-local 5304/tcp # HA Cluster commands hacl-test 5305/tcp # HA Cluster test hacl-dlm 5408/tcp # HA Cluster distributed lock manager |
 |
Intra-Cluster
Communication
To ensure proper operation of your MC/ServiceGuard cluster,
each of the configured MC/ServiceGuard heartbeat subnets must allow
intra-cluster communication. The following rules must be applied
to each subnet.
For a simplified HP-UX IPFilter configuration, use the following
rules:
pass in quick from <clusternodes> to any |
pass out quick from any to <clusternodes> |
For more restrictive HP-UX IPFilter configurations, use the
following rules to allow only the required cluster services to pass
through:
pass in quick proto tcp from <clusternodes> to <clusternodes> port 5299 >< 5305 flags S keep state |
pass in quick proto udp from <clusternodes> to <clusternodes> port = 5300 keep state |
pass in quick proto udp from <clusternodes> to <clusternodes> port = 5302 keep state |
pass in quick proto tcp from <clusternodes> to <clusternodes> port = 5408 flags S keep state |
pass in quick proto tcp from <clusternodes> to <clusternodes> port 49151><65536 keep state |
pass in quick proto udp from <clusternodes> to <clusternodes> port 49151><65536 keep state |
pass out quick proto tcp from <clusternodes> to <clusternodes> port 5299 >< 5305 flags S keep state |
pass out quick proto udp from <clusternodes> to <clusternodes> port = 5300 keep state |
pass out quick proto udp from <clusternodes> to <clusternodes> port = 5302 keep state |
pass out quick proto tcp from <clusternodes> to <clusternodes> port = 5408 flags S keep state |
pass out quick proto tcp from <clusternodes> to <clusternodes> port 49151><65536 keep state |
pass out quick proto udp from <clusternodes> to <clusternodes> port 49151><65536 keep state |
In the previous set of rules, <clusternodes> are all nodes in the cluster, including the local node.
Running the cmscancl command requires the “shell” port be
open.
If your MC/ServiceGuard configuration uses a Quorum Server,
each node in the cluster must have the following rule configured:
pass out quick proto tcp from <clusternodes> to <quorumserver> port = 1238 flags S keep state |
Any node providing Quorum Service for another cluster must
have the following rule configured:
pass in quick proto tcp from <clusternodes> to <quorumserver> port = 1238 flags S keep state |
In the previous set of rules, <clusternodes> are all nodes in the cluster utilizing the Quorum Service
and <quorumserver> is the IP address used to access the MC/ServiceGuard
Quorum Service software.
If you want nodes outside the cluster to execute MC/ServiceGuard
commands, as specified in the etc/cmcluster/cmclnodelist file, additional rules are required.
Each node in the cluster must have the following rules configured:
pass in quick proto tcp from <remotenodes> to <clusternodes> port = 5302 flags S keep state |
pass in quick proto udp from <remotenodes> to <clusternodes> port = 5302 keep state |
pass out quick proto tcp from <clusternodes> to <remote node name> port 49151><65536 keep state |
pass out quick proto udp from <clusternodes> to <remote node name> port 49151><65536 keep state |
Each remote node must have the following rules configured:
pass in quick proto tcp from <clusternodes> to <remote node name> port 49151 >< 65536 keep state |
pass in quick proto udp from <clusternodes> to <remote node name> port 49151 >< 65536 keep state |
pass out quick proto tcp from <remotenodes> to <clusternodes> port = 5302 flags S keep state |
pass out quick proto udp from <remotenodes> to <clusternodes> port = 5302 keep state |
In the previous set of rules, <clusternodes> are all nodes in the cluster, <remote node name> is the specific remote node, and <remotenodes> are all other nodes outside the cluster that are designated
in the cmclnodelist file for remote command access.
Running the cmscancl command requires the “shell” port be
open.
If you are using a Cluster Object Manager (COM) on a node
outside of the cluster to provide connections to ServiceGuard Manager
clients, each node in the cluster must have the following rules
configured:
pass in quick proto tcp from <comnode> to <clusternodes> port = 5302 flags S keep state |
pass in quick proto udp from <comnode> to <clusternodes> port = 5302 keep state |
pass out quick proto tcp from <clusternodes> to <comnode> port 49151 >< 65536 keep state |
pass out quick proto udp from <clusternodes> to <comnode> port 49151 >< 65536 keep state |
The node running COM must have the following rules configured:
pass in quick proto tcp from <comclient> to <comnode> port = 5303 flags S keep state |
pass in quick proto tcp from <clusternodes> to <comnode> port 49151 >< 65536 keep state |
pass in quick proto udp from <clusternodes> to <comnode> port 49151 >< 65536 keep state |
pass out quick proto tcp from <comnode> to <clusternodes> port = 5302 flags S keep state |
pass out quick proto udp from <comnode> to <clusternodes> port = 5302 keep state |
Each COM client must have the following rules configured:
pass out quick proto tcp from <comclient> to <comnode> port = 5303 flags S keep state |
In the previous set of rules, <clusternodes> are all nodes in the cluster, <comclient> are nodes that are clients of COM for ServiceGuard Manager
or Continental Clusters products, and <comnode> is the node running the COM.