Solaris Firewall Service Prevents Oracle Solaris Cluster 4.4 From Rebooting in to Cluster Mode (32987543)
Description: A cluster boot hangs indefinitely after configuring the Solaris Firewall service for a cluster that runs Oracle Solaris Cluster 4.4.
The following output shows that when you reboot the node01
node, it never joins the cluster:
root@node01:~ May 21 09:42:14 node01 cl_runtime: NOTICE: CMM: Cluster doesn't have operational quorum yet; waiting for quorum. May 21 09:42:14 node01 cl_runtime: NOTICE: clcomm: Path node01:net3 - node02:net1 errors during initiation May 21 09:42:14 node01 cl_runtime: NOTICE: clcomm: Path node01:net0 - node02:net0 errors during initiation May 21 09:42:14 node01 cl_runtime: NOTICE: clcomm: Path node01:net1 - node02:net2 errors during initiation May 21 09:42:14 node01 cl_runtime: NOTICE: clcomm: Path node01:net2 - node02:net3 errors during initiation
For security purposes, you must configure Oracle Solaris Cluster to use the Solaris Firewall service.
Workaround: Unblock the Oracle Solaris Cluster interconnect traffic.
Use the appropriate Solaris Firewall service configuration file that is associated with your environment.
-
Oracle Solaris global cluster. Update the following example Oracle Solaris global cluster
fp.conf
configuration file to replace example interconnect network objects with the objects in your environment.The example interconnect network objects are
net0
,net1
,net2
,net3
, andclprivnet0
.# cat /etc/firewall/pf.conf #!/usr/sbin/pfctl -f ext_if = "aggr0" client_out = "{22, 111, 8059, 8060, 8061, 8062, 6499, 11161, 11162, 11163, 11164, 11165}" # do not filter local interface set skip on lo0 # do not filter global Cluster interconnects set skip on net0 set skip on net1 set skip on net2 set skip on net3 set skip on clprivnet0 # do not filter local ILOM interface set skip on sp-phys0 block in log quick on egress proto tcp to port { 22 } block return log all pass in log proto tcp from any to any port 22 <> 23 pass out log proto tcp from any to any pass in log proto udp from any to any pass out inet proto icmp all icmp-type echoreq keep state pass in log proto icmp from any to any table <accesslist> persist file "/etc/accesslist" pass in log on $ext_if proto tcp from <accesslist> to port $client_out flags S/SA keep state pass out on $ext_if proto udp all # Solaris Cluster: allow all connections initiated from this system pass out set debug info
-
Oracle Solaris exclusive-IP zone cluster. Update the following example Oracle Solaris exclusive-IP zone cluster
fp.conf
configuration file to replace example interconnect network objects with the objects in your environment.The example interconnect network objects are
net0_zcdb1_vnic0
,net1_zcdb1_vnic0
,net2_zcdb1_vnic0
,net3_zcdb1_vnic0
, andclprivnet1
.# cat /etc/firewall/pf.conf set reassemble yes no-df ext_if = "zcdb1vnic1" client_out = "{22, 5201, 111, 8059, 8060, 8061, 8062, 6499, 11161, 11162, 11163, 11164, 11165}" set skip on lo0 set skip on net0_zcdb1_vnic0 set skip on net1_zcdb1_vnic0 set skip on net2_zcdb1_vnic0 set skip on net3_zcdb1_vnic0 set skip on clprivnet1 block in log quick on egress proto tcp to port { 22 } block return log all pass in log proto tcp from any to any port 22 <> 23 pass out log proto tcp from any to any pass in log proto udp from any to any pass out inet proto icmp all icmp-type echoreq keep state pass in log proto icmp from any to any table <accesslist> persist file "/etc/accesslist" pass in log on $ext_if proto tcp from <accesslist> to port $client_out flags S/SA keep state pass out on $ext_if proto udp all pass out set debug error
-
Oracle Solaris shared-IP zone cluster. Unblock the
clprivnet
interconnect network object because a shared-IP zone cluster shares the private interconnects with the global zone.