Workflow for Setting Up a High Availability Cluster in Azure Stack
Step 1: Download the Marketplace Template
To deploy this solution through the Azure Stack user portal, use the Check Point CloudGuard Network Security High Availability and Management packages.
Do these steps:
-
Register Azure Stack with Azure. This lets you add images from Azure Marketplace Management to your on-premises environment. See Azure Stack Operator Azure-Stack Registration.
- Download the Check Point CloudGuard image from the Marketplace Management.
Search for Check Point and click on the Check Point vSEC (now called CloudGuard) image link.
Click Download.
- Download the Azure Gallery Package
*.azpkg
to the Azure Stack environment using the following command in the PowerShell CLI:No
Description
3.a Add endpoints for an instance of Azure Resource Manager by executing:
Add-AzureRmEnvironment -Name AzureStackAdmin –ARMEndpoint https://adminmanagement.<REGION>.<DOMAIN>
Notes:
Replace
<REGION>
with your Azure Stack region.Replace
<DOMAIN>
with your Azure Stack domain.3.b Adds an Azure Resource Manager account to run cmdlets for the specified environment and tenant by default. This is done by executing:
Add-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId <TENANT>
Note:
Replace
<TENANT>
with your tenant ID.3.c Gallery item
Add High Availability package gallery item:
Add-AzsGalleryItem -GalleryItemUri https://chkpazurestack.blob.core.windows.net/azpkg-stack-ha/checkpoint.CloudGuard-stack-ha.1.0.0.azpkg -VERBOSE
Add Management package gallery item:
Add-AzsGalleryItem -GalleryItemUri https://chkpazurestack.blob.core.windows.net/azpkg-stack-management/checkpoint.CloudGuard-stack-management.1.0.0.azpkg -VERBOSE
3.d Make sure that the Marketplace items downloaded successfully:
- For High Availability Gallery item, run:
Get-AzsGalleryItem | select name
Detect High Availability package in the output list, run:
checkpoint.CloudGuard-stack-ha.1.0.0.azpkgkg
Detect Management package in the output list, run:
checkpoint.CloudGuard-stack-management.1.0.0.azpkg
3.e Locate High Availability solution in your Azure Stack Admin portal:
Click on create new resource.
Confirm that HA Marketplace successfully downloaded.
Step 2: High Availability Deployment
Deploying with a Template in Azure
Deploy this solution through the Azure Stack User Portal.

Parameter |
Description |
---|---|
Cluster object name
|
Name of the cluster object resource group. |
Credentials
|
Public key or user name and password for SSH connections to the Cluster Members. |
Subscription
|
Azure Stack subscription into which the cluster object is deployed |
Resource group
|
Azure Stack resource group in which the cluster object is deployed |
Location
|
Location in which the cluster object is deployed |
|
Type of license:
|
Virtual Machine |
Size of each Virtual Machine instance in the cluster object |
|
SIC key to the Security Management Server |
|
Notes: When you use pre-existing subnets, make sure that:
|
Components of the Check Point Solution
The Check Point deployed solution has these components:
-
Frontend subnet
-
Backend subnet
-
Two Virtual Machines configured as a Check Point cluster
-
Internal Load Balancer
-
External Load Balancer
-
Public IP address for each Cluster Member
![]() |
Important - Other Virtual Machines cannot be deployed in the solution's subnet. |
Notes about the template:
-
You can create a new Virtual Network, or deploy into an existing Virtual Network.
-
Web and App subnets are not deployed automatically.
-
It does not deploy any other Virtual Machines in the solution's frontend and backend subnets.
-
Virtual Machines that are launched in the backend subnets, may require Internet access to finalize provisioning. Launch these Virtual Machines only after you have applied Hide NAT rules on the cluster object to support this type of connectivity.
-
The Check Point First Time Configuration Wizard automatically deploys after you have set up the cluster object. The cluster object is configured based on the parameters that you applied.
-
After the First Time Configuration Wizard completes, the Virtual Machines automatically reboot.
Step 3: Configuring Cluster Objects in SmartConsole
Notes:
-
SmartConsole must be installed on the Windows VM host and not on your Azure Stack host.
-
Deploy your Windows VM host from the Azure Stack portal.

No |
Description |
---|---|
1 |
Change the Management Object private IP address with its public address: In Gateways & Servers:
|
2 |
Click the Objects menu > More object types > Network Object > Gateways & Servers > Cluster > New Cluster. |
3 |
Select Wizard Mode. |
4 |
Enter a Cluster Name. Example: |
5 |
In the Cluster IPv4 Address field, enter the public address of the External Load Balancer. Note: You can find the frontend-lb IP address in the Azure Stack portal by selecting the |
6 |
Click Next. |
7 |
Click Add, and then do these steps:
|
8 |
Repeat Step 6 to add the second Cluster Member. |
9 |
Click Next. |
10 |
Select Cluster Synchronization > Primary > Next. |
11 |
Select Cluster Synchronization > Secondary > Next. |
12 |
Select Edit Cluster's Properties > Finish. |
13 |
Configure the interfaces eth0 and eth1.
|
14 |
Install the applicable Access Control policy on the cluster object. |
Step 4: Configuring Cluster Members for Azure Stack Environment

No |
Description |
|||
---|---|---|---|---|
1 |
From Expert Mode, run this command on each Cluster Member:
Notes:
|
|||
2 |
Write down the output from Step 1 (you need again for a different step).
|
|||
3 |
In Expert mode, run this command on each Cluster Member:
|
|||
4 |
Add the following parameters to the file:
Notes: Replace Replace Replace |
|||
5 |
In Expert mode, run this command on each Cluster Member to reload the configuration:
|
|||
6 |
Define your cluster environment on each Cluster Member: In Expert mode, run:
Notes: Replace Replace |
|||
7 |
In Expert mode, run these commands on each Cluster Member:
|
Step 5 : Setting Credentials in Azure
Creating Your Own Service Principal
For Azure Stack Federation Services (AD FS) create service principal. see Create a service principal that uses client secret credentials.

Field |
Parameter |
|
---|---|---|
Name |
Example:
|
|
Supported |
Accounts in this organizational directory only (Microsoft) |
|
Application type |
Web |
|
Sign-on URL |
Example:
|
After you create the application, write down these values:
-
ApplicationId
client_id
To create a new application secret:
-
Select Certificates & secrets.
-
Select Client secrets > New client secret.
-
Enter a description of the secret, and a duration, click Add.
We recommend to set the key to never expire. -
Important - After saving the client secret, the value of the client secret is displayed. Copy and save this value. Otherwise, you will not be able to retrieve the key later.
-
-
Key Value
client_secret

Step |
Description |
||
---|---|---|---|
1 |
To allow the cluster to update the necessary Azure resources on failover, the service principal must be assigned at least the following roles on these resources, or on their respective resource group: Resource types:
|
||
2 |
Navigate to the relevant source. Note - When deploying a cluster into an existing vNET, make sure to assign a Contributor role to it. |
||
3 |
Click Access control (IAM) > Add. |
||
4 |
Select Contributor role. |
||
5 |
Select your AD application. |
||
6 |
Click Save. |
||
7 |
Set the
Example:
Note: To avoid shell expansion, use single quotes. |
||
8 |
Make sure the file syntax is correct. In Expert mode, run this command on each Cluster Member:
|
||
9 |
Reload the cluster Azure configuration. In Expert mode, run this command on each Cluster Member:
|
Step 6: Set up Internal Subnets and Route Tables Settings
You can use the Azure portal or the CLI to add internal subnets. This section describes how to add the Web and App subnets to a Virtual Network.
For each internal subnet, you must create an Azure Stack routing table with these UDRs:

# |
Name |
Address-prefix |
Nexthop-type |
Nexthop-address |
---|---|---|---|---|
1 | <web-subnet>-local
|
<10.0.4.0/24>
|
Virtual Network | -- |
2 | web-subnet-to-app-subnet
|
10.0.5.0/24
|
Virtual Appliance | IP of the Active Member Internal Private Address |
3 | web-subnet-default
|
0.0.0.0/0
|
Virtual Appliance | IP of the Active Member Internal Private Address |

# |
Name |
Address-prefix |
Nexthop-type |
Nexthop-address |
---|---|---|---|---|
1 | <app-subnet>-local
|
<10.0.5.0/24>
|
Virtual Network | -- |
2 | app-subnet-to-web-subnets
|
10.0.4.0/24
|
Virtual Appliance | IP of the Active Member Internal Private Address |
3 | app-subnet-default
|
0.0.0.0/0
|
Virtual Appliance | IP of the Active Member Internal Private Address |

-
If traffic inspection is required inside the Web/App subnets, then override Rule 1 in the route tables above,
<web-subnet>-local, and <app-subnet>-local
. -
To achieve traffic inspection by the Active Cluster Member, add a route that forwards the traffic through the Active Cluster Member for each subnet in your vNET.
![]() |
Important - Associate the newly created routing table with the subnet to which it belongs. |
If the subnet houses the Security Management Server that manages the Cluster Member, add these routes in the example table below as well. This allows the Security Management Server to communicate directly with each Cluster Member - without passing through the Active Cluster Member.

Name |
Address-prefix |
Nexthop-type |
Nexthop-address |
---|---|---|---|
Subnet-name- cluster_member1-management
|
cluster_member1-internal-address/32 <10.0.2.10/32>
|
Virtual appliance
|
cluster_member1-internal address <10.0.2.10>
|
Subnet-name- cluster_member2-management
|
cluster_member2-internal-address/32 <10.0.2.11/32>
|
Virtual appliance
|
cluster_member2-internal address <10.0.2.11>
|
Step 7: Setting Up Routes on Cluster Member to the Internal Subnets

No |
Description |
||
---|---|---|---|
1 | Connect with SSH to each of the Cluster Members. | ||
2 | Log in to Gaia Clish, or Expert mode. | ||
3 |
Add this route:
Notes:
Example:
|

Parameter |
Description |
---|---|
<Virtual-Network-IP-address/Prefix>
|
Specifies the prefix of the entire Virtual Network. Example: |
<eth1-router-IP-address>
|
Specifies the first unicast IP address on the subnet, to which the eth1 is connected. Example: |
Note - If the Virtual Network comprises several non-contiguous address prefixes, then repeat the command for each prefix.
Step 8: Configuring NAT Rules
Note - See Creating Objects in SmartConsole
In SmartConsole, create these NAT rules to provide Internet connectivity from the internal subnets.

No |
Description |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
![]()
|
||||||||||||||||
2 |
![]()
|
||||||||||||||||
3 |
![]()
|
||||||||||||||||
4 |
![]()
|
||||||||||||||||
5 |
![]()
|

-
Rule 1 - You have to define this NAT rule manually.
-
Rules 2 - 5 - SmartConsole creates these NAT rules automatically.
-
Traffic between the Web-subnet and the App-subnet is based on the UDR rules. Each subnet has its own routing table.

No |
Description |
---|---|
1 |
Double-click the Web-subnet object. The Web-subnet object window opens. |
2 |
Select the NAT tab > Add automatic address translation rules. |
3 |
In the Translation method field, select Hide > Hide Behind Gateway. |
4 |
In the Install on Gateway field, select the cluster object. |
5 |
Click OK. This creates the automatic NAT rules. |
6 |
Install the applicable Access Control policy on the cluster object. |
Step 9: Setting Up the
External Load Balancer in Azure Stack
By default, the template you deploy creates an External Load Balancer, with the name frontend-lb
, which faces the Internet.
The External Load Balancer sends health probes to TCP port 8081 to determine the health of the CloudGuard Network Security Security Gateways. You can create the load balancing rules in the Azure portal to allow incoming connections.

-
You cannot use these ports for forwarded traffic:
-
80
-
443
-
444
-
8082
-
8080
-
8117
-
-
The Load Balancer can be set to listen on other ports or on additional public IP addresses.
Configuring the Load Balancer in Azure Stack
You can configure the Load Balancer to listen on the TCP port 443, and forward this traffic to the Check Point CloudGuard Security Gateways on the TCP port 8081.

No |
Description |
---|---|
1 |
Go to the Azure Stack User portal Notes:
|
2 |
Find the External Load Balancer. The Load Balancer is in your Resource Group. The Load Balancer's name is frontend-Ib. |
3 |
Configure the health probe:
|
4 |
Configure a new Load Balancing Rule:
|
Creating Dynamic Objects 'LocalGatewayExternal' and 'LocalGatewayInternal'
You must create these Dynamic Objects in SmartConsole:
-
LocalGatewayExternal
-
LocalGatewayInternal

No |
Description |
---|---|
1 |
Click Objects menu > More object types > Network Object > Dynamic Object > New Dynamic Object. |
2 |
Enter this name exactly as it appears below (case-sensitive, no spaces): LocalGatewayExternal |
3 |
Click OK. |
4 |
Click Objects menu > More object types > Network Object > Dynamic Object > New Dynamic Object. |
5 |
Enter this name exactly as it appears below (case-sensitive, no spaces): LocalGatewayInternal |
6 |
Click OK. |
7 |
Publish the session. |
Configuring the Load Balancer to Listen on Additional Public IP Addresses and Ports
When using multiple web applications, each with its own public IP address, you need to configure the Load Balancer to listen on an additional public IP address on the TCP port 80. Forward this traffic to the Check Point CloudGuard Security Gateways on TCP port 8083.

No |
Description |
---|---|
1 |
Go to the Azure Stack User Notes:
|
2 |
Find the External Load Balancer. The Load Balancer is in the Resource Group. The Load Balancer's name is |
3 | In the Azure portal, allocate a new public IP address. |
4 |
|
5 |
Configure the health probe:
|
6 |
Configure a new Load Balancing Rule:
|
Step 10: Configuring Inbound Protection
Configure Access Control and NAT rules for North-South inbound traffic.

No |
Description |
---|---|
1 |
Connect with SmartConsole to your Security Management Server. |
2 |
Create a host object to represent the specific host you want to access through the Internet. Do these steps:
|
3 |
Create a new TCP service to represent the External Load Balancer configuration. You have to do this for each internal port, such as port 8081. Do these steps:
|
4 |
Create a corresponding Access Control rule for each External Load Balancer with these values. Rule Rule No - Name - Desired rule name Source - Destination - VPN - Services and Applications - The service object that represents the internal port Data - Action - Track - Install On - * Note - Create only one LocalGatewayExternal object for each Security Management Server. (see Creating Dynamic Objects 'LocalGatewayExternal' and 'LocalGatewayInternal'). |
5 |
Create a NAT rule with these values for each Azure External Load Balancer: Rule Rule No - Original Source - Original Destination - Original Services - The service object that represents the internal port Translated Source - Translated Destination - The Host object that represents the Internal Web Server. Translated Services - The service object that represents the port, on which the Web server listens (for example, Install On - |
|
About this NAT rule:
|
6 |
Publish the session. |
7 |
Install the Access Control policy on the CloudGuard Security Gateways. |