---
title: Working with Gateways
slug: ps/help/en_us/nsa/22x/nsa-zta/ag/1004
docTags: 
createdAt: 2026-07-22T14:00:50.432Z
---

- [Introduction](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Using Dynamic IP Addressing to Profile Client Traffic](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [White-listing Required IP Addresses for your Services](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Viewing and Monitoring Gateways in the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Viewing Gateway Logs](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Viewing Gateway Tasks](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Editing Gateway Configuration](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Troubleshooting Gateway Issues](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Creating Gateway Selectors](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Workflow: Creating a Gateway in VMware vSphere](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Workflow: Creating a Gateway in Amazon Web Services](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Workflow: Creating a Gateway in Microsoft Azure](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Workflow: Creating a Gateway in Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Workflow: Creating a Gateway in Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Upgrading Gateways](docId\:odDr4Z3VrHMCgVhHAWv7j)
- [Configuring ZTA Gateway Connection Control for Trusted Networks](docId\:odDr4Z3VrHMCgVhHAWv7j)

## Introduction

After you have successfully logged into the *Ivanti Neurons for Zero Trust Access* (*nZTA*) *Controller* as a Tenant Admin user (see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z)), you can start the configuration of your *nZTA* platform by adding Gateways.

*nZTA* supports two main Gateway types, depending on your subscription:

- *nZTA Gateway*
- *Ivanti Connect Secure* (*ICS*) Gateway

This chapter covers functionality relating to a *nZTA Gateway* only. For details pertaining to a *ICS* Gateway, see instead the "*ICS* Tenant Admin Guide" in the *nZTA* documentation portal.

:::hint{type="info"}
To learn more about *nZTA Gateway*s and their relationship with the other dimensions of a *Secure Access Policy*, see [Deploying Gateways](docId\:l_5jA2G89IAVU6vx7XKKi).
:::

A Gateway controls access to the applications at the location to which it is deployed. This location could be a physical datacenter, a private or public cloud-based service, or some hybrid combination. Each Gateway communicates with the *Controller* to ensure that access requests are authenticated. A Gateway must be contactable by both the *Controller* and the applications that reside there. See [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).

The process of defining a Gateway on the *Controller* produces a package of settings, known as a Gateway definition, that you publish to the Gateway virtual machine instance during deployment. These settings enable the Gateway to establish communication with the *Controller*.

:::hint{type="info" indent="1"}
Ensure the Gateway virtual machine instance does not exist prior to creating your Gateway definitions on the *Controller*. All *nZTA Gateway*s must be deployed from the *Controller* directly. The Gateway definition file is designed to be published to a new virtual machine Gateway instance during its initial deployment.
:::

To register a new Gateway with the *Controller*, use the Tenant Admin portal. The *Controller* requires basic identification and networking details for the Gateway instance, and in return provides a downloadable Gateway definition file.

:::hint{type="info" indent="1"}
A Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.
:::

When you deploy the Gateway virtual machine instance in your on-premise or cloud infrastructure, you apply the definition file as configuration data. At launch time, the Gateway attempts to contact and register itself with the *Controller*, establishing a link between the Gateway record in the *Controller* and the actual virtual machine instance. Any subsequent policy changes made on the *Controller* are automatically synchronized out to all Gateways.

You can choose a single Gateway (or Gateway Group) to act as a *default Gateway*. A default Gateway handles all requests from applications that are not referenced by any secure access policy. See [Viewing and Monitoring Gateways in the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info" indent="1"}
*Ivanti Secure Access Client* Linux variants do no currently support the use of a default gateway.
:::

After you have registered your Gateways with the *Controller*, you can:

- View performance and usage graphs
- See activity logs
- View task lists
- Establish Gateway Groups for *High Availability*
- Manage version upgrades
- Replace Gateway instances registered with the *Controller*

To learn more, see [Viewing and Monitoring Gateways in the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).

### High Availability

*nZTA* allows you to deploy multiple Gateways in front of the same set of applications or resources to support high availability. This arrangement can be used to provide scaling, redundancy, and load distribution for your application delivery. To learn more, see [Using Gateway Groups for High Availability](docId\:l_5jA2G89IAVU6vx7XKKi).

High availability is implemented in the *Controller* through **Gateway Groups**. You add individual Gateways to a group, and then associate the group with your Secure Access Policy. To learn more about adding Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Gateway Deployment Workflows

*nZTA* supports Gateway virtual machine instances deployed in the following environments:

- **VMware vSphere**: see [Workflow: Creating a Gateway in VMware vSphere](docId\:odDr4Z3VrHMCgVhHAWv7j).
- **Amazon Web Services (AWS)**: see[ Workflow: Creating a Gateway in Amazon Web Services](docId\:odDr4Z3VrHMCgVhHAWv7j).
- **Microsoft Azure**: see [Workflow: Creating a Gateway in Microsoft Azure](docId\:odDr4Z3VrHMCgVhHAWv7j).
- **Google Cloud Platform**: see[Workflow: Creating a Gateway in Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- **Oracle Cloud Platform** ( Qualified with ZTA GW version: 22.7R1, 22.6R1): [Workflow: Creating a Gateway in Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j)

You can choose any single Gateway (at v21.1 or later) or Gateway Group to act as a *default Gateway*. A default Gateway handles all requests from applications that are not referenced by any secure access policy. See [Configuring a Default Gateway for Application Discovery](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info" indent="1"}
For 22.7R1.3 release, 22.7R2.2 ZTA Gateway version is not supported with Oracle and AWS platforms.
:::

:::hint{type="info" indent="1"}
Each process described in this chapter contains prerequisites that correspond to the latest supported Gateway versions for this release. To deploy older supported Gateway versions, substitute in the file paths and names with the version you want to use. To learn more about the supported Gateway images for this release, see the Release Notes or contact your support representative.
:::

## Configuring Networks in your Gateway Datacenter

*nZTA Gateway*s deployed in your cloud or on-premise datacenter require the availability of a number of network interfaces and ports to operate correctly. You require the following primary interfaces defined in your Gateway virtual machine instance:

- **External network interface**: Configured with a public subnet IP address and used for external client access to the applications deployed in that datacenter. Use this IP address during the process of creating your Gateway record on the *Controller*.
- **Internal network interface**: Configured with a private subnet IP address and used for internal connections to the deployed applications, and for external communication with the *Controller*.
- **(Optional) Management network interface**: Configured with an IP address and port on a further, separate, network subnet for deployments where a specific management interface is required.

:::hint{type="info" indent="1"}
When the management port is enabled, Gateway will use management interface to communicate with Controller and NTP Server. The Gateway will still use the internal port for DNS resolution and NTP server name resolution. If the internal DNS cannot resolve the Controller domain, the internal interface will require internet access.
:::

*nZTA Gateway* template images contain parameters and settings for all required interfaces. You provide suitable configuration during the Gateway deployment workflows described in this chapter.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/l9V-0B1zlPQlkeKmGg4yI_gatewaydetail.png" position="flex-start" size="80" width="1989" height="1141" initialPath="img/gateway_detail.png" githubPath="img/gateway_detail.png" darkWidth="1989" darkHeight="1141" showCaption="false"}

:::Paragraph{indent="1"}
Gateway network connections in your cloud and on-premise datacenter
:::

*nZTA Gateway* deployment using this topology offers the following attack protection benefits:

- **mTLS Communication**: By using mTLS for communication with the *Controller*, your Gateways are protected from traffic originating from unauthorized and un-enrolled devices.
- **DMZ/DDoS Deployment**: *nZTA* allows customers to deploy their own DDoS (Distributed Denial of Service) mitigations, either through network firewalls or DDoS services, before traffic reaches the *nZTA Gateway*s deployed in your datacenter.
- **SSL inspection**: If an administrator chooses to use SSL interception or deep inspection for traffic coming into the network or to back-end applications, this can be achieved on the internal *Private Subnet* side before traffic reaches your back-end application servers.

The *Controller* communicates with all registered Gateways to validate user sessions, and for reporting/analytics. Each Gateway maintains a timeout period of 5 minutes for validation of user sessions. If a Gateway fails to obtain a response from the *Controller* within this time limit, any new session authorization requests are denied. However, existing sessions remain connected to the applications and resources at that location until the user session expires. To learn more about user session expiry, see [On-Demand Connection Handling](docId\:odDr4Z3VrHMCgVhHAWv7j).

For all platforms, make sure the firewall rules for the **Public Subnet** in which your *nZTA Gateway***External Interface** resides is configured to accept inbound client connections on TCP port 443.

Furthermore, make sure you configure the **Network Gateway** serving your **Private Subnet** to allow outbound traffic to the *Controller* in the following ways:

- Allow outbound TCP traffic on port 443 to the *Controller* service
- Allow outbound UDP traffic to the following Network Time Protocol (NTP) services:
  - time.windows.com (port 123)
  - time.nist.gov (port 123)

If you maintain your own DNS service at the datacenter, you can specify these details during Gateway deployment.

If you are planning to use your *nZTA Gateway* to serve SaaS (Software-as-a-Service) applications, configure your application to restrict inbound connections to your **network gateway** IP address. This ensures that your SaaS application can be reached only by clients connecting through the *nZTA Gateway*.

## Using Dynamic IP Addressing to Profile Client Traffic

:::hint{type="info"}
This feature is supported for VMware (ESXi) Gateway types only.
:::

:::hint{type="info"}
This feature is not supported for Gateway Groups.
:::

:::hint{type="info"}
Dynamic IP pool feature is supported with ZTA 25.x Gateways.
:::

A client establishes a secure tunnel to a Gateway in order to reach the applications and resources controlled by a Secure Access Policy. Traffic from the client passes through the tunnel to the Gateway, and from the *Internal* network interface on the Gateway to the application. The application or resource sees the client's traffic as originating from the Gateway's internal interface. This scenario is transparent to the client and application - the Gateway manages traffic back to the client using Network Address Translation (NAT) to map traffic on the internal interface to the client's source IP address.

However, in some circumstances you might want to profile or monitor end-to-end traffic for your clients. This is difficult beyond the Gateway as traffic at the application appears to originate from the same source IP address (that of the Gateway internal interface). To facilitate this, *nZTA* includes the option to specify a pool of IP addresses in a dedicated subnet that the *Controller* can dynamically assign to client sessions. As a client sends traffic to an application or resource, the Gateway establishes a mapping from the tunnel IP address to one of the free IP addresses in the pool. This dynamically-assigned IP address is then used as the source IP address when sending client traffic to the application. The Gateway again uses NAT to manage the connections to each client.

You can configure dynamic IP addressing when adding a new Gateway or by editing an existing Gateway configuration. To learn more, refer to the Gateway configuration workflows described in this chapter. To read more about how to enable Dynamic IP Addressing in an existing Gateway, see [On-Demand Connection Handling](docId\:odDr4Z3VrHMCgVhHAWv7j).

To use dynamic IP addressing, the *Controller* requires you to define a unique address range for each applicable Gateway, using CIDR notation. For example, `192.0.2.0/24`. You can add only one IP address range per Gateway.

:::hint{type="info" indent="1"}
The allowed subnet range is 8-28. Make sure you select a subnet value that provides the amount of IP addresses necessary to map the expected number of clients connecting to the Gateway. If you exhaust the IP address range, your clients can still connect, although traffic profiling is not possible.
:::

When configuring an address range, make sure this does not overlap with dynamic IP address ranges assigned to other Gateways.

## White-listing Required IP Addresses for your Services

The *Controller* service uses a series of IP addresses and ports to facilitate access to the admin and user web consoles, for user enrollment, and for connections to *nZTA Gateway*s. To ensure network access, make sure the following IP addresses and ports are white-listed (or added to the *allowed list*) in your network firewalls and routing infrastructure.

Select the IP addresses and ports for your corresponding region only:

- **North America**:
  52.186.44.249 (port 443)
  52.188.33.186 (port 443)
- **Europe**:
  51.138.111.17 (port 443)
  20.50.150.82 (port 443)
- **APJ**:
  20.44.238.229 (port 443)
  20.44.237.67 (port 443)
- **UAE**:
  20.233.40.108 (port 443)
  20.233.41.69 (port 443)
- **Canada**:
  20.220.157.85 (port 443)
  20.220.157.158 (port 443)

## Viewing and Monitoring Gateways in the *Controller*

To view, configure, and monitor the health of your deployed Gateways and Gateway Groups, use the **Secure Access > Manage Gateways** section of the *Controller* Tenant Admin portal. The pages in this section remain inactive until you select a Gateway or Gateway Group.

:::hint{type="info" indent="1"}
To view detailed analytics for your deployed Gateways, see also [Monitoring nZTA Gateway Activity](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

To view information for a Gateways or Gateway Group:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateways List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/VDbeDSITk9lMnUC8c2b7l_gatewayslist.png" alt="Viewing All Gateways" position="flex-start" size="80" width="892" height="412" initialPath="img/gatewayslist.png" githubPath="img/gatewayslist.png" darkWidth="892" darkHeight="412" showCaption="false"}

Viewing All Gateways
The health and status of each Gateway instance is denoted by the indicator colors used in the left-most column; *green* for connected/ready or *red* for disconnected/not ready. Unregistered Gateways are denoted by a missing indicator. Additional status information is given under *Connection Status*, with the current software *Version*, and the *Status* of any scheduled tasks.

:::hint{type="info"}
Use the *Search* box at the top enter a text search term to narrow the list to only matching Gateways and Gateway Groups.
:::

3. Select a Gateway or Gateway Group from the list to view the *Gateways Overview* page.
   This page provides further status and configuration details for the selected instance, as well as *Performance*, *Concurrent Sessions*, and *Throughput* usage graphs.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/AGUcxWNWyumn4Ur62hHQY_gatewaysperformance.png" alt="Viewing status, configuration, performance and Usage Graphs in the Gateway Overview page" position="flex-start" size="73" width="727" height="829" initialPath="img/gateways_performance.png" githubPath="img/gateways_performance.png" darkWidth="727" darkHeight="829" showCaption="false"}

Viewing status, configuration, performance and Usage Graphs in the Gateway Overview page
Hover your pointer over a coordinate in each graph to view a tooltip showing detailed metrics for that moment.

For Gateway Groups:

- **Edit Group**: Edit details for the group, such as name, description, and load balancer public IP address.
- **Delete Group Only**: Deletes the Gateway Group record, leaving any contained Gateways intact as standalone (ungrouped) instances.
- **Delete Group and Gateways**: Deletes the Gateway Group and all Gateways contained in the group.

:::hint{type="info"}
This option appears only if the selected Gateway is in a Gateway Group.
:::

- **Add Gateway to this Group**: Add a registered standalone gateway to this group.

For Gateways:

- **Edit Gateway**: Edit details for the Gateway, such as name, description, and public IP address. You can also select or reset the **Use Management Port** property.
- **Replace Gateway**: Allows replacement of the Gateway virtual machine instance associated with this *nZTA Gateway* record. This option regenerates a Gateway definition file based on the existing networking details stored in the Gateway record, but with a new one-time token, to allow deployment and registration of a new virtual machine instance.

:::hint{type="info"}
A Gateway virtual machine deployed to replace an existing Gateway might be launched with a different public IP address on the external network interface. To update the public IP address setting stored for the Gateway in *nZTA*, use the *Gateway Network Settings* section of the **Secure Access > Manage Gateways > Gateway > Configuration** page. For more details, see [Editing Gateway Configuration](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

- **Remove from Group**: Removes this Gateway from a Gateway Group.

:::hint{type="info"}
This option appears only if there are existing Gateways in the Group.
:::

- **Delete Gateway**: Deletes the Gateway record.
- **Upgrade to \<version>**: Upgrades the registered Gateway virtual machine instance to the specified version, see [Upgrading Gateways](docId\:odDr4Z3VrHMCgVhHAWv7j).
- **Rollback to \<version>**: Reverts the registered Gateway virtual machine instance to the specified version, see [Rolling Back a Gateway to a Previous Version](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info"}
The available menu options vary depending on whether the selected Gateway is registered and connected to the *Controller*.
:::

## Viewing Gateway Logs

The *Logs* page enables you to view the Access, Admin, and Event logs for the selected Gateway or Gateway Group.

To view Gateway logs:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Select the required Gateway or Gateway Group.
   The *Gateways Overview* page appears for the selected Gateway/Gateway Group.
4. Select the **Logs** tab.

:::Paragraph{indent="1"}
The *Gateways Logs* page appears.
:::

This page supports the following features:

- Select the log type you want to view in the **Log Type** drop-down list. Choose from:
  - Access Logs
  - Admin Logs
  - Event Logs
- Set a **Time Period** over which the logs are shown. Use the time period selector to set a time period or range for your log results. Click the calendar (highlighted) to show the selector:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/6q9YHNr9VFBqHQt1AjUNs_logtimeselector.png" alt="Setting a log time period" position="flex-start" size="80" width="1128" height="783" initialPath="img/log_time_selector.png" githubPath="img/log_time_selector.png" darkWidth="1128" darkHeight="783" showCaption="false"}

Setting a log time period
Set the time period you want to view using the available ranges at the top-left. Choose from:

:::Paragraph{listStyleType="disc" indent="2"}
Last 60 minutes
:::

:::Paragraph{listStyleType="disc" indent="2"}
Last 24 hours (default)
:::

:::Paragraph{listStyleType="disc" indent="2"}
Last 7 days
:::

:::Paragraph{listStyleType="disc" indent="2"}
Last 1 month
:::

:::Paragraph{listStyleType="disc" indent="2"}
Custom
:::

For **Custom**, set a specific *From* and *To* to denote the start and end of your custom date/time range.

:::hint{type="info"}
The custom date/time calendar controls are enabled for only the **Custom** option. However, the calendar continues to identify the applicable start and end date-time for all predefined time periods.
:::

To apply your changes, click **Apply**. The selected time period is displayed in the filter bar and data on the page updates accordingly.

:::hint{type="info"}
To configure the timezone, see [Setting the Timezone](docId\:qAQLPFWfOt_GYC0QQw64z).
:::

- Logs are refreshed automatically by changing the criteria. To manually refresh the log display, click the following icon:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/of7g0Zx7V_-afc1L71KOc_iconcirculararrow.png" alt="Refreshing the page data" position="flex-start" size="10" width="48" height="48" initialPath="img/icon_circulararrow.png" githubPath="img/icon_circulararrow.png" darkWidth="48" darkHeight="48" showCaption="false"}

Refreshing the page data

- To change the fields displayed for each log line, use the following icon:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/Z3PYoT1mrt5QSTh_p54yB_iconcolumnselector.png" alt="Show or hide log fields" position="flex-start" size="10" width="38" height="40" initialPath="img/icon_columnselector.png" githubPath="img/icon_columnselector.png" darkWidth="38" darkHeight="40" showCaption="false"}

Show or hide log fields
In the field selector, click a field name to toggle between show or hide. A *tick* icon indicates a displayed field. After you are finished, click the context menu icon to close the selector.
Choose from the following fields:

:::Paragraph{listStyleType="disc" indent="2"}
Session identifier
:::

:::Paragraph{listStyleType="disc" indent="2"}
Gateway identifier
:::

:::Paragraph{listStyleType="disc" indent="2"}
Gateway name
:::

:::Paragraph{listStyleType="disc" indent="2"}
Source IP address
:::

:::Paragraph{listStyleType="disc" indent="2"}
User name associated with the event, where applicable
:::

:::Paragraph{listStyleType="disc" indent="2"}
User device identifier, if available
:::

:::Paragraph{listStyleType="disc" indent="2"}
A description of the event
:::

- Use the following icon to trigger the advanced filter selection:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/XXmT8Ibty1t1-s8Otw2kb_iconadvfilter.png" alt="Applying a filter to the log display" position="flex-start" size="10" width="28" height="30" initialPath="img/icon_advfilter.png" githubPath="img/icon_advfilter.png" darkWidth="28" darkHeight="30" showCaption="false"}

Applying a filter to the log display
Use the filter to narrow down the displayed log records to your selected criteria. For example, to show only those log messages with a critical severity level, or pertaining to a specific user, or both. To learn about log filtering, see [Filtering the Logs](docId\:odDr4Z3VrHMCgVhHAWv7j).

- Use the following field to use search term highlighting. Enter a value into the search box, *nZTA* highlights all matches in the log display.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/yO-7wqoxMJIVP_EtwOGcY_logsearchbox.png" alt="Highlighting a search term in the logs" position="flex-start" size="19" width="186" height="54" initialPath="img/log_searchbox.png" githubPath="img/log_searchbox.png" darkWidth="186" darkHeight="54" showCaption="false"}

Highlighting a search term in the logs

- To switch between the default and denser data views, use the following icon:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/Ks8rvcnrlcj6gKxBSK3M5_iconviewdensity.png" alt="Setting the view density" position="flex-start" size="10" width="30" height="28" initialPath="img/icon_viewdensity.png" githubPath="img/icon_viewdensity.png" darkWidth="30" darkHeight="28" showCaption="false"}

Setting the view density

- To apply grouping to the displayed log records, click the **Group By** button.
  This feature applies grouping to a selected field in the log record display, such that records are accumulated and grouped together under each unique data item identified in that field. Through grouping, an admin can quickly view the number of records of a particular type.
  To learn more about record grouping, see [Viewing Detailed Logs for a Chart](docId\:odDr4Z3VrHMCgVhHAWv7j).
- To view a single log entry in a dedicated panel, click the log message text to activate the info-panel view:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/95SD7c7u2DLX6Wx2pzK6m_gwlogsidepanel.png" alt="Viewing a single log entry in the info-panel" position="flex-start" size="32" width="320" height="361" initialPath="img/gwlogsidepanel.png" githubPath="img/gwlogsidepanel.png" darkWidth="320" darkHeight="361" showCaption="false"}

Viewing a single log entry in the info-panel
In the info-panel, use the arrow icons to cycle through the previous and next log entries in turn.

- To view, sort, and filter the log messages in context with all other logs in your deployment, click **VIEW IN LOGS PAGE** (see [Checking the Logs](docId\:odDr4Z3VrHMCgVhHAWv7j)). This page supports the following features:

## Viewing Gateway Tasks

The *Tasks* page enables you to view the current task list for the selected Gateway or Gateway Group. A task is triggered when an action on a Gateway requires an update to be made to the Gateway instance. For example, if you add a Gateway to a Gateway Group, two tasks are created: A Gateway Group change, and a change of certificate on the joining Gateway.

This list is read-only and cannot be modified. To filter the displayed tasks, use the **Task Type** and **Date** controls at the top of the page. Task type contains the primary categories within which each task falls. To view all tasks for the current day, click **Clear**.

To view Gateway tasks:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Select the required Gateway or Gateway Group.
   The *Gateways Overview* page appears for the selected Gateway/Gateway Group.
4. Select the **Tasks** tab.
   The *Gateway Tasks* page appears, showing the task list for the selected Gateway/Gateway Group.
5. (Optional) Select the **Task Type** and **Date** to filter the results.

## Editing Gateway Configuration

The *Configuration* page enables you to edit the selected Gateway or Gateway Group configuration.

To edit a Gateway/Gateway Group:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.

The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.

3. Select the required Gateway or Gateway Group.

The *Gateways Overview* page appears for the selected Gateway/Gateway Group.

4. Select the **Configuration** tab, or click *Edit Gateway/Group* from the context menu at the top-right.
5. The *Gateway Configuration* page appears, showing the current settings for the selected Gateway/Gateway Group:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/pGqpTN1KWlv2P6MN4o0aA_gatewayseditconfig.png" position="flex-start" size="50" width="499" height="832" initialPath="img/gateways_edit_config.png" githubPath="img/gateways_edit_config.png" darkWidth="499" darkHeight="832" showCaption="false"}

Editing a Gateway configuration

On this page, you can edit the following settings:

| **Setting**                                                                               | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Public Address or CNAME                                                                   | The public IP address or CNAME at which clients can externally reach the Gateway instance. To learn more, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| DNS Server                                                                                | Contains settings relating to the Domain Name Service (DNS). Enter your **Primary DNS** and **Secondary DNS** IP addresses, and **DNS Search Domain**. For DNS Search Domain, you can enter multiple comma separated domains, with a maximum restriction of 255 characters.<br />**Note**: Ensure DNS server IP of ZTA Gateway is different from that of ICS Gateway.                                                                                                                                                                                                                                                                                                                                             |
| (vSphere Gateways only) Use Manual Settings                                               | Allows you to manually configure IP address settings for your Gateway **Internal**, **External**, and (optional) **Management** interfaces. Deselect this option to instead use DHCP.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Persistent Tunnel                                                                         | Persistent tunnel support for NZTA enhances the reliability of user sessions by keeping the NZTA tunnel active for the duration of the session idle timeout specified in Session Settings. With this feature enabled, the tunnel remains connected until the session idle timeout is reached.<br />If persistent tunnel support is not enabled, the tunnel remains active only for the period defined in the Tunnel Idle Timeout setting (range: 5–120 minutes; default: 15 minutes) when there is no network traffic. Once the tunnel idle timeout elapses, the NZTA tunnel automatically terminates.<br />Enabling this feature helps ensure uninterrupted connectivity throughout the entire session duration. |
| (vSphere and KVM Gateways only) Use Dynamic Tunnel IP<br />Supported on ICS 25.x release. | Allows you to assign a pool of IP addresses that are dynamically mapped to client sessions, such that user traffic from the Gateway to the application can be identified as originating from a specific client. Enter an IP address and subnet (in the range 8-28) in CIDR notation, then click Add. To learn more, see [Using Dynamic IP Addressing to Profile Client Traffic](docId\:odDr4Z3VrHMCgVhHAWv7j).                                                                                                                                                                                                                                                                                                    |
| Use Server Initiated Connection                                                           | When enabled, allows server-initiated connections for each application. Access is established for each client session and automatically removed when the client disconnects. Dynamic Tunnel IP must be enabled for this feature to work.                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

Update any required Gateway/Gateway Group details, then click **Save Changes**.

## Troubleshooting Gateway Issues

The *Troublshooting* page provides tools that enable you to investigate issues that might be affecting your Gateway or preventing it from operating normally.

:::hint{type="info" indent="1"}
Troubleshooting is available only for fully registered Gateways, and is not supported for Gateway Groups.
:::

To view Gateway troubleshooting tools:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Select the required Gateway or Gateway Group.
   The *Gateways Overview* page appears for the selected Gateway/Gateway Group.
4. Click the **Troubleshooting** tab.

:::Paragraph{indent="1"}
The *Gateway Troubleshooting* page appears, showing troubleshooting tools and options for the selected Gateway/Gateway Group.
:::

The page content is affected by your choice of task in the **Select Troubleshooting Task** drop-down menu:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/8QKClK-dYe2dRBbzwoCy__gatewayststasks.png" position="flex-start" size="34" width="340" height="424" initialPath="img/gateways_ts_tasks.png" githubPath="img/gateways_ts_tasks.png" showCaption="false"}

:::Paragraph{indent="1"}
Viewing the list of available troubleshooting tasks for this Gateway
:::

Choose from:

- **Troubleshooting Overview**: a list of all captured data based on your completed troubleshooting activities.
- **Debug Log**: make a trace recording of a selected process.
- **Node Monitor**: Create a snapshot that includes node monitoring statistics to assist Ivanti Technical Support team in debugging the problem.
- **TCP Dump**: observe and record TCP packets on the network.
- **Commands**: run various common network troubleshooting commands.
- **System Snapshot**: take a system snapshot.

:::hint{type="info" indent="1"}
The availability of specific tasks is limited by Gateway version. Gateway instances based on versions earlier than 21.6 might have access only to a subset of this list.
:::

### Troubleshooting Overview

The *Troubleshooting Overview* contains a list of all captured data based on your completed troubleshooting activities. This shows:

- TCP dumps
- Debug logs
- System snapshots

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/lfz19v6ZTjXa2KwwCg5hC_gatewaystsoview.png" position="flex-start" size="80" width="1365" height="858" initialPath="img/gateways_ts_oview.png" githubPath="img/gateways_ts_oview.png" showCaption="false"}

:::Paragraph{indent="1"}
View a list of data files captured from previous troubleshooting activities
:::

To filter the displayed files to a single type, use the **Select Troubleshooting Type** selector.

### Debug Log

If your users are having difficulties getting access to a website or other resource, use the *Debug Log* task to make a trace recording for one or more selected processes running on the Gateway. This recording can then be uploaded to the *Controller* for offline analysis by *Ivanti* Technical Support.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/3LgZscYhVdc0uJF0sKkZG_gatewaystsdbglog.png" position="flex-start" size="80" width="916" height="463" initialPath="img/gateways_ts_dbglog.png" githubPath="img/gateways_ts_dbglog.png" showCaption="false"}

:::Paragraph{indent="1"}
Recording a trace of a named process
:::

Set the following fields:

- **Process Names**: the names of one or more Gateway processes to trace
- **Event Codes**: the event code, or codes, to observe in the trace. Only events matching these codes are appended to the log.
- **Max Debug Log Size (MB)**: The maximum allowable size, in MB, for the log file. Choose a value between 0-250.
- **Log Detail Level**: The level of verbosity to include in the log. Choose a value between 0-60, from lowest to highest detail.
- **Include System Logs**: Whether or not to include Gateway system logs (event, access, and admin logs) as part of the debug log.

To activate the trace, Select **Enable Debug Logs** and select **Save Settings**. To activate the trace, select **Enable Debug Logs** and then select **Save Settings**.

:::hint{type="info" indent="1"}
Use **Cancel** to return the settings on this page to the state last saved.
:::

After a trace has been captured, select **Upload** to upload the trace log file to the *Controller*.

### Using Node Monitoring

When you enable the node monitor, the ICS Gateway captures certain statistics specific to the nodes on your system. Using the snapshot that results, the support team can identify important data, such as network statistics and CPU usage statistics. Ensure this option is always enabled to help in debugging and monitoring system issues.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/qh_kJevF8RF_208ct8H09_nodemonitor.png" position="flex-start" size="80" width="916" height="310" initialPath="img/node_monitor.png" githubPath="img/node_monitor.png" showCaption="false"}

To enable node monitoring:

1. From the **Troubleshooting Logs and System Snapshots** drop-down menu, select **Node Monitoring**.
2. Select **Enable Node Monitoring** check box.
3. Click **Save Settings**.

### TCP Dump

Use the *TCP Dump* task to inspect packet data passing through the network interfaces on your Gateway:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/SoDGGdSTVLLicnAfIoXBW_gatewayststcpdump.png" position="flex-start" size="80" width="1636" height="486" initialPath="img/gateways_ts_tcpdump.png" githubPath="img/gateways_ts_tcpdump.png" showCaption="false"}

:::Paragraph{indent="1"}
Inspecting TCP data packets
:::

Select the network interfaces you want to inspect:

- Internal or Virtual Port
- External or Virtual Port
- Management Port (where applicable)

Next, set the following optional fields as required:

- **Filter**: A comma-separated filter expression for the TCP dump, based on standard UNIX TCP Dump filters. For more information, see [https://www.freebsd.org/cgi/man.cgi?query=tcpdump](https://www.freebsd.org/cgi/man.cgi?query=tcpdump).
  The following table provides some examples:
- **Options**: Command-line options to specify with the tcpdump. Use a space-separated list in the form "-\<option>". For more information on possible options, see [https://www.freebsd.org/cgi/man.cgi?query=tcpdump](https://www.freebsd.org/cgi/man.cgi?query=tcpdump).

| Expression                                              | Result                                                                                                                                                                                                                    |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tcp port 80                                             | Sniffs packets on TCP port 80                                                                                                                                                                                             |
| port 80                                                 | Sniffs packets on TCP or UDP port 80                                                                                                                                                                                      |
| ip                                                      | Sniffs the IP protocol                                                                                                                                                                                                    |
| tcp                                                     | Sniffs the TCP protocol                                                                                                                                                                                                   |
| dst #.#.#.#                                             | Sniffs the destination IP address specified, where #.#.#.# is a valid IP address                                                                                                                                          |
| src #.#.#.#                                             | Sniffs the source IP address specified, where #.#.#.# is a valid IP address                                                                                                                                               |
| port 80 or port 443                                     | Sniffs on port 80 or port 443                                                                                                                                                                                             |
| src #.#.#.# and dst #.#.#.#                             | Sniffs the source and destination IP addresses or hosts specified, where each #.#.#.# represents a valid IP address                                                                                                       |
| tcp port 80 or port 443 and dst #.#.#.# and src #.#.#.# | This example shows how to specify multiple parameters to create a filter that sniffs on TCP port 80, or on TCP or UDP port 443, and on the destination and source ports, where each #.#.#.# represents a valid IP address |

:::hint{type="info"}
The following options are NOT supported: "-C", "-B", "-D", "-G", "-F", "-V", "-w", "-W", "-r", "-E", "-h", "-I", "-J", "-L", "-m", "-p", "-U", "-z", "-Z", "-O", NULL.
:::

- **Promiscuous Mode**: Enable or disable promiscuous mode for the data capture.

To start the TCP dump, select **Start**. Then, select **Stop** to end the process when required.

The current state is reflected in the *Output* window.

:::hint{type="info" indent="1"}
Use **Cancel** to return the settings on this page to the state last saved.
:::

After a TCP dump has been captured, select **Upload** to upload the log file to the *Controller*.

### Commands

Use the *Commands* task to trigger common networking troubleshooting commands from the Gateway. For example, using the ping command:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/JeFA7aGAtG5z_D0H02RVY_gatewaystscomping.png" position="flex-start" size="80" width="1366" height="442" initialPath="img/gateways_ts_com_ping.png" githubPath="img/gateways_ts_com_ping.png" showCaption="false"}

:::Paragraph{indent="1"}
Running the Ping command
:::

Use **Select Command** to select the command you want to run. Then, specify the parameters you want to use with that command.

To run the selected command with the specified parameters, select **Start**.

The command output is displayed in the *Output* window.

:::hint{type="info" indent="1"}
Use **Cancel** to return the settings on this page to the state last saved.
:::

The following table lists the available commands with parameters applicable in each case:

| Command     | Parameter         | Description                                                                                                             |
| ----------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
| ping        | Target Server     | The target hostname or IP address                                                                                       |
|             | Gateway Interface | The network interface through which to capture the command output: internal, external, or management (where applicable) |
| nslookup    | Query Type        | The *nslookup* query type you want to use: ANY, A, PTR, CNAME, MX, NS, SOA, TXT, UINFO, WKS                             |
|             | Query             | The target IP address or FQDN.                                                                                          |
| ARP         | Target Server     | The target hostname or IP address                                                                                       |
|             | Gateway Interface | The network interface through which to capture the command output: internal, external, or management (where applicable) |
| Trace route | Target Server     | The target hostname or IP address                                                                                       |
|             | Gateway Interface | The network interface through which to capture the command output: internal, external, or management (where applicable) |
| Portprobe   | Target Server     | The target hostname or IP address                                                                                       |
|             | Target Port       | Specify a valid port at the target server in the range 1-65535.                                                         |
|             | Select Protocol   | Choose a protocol to use: TCP or UDP.                                                                                   |
|             | Probe Count       | The number of probes to send. Use a value between 1-100.                                                                |
|             | Probe Timeout     | The timeout value, in seconds, for each probe. Use a value between 1-180.                                               |

### System Snapshot

Use the *System Snapshot* task to trigger a snapshot of your Gateway system performance as it is currently configured:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/urUfrAiZY8ZIhrtO_XU5i_gatewaystssnapshot.png" position="flex-start" size="80" width="913" height="442" initialPath="img/gateways_ts_snapshot.png" githubPath="img/gateways_ts_snapshot.png" showCaption="false"}

:::hint{type="info"}
Taking a system snapshot:

Regular snapshots can result in a performance hit. *Ivanti* recommends not taking snapshots more frequently than once every four hours, unless at the request of a support representative.
:::

Set the following fields:

- **Include System Config**: Choose whether or not to include the system config with the snapshot. This includes information such as host name, cache entries on the gateway, the *Controller* it is connected to, and so on.
- **Include Debug Log**: Choose whether or not to include the current debug log file with the snapshot.

:::hint{type="info" indent="1"}
The current debug log is either created specifically by the admin through the *Debug Log* task, or in the absence of a created log, the default system debug log (generated automatically with Log level 0).
:::

- **Schedule Automatic Snapshots**: Choose whether or not to schedule automatic snapshots. Enter the frequency in hours and minutes, and snapshot end date and time.

To capture the system snapshot, select **Start Snapshot(s)**.

:::hint{type="info" indent="1"}
Use **Cancel** to return the settings on this page to the state last saved.
:::

Completed snapshots are automatically uploaded to the *Troubleshooting Overview* task page and can be downloaded as an encrypted package to send to *Ivanti* Technical Support to troubleshoot system performance.

## Adding Gateway Groups for High Availability

*nZTA* uses **Gateway Groups** to implement *high availability* for your Gateway deployments. Grouping Gateways together ensures the *Controller* can synchronize out policy changes to all Gateways in a group, automatically. To learn more about high availability and how it can benefit your application delivery, see [Using Gateway Groups for High Availability](docId\:l_5jA2G89IAVU6vx7XKKi).

To learn more about the process of adding and registering individual Gateways with the *Controller*, see the following workflows:

- To add a Gateway in VMware vSphere, see [Workflow: Creating a Gateway in VMware vSphere](docId\:odDr4Z3VrHMCgVhHAWv7j).
- To add a Gateway in Amazon Web Services (AWS), see [Workflow: Creating a Gateway in Amazon Web Services](docId\:odDr4Z3VrHMCgVhHAWv7j).
- To add a Gateway in Microsoft Azure, see [Workflow: Creating a Gateway in Microsoft Azure](docId\:odDr4Z3VrHMCgVhHAWv7j).
- To add a Gateway in Google Cloud Platform (GCP), see [Workflow: Creating a Gateway in Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- To add a Gateway in Oracle Cloud Platform (OCP), see [Workflow: Creating a Gateway in Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).

After you have created your Gateways, you can add them to a Gateway Group. A Gateway already added a group cannot be added to a further Gateway Group, and cannot be used by more than one Secure Access Policy.

To add a Gateway Group:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. To add a new Gateway Group, select **Create** from the top-right:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" alt="Add a new Gateway or Gateway Group" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

Add a new Gateway or Gateway Group

4. In the drop-down menu, click **Create ZTA Gateway Group**.
   The **Create ZTA Gateway Group** dialog appears.
5. Enter a **Name** for the Gateway Group.
6. (Optional) Enter a **Description** for the Gateway Group.
7. Enter the **Load Balancer IP addresses or CNAME**. That is, a list of the public IP addresses or CNAMEs of the load balancer's front-end interface that your end users connect to. Enter a value, then select **Add** to add it to the list. Repeat this step for each entry you want to add.
8. (Optional) Select the pre-existing Gateways you want to add to this group. Use the drop-down list to select a Gateway, then select **Add**. Repeat this step for each Gateway you want to add.
9. To add this Gateway Group, click **Create Gateway Group**.

A newly added Gateway Group appears on the *All Gateways* page alongside all *ungrouped* Gateways.

:::hint{type="info" indent="1"}
**For cloud-based Gateways**: If you plan to add multiple deployed Gateways to a Gateway Group for high availability, additional configuration is required for the public IP addresses assigned to your instances. For more details, see [Registering an Amazon Web Services Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j) (for AWS) or [Creating a Gateway using the Azure Template and Image Files](docId\:odDr4Z3VrHMCgVhHAWv7j) (for Azure).
:::

## Creating Gateway Selectors

The Gateway Selector feature provides optimal gateway selection and dynamic failover when deploying multiple geographically located nZTA gateways.

Tenant admins can then manually configure policies that determine to which Gateway an end-user is sent when they access an application. Tenant admins can select Gateways/Gateway Groups and set the priorities to identify to which set of Gateways the Client should connect to access the application.

To add a Gateway Selector:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway Selector**.
   The *Gateways Selector List* page appears.
3. To add a new Gateway Selector, click **Create Gateway Selector**.
   The *Gateway Selector Details* page appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/aSYqd-fe4ec9TDK1oPvs3_gatewayselector.png" alt="Gateway Selector Details" position="flex-start" size="80" width="904" height="634" initialPath="img/gateway_selector.png" githubPath="img/gateway_selector.png" showCaption="false"}

Gateway Selector Details

4. Enter a **Name** for the Gateway Selector.
5. (Optional) Enter a **Description** for the Gateway Selector.
6. In the *Gateway Selector Policy* section, you can choose or add **Recognized Networks**, and choose or add gateway priority.
7. To add a Recognized Network:
   1. Click the **Add Recognized Network** link.

      ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/0_oF72N2wrXnbTTNaLhfs_recognizednetworks.png" alt="Add recognized network" position="flex-start" size="80" width="928" height="688" initialPath="img/recognized_networks.png" githubPath="img/recognized_networks.png" showCaption="false"}

:::Paragraph{indent="2"}
Add recognized network
:::

:::Paragraph{listStyleType="decimal" listStart="2" indent="2"}
In the *Add Rule* dialog, from the **Networks** drop-down list select a tag for the recognized network. To learn about creating tags, see the *Associating Geographical locations to IP Addresses* section in [Using the Insights Menu to Monitor User Activity and Service Usage](docId:9pR-GUBlUQ_Ko0B6yMLkA).
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
In the Gateway Priority section, select the gateways/gateway groups from the **Available Gateways / Gateway Groups** list.
:::

:::Paragraph{listStyleType="decimal" listStart="4" indent="2"}
Use the Up/Down arrows to change the priorities.
:::

:::Paragraph{listStyleType="decimal" listStart="5" indent="2"}
Click **Add**.
A newly added Recognized Network appears in the Gateway Selection Policy section.
:::

8. To add Gateway Priority:
   1. Click the **Add Gateway Priority** link.
      The Gateway Priority window appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/16oyQfV0_G0ETe_CqISnH_gatewaypriority.png" alt="Set Gateway priority" position="flex-start" size="80" width="931" height="495" initialPath="img/gateway_priority.png" githubPath="img/gateway_priority.png" showCaption="false" indent="1"}

:::Paragraph{indent="2"}

:::

:::Paragraph{indent="1"}
Set Gateway priority
:::

:::Paragraph{listStyleType="decimal" indent="2"}
Select the gateways/gateway groups from the **Available Gateways / Gateway Groups** list.
:::

:::Paragraph{listStyleType="decimal" listStart="2" indent="2"}
Use the Up/Down arrows to change the priorities.
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
Click **Add**.
A newly added Gateway Priority appears in the Gateway Selection Policy section.
:::

9. In the Gateway Selector Details page, click **Create**.
   A newly added Gateway Selector appears in the Gateway Selectors page.
10. To modify a Gateway Selector, click the adjacent three dots, then select **Edit**. In the Gateway Selector Details page, make the necessary changes and click **Update**.
11. To remove a Gateway Selector, click the adjacent three dots, then select **Delete**, and then confirm by clicking **Delete**.

## Workflow: Creating a Gateway in VMware vSphere

Download the ZTA Gateway image and template files from the Software Download Portal [https://portal.ivanti.com/customer/product-downloads](https://portal.ivanti.com/customer/product-downloads).

The process of registering a vSphere Gateway with *nZTA* involves two main procedures, to be completed in sequence:

- Create the Gateway record in the *Controller*.
- Create the Gateway virtual machine instance in VMware vSphere.

After these steps have been completed successfully, the *Controller* and Gateway establish communication with each other.

Before you start, make sure that you have the following information and files for the Gateway:

- An identifying name for the Gateway
- The public IP address for the Gateway. This is the IP address at which clients can externally reach the Gateway instance.
- The Gateway geographic location
- (Optional) The name of the *Gateway Group* to which you want to add this new Gateway record. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Credentials for the vSphere Console.

:::hint{type="info"}
These credentials must include sufficient permissions to create a VM from a template image.
:::

- By default, *nZTA* derives Gateway DNS and network interface settings through DHCP (provided this is configured in your vSphere environment). If, instead, you want to manually specify your Gateway DNS and network interface settings, make sure you have the following additional information:
  The internal/private subnet IP address, subnet mask, and network gateway IP address.
- The primary (and optional secondary) DNS server IP address, and search domain.
- The external interface IP address, subnet mask, and network gateway IP address.
- (Optional) The management interface IP address, subnet mask, and network gateway IP address.

:::hint{type="info"}
If you choose to deploy a vSphere-based Gateway instance with DHCP configuration, DNS server settings are not configurable through the *nZTA* Tenant Admin UI. In this scenario, make sure you have at least a primary DNS server configured and available through DHCP (a secondary DNS server is optional). Make sure also that a DNS search domain is properly configured.
:::

### Adding a VMware vSphere Gateway

To register a Gateway on your *Controller*, use the **Gateway Details** dialog.

To begin, log into the *Controller* Tenant Admin Portal using the credentials provided in your welcome email. Two outcomes are possible:

- On unconfigured *nZTA* systems, the *Secure Access Setup* Onboarding wizard appears (see [Working with the Onboarding Wizard](docId\:odDr4Z3VrHMCgVhHAWv7j)). In this case, click **Add Gateway**.
- On configured *nZTA* systems, the *Network Overview* page appears. In this case:
  1. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
     The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
  2. To add a new Gateway, select **Create** from the top-right:

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" alt="Add a new Gateway or Gateway Group" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

:::Paragraph{indent="2"}
Add a new Gateway or Gateway Group
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
In the drop-down menu, click **Create ZTA Gateway**.
:::

In both cases, the **Gateway Details** dialog appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/4V0257UFi01nHjV4BJbpb_gatewaynetworkconfigvsphere.png" position="flex-start" size="80" width="910" height="936" initialPath="img/gateway_network_config_vsphere.png" githubPath="img/gateway_network_config_vsphere.png" showCaption="false"}

:::Paragraph{indent="1"}
Gateway Details
:::

Enter the following details:

1. Enter a **Name** for the Gateway.
2. Enter one or more **Public Address or CNAME** (Public IP address or CNAME) for the Gateway. Select **Add** to add each entry to the list. To learn more about this setting, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).
3. Select the geographic location details for the Gateway.
4. For **Gateway Platform**, select "VMware vSphere".
5. (Optional) To enter your vSphere Gateway instance DNS and network interface settings manually, select **Use Manual Settings**. To instead allow *nZTA* to use DHCP-derived settings for DNS and network interfaces, leave **Use Manual Settings** un-selected. To learn more about these settings, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).
6. (Optional) Select the **Use Management Port** check box to use management network ports for *nZTA* traffic rather than internal ports.

:::hint{type="info"}
When the management port is enabled, Gateway will use management interface to communicate with *Controller* and NTP Server.
The Gateway will still use the internal port for DNS resolution and NTP server name resolution.
If the internal DNS cannot resolve the *Controller* domain, the internal interface will require internet access.
:::

1. (Optional) Select the **Use Dynamic Tunnel IP** check box to configure a pool of IP addresses that are dynamically mapped to client sessions with this Gateway, such that user traffic from the Gateway to an application can be identified as originating from a specific client. To learn more, see [Using Dynamic IP Addressing to Profile Client Traffic](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::Paragraph{indent="1"}
The *Custom IP Pool* dialog appears:
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/W1mUCTYH3fUTT8HpJxKOR_gatewaynetworkconfigcustomippool.png" alt="gateway_network_config_cistomippool" position="flex-start" size="49" width="492" height="339" initialPath="img/gateway_network_config_customippool.png" githubPath="img/gateway_network_config_customippool.png" showCaption="false" indent="1"}

:::Paragraph{indent="1"}
Gateway Details - Custom IP Pool settings
:::

:::hint{type="info" indent="1"}
Dynamic Tunnel IP addresses are not supported in Gateway Groups.
:::

:::Paragraph{indent="1"}
Use the **Assignable Custom IPv4 Address** field to enter an IP address and subnet (in the range 8-28) in CIDR notation, then click **Add**. Repeat this step for each address/subnet you want to use.
:::

(Optional) Select the **Use proxy server for communication** check box to enable nZTA to *Controller* communication via proxy server. Proxy is supported on both internal and management interfaces of the Gateway. Once enabled, enter host name and port. Optionally, if your proxy server requires further authentication, enter a username and password to log in to the proxy server.

:::hint{type="info"}
Admin can configure proxy for existing Gateway after upgrading it to 22.4R3 version or later.
:::

9. If you elected to use manual settings, the following panel appears:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/fNDU1NxFk0gTgGDzusfDk_gatewaynetworkconfigvspheremanual.png" position="flex-start" size="63" width="634" height="378" initialPath="img/gateway_network_config_vsphere_manual.png" githubPath="img/gateway_network_config_vsphere_manual.png" showCaption="false"}


Enter the following details:

:::Paragraph{indent="1"}
Gateway Network Configuration - manual settings
:::

:::Paragraph{listStyleType="decimal" indent="2"}
Specify the internal **IP Address** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="2" indent="2"}
Specify the internal **Subnet Mask** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
Specify the internal network gateway IP address as the **Gateway** setting.
:::

:::Paragraph{listStyleType="decimal" listStart="4" indent="2"}
Specify the **MTU&#x20;**&#x73;ize between 576 and 1500.
:::

:::Paragraph{listStyleType="decimal" listStart="5" indent="2"}
Enter the **Primary DNS** IP address for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="6" indent="2"}
(Optional) Enter the **Secondary DNS** IP address for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="7" indent="2"}
Enter the **DNS Search Domain** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="8" indent="2"}
Specify the external **IP Address** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="9" indent="2"}
Specify the external **Subnet Mask** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="10" indent="2"}
Specify the external network gateway IP address as the **Gateway** setting.
:::

:::Paragraph{listStyleType="decimal" listStart="11" indent="2"}
Specify the **MTU&#x20;**&#x73;ize between 576 and 1500.
:::

:::Paragraph{listStyleType="decimal" listStart="12" indent="2"}
Specify the management **IP Address** for the Gateway.
:::

:::hint{type="info" indent="3"}
Management network settings are optional, unless the **Use Management Port** check box is selected.
:::

:::Paragraph{listStyleType="decimal" listStart="13" indent="2"}
Specify the management **Subnet Mask** for the Gateway.
:::

:::Paragraph{listStyleType="decimal" listStart="14" indent="2"}
Specify the management network gateway IP address as the **Gateway** setting.
:::

:::Paragraph{listStyleType="decimal" listStart="15" indent="2"}
Specify the **MTU** size between 576 and 1500.
:::

10. (Optional) Select a **Gateway Group** to which the new Gateway is to be added. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
11. Enable **Persistent Tunnel** to keep the tunnel active till the time set for user session idle timeout. Range is 5-120 minutes, and default is 15 minutes.
12. **Configure MTU for the gateway**: Configurable MTU size allows admin to modify the default setting of nZTA gateways wherever it is needed. The value allowed is in the range of 576 to 1500 (IPv4).
13. To add a Gateway definition based on the settings you specified in this dialog, select **Create Configuration**.

After you complete this process, an unregistered Gateway record is created on the *Controller*. You can view this Gateway record on the **Manage Gateways > Gateways List** page.

Next, create the Gateway virtual machine instance in VMware vSphere and allow it to register with the *Controller*. This links the Gateway record on the *Controller* with the actual Gateway virtual machine, see [Registering a VMware vSphere Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Registering a VMware vSphere Gateway

This section describes the steps necessary to create the Gateway virtual machine in the vSphere console. To learn more about the operations included here, refer to VMware’s own documentation for full details.

:::hint{type="info"}
For reference, the recommended minimum requirements for a Gateway virtual machine instance in vSphere are:

- 4 vCPU's and 8 GB memory, or
- 8 vCPU's and 32 GB memory


:::

After you have created an unregistered Gateway record on the **Gateways** page, you must create the Gateway instance on the *VMware vSphere Console*. This process facilitates communication between the *Controller* and the Gateway instance.

Before you start, make sure you have obtained the Gateway definition file from the *Controller*. This definition file includes the settings necessary to configure the new Gateway virtual machine with the identity and location of the *Controller*, and is used during the registration process described later in this section.

To download the Gateway definition file:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
   The *Gateways List* page appears.
3. Locate and select your unregistered vSphere Gateway record from the list of available Gateways.
4. Click the **Download** icon and select **Download gateway init config** to obtain a copy of the Gateway definition file.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/exSQ9FwNt-6VmHVVr5SUU_icondownloadposition.png" alt="The Download Icon" position="flex-start" size="25" width="253" height="112" initialPath="img/icon_download_position.png" githubPath="img/icon_download_position.png" showCaption="false"}

The Download Icon

5. Save the downloaded text file to a location accessible from the vSphere Console.

:::hint{type="info"}
The Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.
:::

1. (Optional) If you have not yet downloaded the latest version of your Gateway VM file, click the **Download** icon and select **Download gateway VM image**. Save the archive file and unpack to a local workstation. Make sure the resulting file set is accessible from the vSphere Console.

To register a Gateway:

1. Access the vSphere console, either from a client or a web browser.
2. In the vSphere console, start the *Deploy OVF Template* wizard to create a new virtual machine based on the *nZTA* vSphere Gateway template.
3. In the wizard:
   - Choose to deploy from a local file.
   - Locate and upload your OVF/VMDK template files.
   - Provide an identifying name and location for the new Gateway virtual machine.
   - Choose any required compute resource.
   - Choose the required storage settings.
   - Customize the *vApp properties* of your virtual machine and, in the **VA IVE Configuration** parameter, paste the raw text of your Gateway definition file. To obtain the Gateway definition file, see the process described earlier in this section.
   - Confirm all settings.
   - Finish the wizard to create the Gateway VM.
4. Locate the new Gateway VM in the hosts and clusters.
5. Start the Gateway VM by powering it on.
6. Wait until the power-up is complete.
7. Return to the **Gateways List** page on the *Controller*.
8. Locate the new Gateway record in the list and confirm that its status has updated to *Connected*.
9. (Optional) After you have registered a Gateway, you can configure it (or the Gateway Group to which it belongs) as the default Gateway if required. A default Gateway handles all requests from applications that are not referenced by any secure access policy. See [Configuring a Default Gateway for Application Discovery](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::Paragraph{indent="1"}
After this process completes, you can move to the next stage of *nZTA* configuration, which is [Working with User Authentication](docId\:NJOnS_n7fVj7YPwBgqwRy).
:::

:::Paragraph{indent="1"}
In case of registration failure due to Gateway configuration mistakes in firewall rules, DNS, etc., you can re-register the gateway. It does not require re-deploying of Gateway. For details see [Re-registering an Amazon Web Services Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j)
:::

### Re-registering a VMware vSphere Gateway

Re-registration of Gateway includes the following capabilities:

- Gateway triggers re-registration on every launch of the gateway if the registration with controller fails or any update is made to the configuration parameters.
- The "View registration error report" option provides the reason for failure and solution to rectify it.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/aHKv9R2pI2MYdrm4-oNuy_registeroption.png" size="36" isUploading="false" initialPath="img/register_option.png" githubPath="img/register_option.png" width="355" height="168" showCaption="false"}

- On registration failures, admin is provided with the "Register" option to trigger the registration manually along with the existing debugging options such as networking tools, reboot, etc. This option can be used after rectifying any external issues such as network reach issue or Firewall rules following controller traffic from Gateway.
- To rectify registration failure  due to the config error, first update the config settings in the Controller and download the config file. Then shut down Gateway VM, update downloaded config, and then boot Gateway.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/ySrLUgxOHyMJzEzmAPxvE_vsphereconfig.png" size="69" isUploading="false" initialPath="img/vsphere_config.png" githubPath="img/vsphere_config.png" width="694" height="235" showCaption="false"}

Sample screen: Update Config Value

:::hint{type="info"}
An option is provided to regenerate and download the gateway init config from the controller admin interface.
:::

## Workflow: Creating a Gateway in Amazon Web Services

Download the ZTA Gateway image and template files from the Software Download Portal [https://portal.ivanti.com/customer/product-downloads](https://portal.ivanti.com/customer/product-downloads).

The process of registering an AWS Gateway with *nZTA* involves two main procedures, to be completed in sequence:

- Create the Gateway record in the *Controller*.
- Create the Gateway virtual machine instance in Amazon Web Services (AWS).

After these steps have been completed successfully, the *Controller* and Gateway establish communication with each other.

Before you start, make sure that you have the following information and files for the Gateway:

- An identifying name for the Gateway
- The public IP address for the Gateway. This is the IP address at which clients can externally reach the Gateway instance, typically an elastic IP address provided by AWS.
- The Gateway geographic location.
- (Optional) The name of the *Gateway Group* to which you want to add this new Gateway record. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
- The primary (and optional secondary) DNS server IP address, and search domain.
- The Gateway AMI identifier. *nZTA* gateway AMIs are available in all AWS regions (except China).
  In most cases, after the Gateway image becomes available in the AWS Marketplace, the AMI applicable to your region is automatically selected. Alternatively, to perform a manual search, follow these steps:
  1. Log into the AWS console.
  2. Navigate to **EC2 > Images > AMIs**.
  3. Select "Public Images".
  4. Search for the image corresponding to your selected hypervisor:
     - Nitro: "ISA-V-NITRO-ZTA-22.7R2.2-607.1.img"
  5. Make a note of the corresponding AMI ID.
- Credentials for the AWS Management Console.

:::hint{type="info"}
These credentials must include sufficient permissions to create a stack.
:::

- The SSH key pair file that you are using with the AWS Management Console.

### Adding an Amazon Web Services Gateway

To registering a Gateway on your *Controller*, use the **Gateway Details** dialog.

To begin, log into the *Controller* Tenant Admin Portal using the credentials provided in your welcome email. Two outcomes are possible:

- On unconfigured *nZTA* systems, the *Secure Access Setup* Onboarding wizard appears (see [Working with the Onboarding Wizard](docId\:odDr4Z3VrHMCgVhHAWv7j)). In this case, click **Add Gateway**.
- On configured *nZTA* systems, the *Network Overview* page appears. In this case:
  1. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
     The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
  2. To add a new Gateway, select **Create** from the top-right:

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" alt="Add a new Gateway or Gateway Group" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

:::Paragraph{indent="2"}
Add a new Gateway or Gateway Group
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
In the drop-down menu, click **Create ZTA Gateway**.
:::

In both cases, the **Gateway Details** dialog appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/ujGtqwlvd23h3I5A4GWFA_gatewaynetworkconfigaws.png" position="flex-start" size="80" width="903" height="934" initialPath="img/gateway_network_config_aws.png" githubPath="img/gateway_network_config_aws.png" showCaption="false"}

:::Paragraph{indent="1"}
Gateway Details
:::

Enter the following details:

1. Enter a **Name** for the Gateway.
2. Enter one or more **Public Address or CNAME** (Public IP address or CNAME) for the Gateway. Select **Add** to add each entry to the list. To learn more about this setting, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).
3. Select the geographic location details for the Gateway.
4. For **Gateway Platform**, select "Amazon Web Services".
5. Enter the Primary DNS IP address for the Gateway.
6. (Optional) Enter the Secondary DNS IP address for the Gateway.
7. Enter the DNS Search Domain for the Gateway.

:::hint{type="info"}
Make sure the specified DNS service can resolve the IP address of your *Controller*. Issues here can cause registration of the Gateway with the *Controller* to fail.
:::

1. (Optional) Select the **Use Management Port** check box to use management network ports for *nZTA* traffic rather than internal ports.

:::hint{type="info"}
When the management port is enabled, Gateway will use management interface to communicate with *Controller* and NTP Server.
The Gateway will still use the internal port for DNS resolution and NTP server name resolution.
If the internal DNS cannot resolve the *Controller* domain, the internal interface will require internet access.
:::

1. (Optional) Select the **Use proxy server for communication** check box to enable nZTA to *Controller* communication via proxy server. Proxy is supported on both internal and management interfaces of the Gateway. Once enabled, enter host name and port. Optionally, if your proxy server requires further authentication, enter a username and password to log in to the proxy server.

:::hint{type="info"}
Admin can configure proxy for existing Gateway after upgrading it to 22.4R3 version or later.
:::

1. (Optional) Select a **Gateway Group** to which the new Gateway is to be added. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
2. Enable **Persistent Tunnel** to keep the tunnel active till the time set for user session idle timeout. Range is 5-120 minutes, and default is 15 minutes.
3. **Configure MTU for the gateway**: Configurable MTU size allows admin to modify the default setting of nZTA gateways wherever it is needed. The value allowed is in the range of 576 to 1500 (IPv4).

To add a Gateway definition based on the settings you specified in this dialog, select **Create Configuration**.

After you complete the first part of this workflow, an unregistered Gateway record is created on the *Controller*. This Gateway record can be seen on the **Manage Gateways > Gateways List** page.

Next, create the Gateway virtual machine instance on AWS and allow it to register with the *Controller*. This links the Gateway record on the *Controller* with the actual Gateway virtual machine, see [Registering an Amazon Web Services Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Registering an Amazon Web Services Gateway

This section describes the steps necessary to create the Gateway virtual machine in the AWS management console. To learn more about the operations included here, refer to Amazon’s own documentation for full details.

After you have created an unregistered Gateway record on the **Gateways** page, you must create the Gateway instance on the *AWS Management Console*. This process facilitates communication between the *Controller* and the Gateway instance.

Before you start, make sure you have obtained the Gateway definition file from the *Controller*. This definition file includes the settings necessary to configure the new Gateway virtual machine with the identity and location of the *Controller*.

To download the Gateway definition file:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
   The *Gateways List* page appears.
3. Locate and select your unregistered AWS Gateway record from the list of available Gateways.
4. Click the **Download** icon to obtain a copy of the Gateway definition file.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/exSQ9FwNt-6VmHVVr5SUU_icondownloadposition.png" alt="The Download Icon" position="flex-start" size="25" width="253" height="112" initialPath="img/icon_download_position.png" githubPath="img/icon_download_position.png" showCaption="false"}

The Download Icon

5. Save the downloaded text file to a location accessible from the AWS Management Console.

:::hint{type="info"}
The Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.
:::

1. (Optional) If you have not yet downloaded the latest version of your Gateway VM file, click the **Download** icon and select **Download gateway VM image**. Save the archive file and unpack to a local workstation. Make sure the resulting file set is accessible from the AWS Management Console.

To register a Gateway:

1. Access the AWS Management Console and log in using your credentials.
2. In the AWS **Services** menu, select **CloudFormation**.
   The **CloudFormation** home page appears.
3. Click **Create Stack** and then, from the sub-menu, select **With new resources (standard)**.
   The **Specify template** step of the **Create Stack** wizard appears.
4. Under **Prerequisite - prepare template**, select the **Template is ready** option.
5. Under **Specify Template**, select the **Upload a template file** template source option.
6. Under **Upload a template file**, click **Choose File** and select the Gateway template file that you downloaded at the start of this process.
   The file uploads, and the AWS S3 URL for the uploaded template file appears automatically.
7. Click **Next**.
   The **Specify stack details** step of the **Create Stack** wizard appears. This page displays the details and parameters required by the Gateway template.
8. Enter a **Stack name**.
9. Specify the parameters as appropriate for your deployment:
   - If you are deploying the Gateway instance into a *new VPC*, you can accept the default values used for all parameters.
   - If you are deploying the instance into an *existing VPC*, you must manually specify the details of your existing VPC into the parameters on the page. For more information, contact *Ivanti* Technical Support.
10. Under **ZTAGateway Configuration**, identify the Gateway AMI using its **ZTAGateway AMI ID**. Choose the designated AMI for the region in which you are deploying the Gateway instance.
11. For **Instance Type**, select the instance type that fits your hypervisor choice (Xen or Nitro) and minimum requirements, based on the following recommended types:

:::hint{type="info"}
For reference, the recommended minimum requirements for a Gateway virtual machine instance in AWS are:
For Nitro hypervisor-based instances, use M5 types:
:::

:::Paragraph{listStyleType="disc" indent="2"}
m5.large (2 vCPU, 8 GB Memory) (2NIC min)
:::

:::Paragraph{listStyleType="disc" indent="2"}
m5.xlarge (4 vCPU, 16 GB Memory) (3NIC min)
:::

:::Paragraph{listStyleType="disc" indent="2"}
m5.2xlarge (8 vCPU, 32 GB Memory)
:::

:::Paragraph{listStyleType="disc" indent="2"}
m5.4xlarge (16 vCPU, 64 GB Memory)
:::

1. For **ZTAGateway Config Data**, paste in the raw text of your Gateway definition file. To obtain the Gateway definition file, see the process described earlier in this section.
2. For **SSH Key Name**, specify your existing SSH key pair name.
3. For **Load Balancer Configuration**, If you plan to deploy multiple Gateways inside a Gateway Group, select "Yes" to deploy a new internet-facing network load balancer instance alongside the Gateway. Select "No" to launch only this Gateway instance.

:::hint{type="info"}
This option is applicable only for new VPC templates.
:::

If you elect to launch a load balancer, the following pre-configuration is applied:

:::Paragraph{listStyleType="disc" indent="2"}
An Elastic IP address is assigned to the load balancer.
:::

:::Paragraph{listStyleType="disc" indent="2"}
A TCP listener is configured on port 443.
:::

:::Paragraph{listStyleType="disc" indent="2"}
An IP-based Target Group is created and the private IP address of the deployed Gateway's external network interface is added as a target.
:::

:::Paragraph{listStyleType="disc" indent="2"}
A health-check is configured on TCP port 443.
:::

:::Paragraph{listStyleType="disc" indent="2"}
Stickiness is enabled on the Target Group.
:::

After you have deployed the Gateway and Load Balancer, you must return to the Tenant Admin Portal on the *Controller* and update the Gateway Group **Load Balancer IP ADDRESS** setting to be the Load Balancer's public IP address.
If you want to configure the Load Balancer to balance across further Gateway instances from the Gateway Group, you must deploy each subsequent Gateway into an existing VPC and then update the Load Balancer Target Group.

:::hint{type="info"}
With new VPC templates, a NAT gateway is deployed for routing outbound Internet traffic from the Gateway's internal network interface in order for the Gateway to be able to reach the *Controller*.
:::

:::hint{type="info"}
Public IP addresses are not automatically assigned to any of your Gateway's network interfaces. If you are deploying a Gateway into an existing VPC, in order for the Gateway to be able to reach the *Controller* from it's internal network interface, make sure you allow outbound Internet traffic from the Private Subnet for the deployed Gateway.
:::

To learn more about high availability and Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j) and [Using Gateway Groups for High Availability](docId\:l_5jA2G89IAVU6vx7XKKi).

15. Click **Next**.
    The **Configure stack options** step of the **Create Stack** wizard appears. All properties that were specified either in the template or in earlier steps are populated automatically.
    No changes or new inputs are required.
16. Click **Next**.
17. The **Review** step of the **Create Stack** wizard appears.
18. Confirm all displayed details.
19. Click **Create stack**.
    The **Stacks** page appears. The new stack is listed using the **Stack name** you specified during the wizard. The new stack has a status of *CREATE\_IN\_PROGRESS*.
20. Wait for the status of the new stack to reach *CREATE\_COMPLETE*.
21. *(This step is required only if you have not deployed your Gateway with a Load Balancer or NAT at the front-end)* Elastic IP addresses are not automatically assigned to any of the Gateway's network interfaces. Therefore, before you can access the new Gateway instance from the *Controller*, you must associate a new Public IP address with the external interface of the Gateway. Then, return to the *Controller* Tenant Admin Portal and update the Gateway *Public IP Address* setting to match this address.
22. In the Tenant Admin Portal **Secure Access > Gateways > Gateways List** page, make sure the new Gateway has a confirmed status of *Connected*.

:::hint{type="info"}
You can directly access your AWS instance over SSH using *AWS EC2 Instance Connect*. To configure *AWS EC2 Instance Connect*, refer to the *Amazon Web Service Documentation*. You can then connect to the instance directly as a serial console using SSH from inside the *AWS Management Console*, refer to the *Amazon Web Service Documentation*.
:::

1. (Optional) After you have registered a Gateway, you can configure it (or the Gateway Group to which it belongs) as the default Gateway if required. A default Gateway handles all requests from applications that are not referenced by any secure access policy. See [Configuring a Default Gateway for Application Discovery](docId\:odDr4Z3VrHMCgVhHAWv7j).

After this process completes, you can move to the next stage of *nZTA* configuration, which is [Working with User Authentication](docId\:NJOnS_n7fVj7YPwBgqwRy).

In case of registration failure due to Gateway configuration mistakes in firewall rules, DNS, etc., you can re-register the gateway. It does not require re-deploying of Gateway. For details see [Re-registering an Amazon Web Services Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Re-registering an Amazon Web Services Gateway

Re-registration of Gateway includes the following capabilities:

- Gateway triggers re-registration on every launch of the gateway if the registration with controller fails or any update is made to the configuration parameters.
- The "View registration error report" option provides the reason for failure and solution to rectify it.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/aHKv9R2pI2MYdrm4-oNuy_registeroption.png" position="flex-start" size="36" width="355" height="168" initialPath="img/register_option.png" githubPath="img/register_option.png" showCaption="false"}

- On registration failures, admin is provided with the "Register" option to trigger the registration manually along with the existing debugging options such as networking tools, reboot, etc. This option can be used after rectifying any external issues such as network reach issue or Firewall rules following controller traffic from Gateway.
- To rectify registration failure  due to the config error, first update the config settings in the Controller and download the config file. Then shut down Gateway VM, update downloaded config, and then boot Gateway.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/zfbgE_XihF5o_UD0Bn-qM_awsconfig.png" position="flex-start" size="80" width="843" height="697" initialPath="img/aws_config.png" githubPath="img/aws_config.png" showCaption="false"}

Sample screen: Update Config Value

:::hint{type="info"}
An option is provided to regenerate and download the gateway init config from the controller admin interface.
:::

## Workflow: Creating a Gateway in Microsoft Azure

Download the ZTA Gateway image and template files from the Software Download Portal [https://portal.ivanti.com/customer/product-downloads](https://portal.ivanti.com/customer/product-downloads).

The process of registering an Azure Gateway with *nZTA* involves two main procedures, to be completed in sequence:

1. Create a Gateway record in the *Controller*.
2. Create a Gateway virtual machine instance in Azure and register it with the *Controller*.
   Azure offers two methods for launching a Gateway virtual machine instance:
   - Through the Azure Marketplace
   - Using the provided template and image files

Before you start, make sure that you have the following information and files for the Gateway:

- An identifying name for the Gateway
- The Gateway geographic location.
- (Optional) The name of the *Gateway Group* to which you want to add this new Gateway record. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
- The primary (and optional secondary) DNS server IP address, and search domain.
- The SSH public key that you are using with the Azure Portal or Management Console.

:::hint{type="info"}
SSH keys can be generated using sshkeygen on Linux and MacOS, or PuTTyGen on Windows. For further details about generating SSH key pairs, see:
:::

:::Paragraph{listStyleType="disc" indent="2"}
For Windows: [https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ssh-from-windows](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ssh-from-windows)
:::

:::Paragraph{listStyleType="disc" indent="2"}
For MacOS and Linux: [https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys)
:::

- Credentials for the Azure Portal or Management Console.

:::hint{type="info"}
These credentials must include sufficient permissions to create a virtual machine.
:::

Additionally, if you are deploying a Gateway instance directly from the template and image files (as opposed to using the Azure Marketplace):

- A public IP address or CNAME for the Gateway. This is the IP address or CNAME at which client devices can externally reach the Gateway instance.

:::hint{type="info"}
CNAMEs are not currently supported on *Ivanti Secure Access Client* Linux variants.
:::

### Adding an Azure Gateway

To registering a Gateway on your *Controller*, use the **Gateway Details** dialog.

To begin, log into the *Controller* Tenant Admin Portal using the credentials provided in your welcome email. Two outcomes are possible:

- On unconfigured *nZTA* systems, the *Secure Access Setup* Onboarding wizard appears (see [Working with the Onboarding Wizard](docId\:odDr4Z3VrHMCgVhHAWv7j)). In this case, click **Add Gateway**.
- On configured *nZTA* systems, the *Network Overview* page appears. In this case:
  1. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways**.
     The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
  2. To add a new Gateway, select **Create** from the top-right:

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" alt="Add a new Gateway or Gateway Group" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

:::Paragraph{indent="2"}
Add a new Gateway or Gateway Group
:::

:::Paragraph{listStyleType="decimal" listStart="3" indent="2"}
In the drop-down menu, click **Create ZTA Gateway**.
:::

In both cases, the **Gateway Details** dialog appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/0Gkz3XZSv5lwfLQHuXbST_gatewaynetworkconfigazure.png" position="flex-start" size="80" width="903" height="936" initialPath="img/gateway_network_config_azure.png" githubPath="img/gateway_network_config_azure.png" showCaption="false"}

:::Paragraph{indent="1"}
Gateway Details
:::

Enter the following details:

1. Enter a **Name** for the Gateway.
2. Enter one or more **Public Address or CNAME** (Public IP address or CNAME) for the Gateway. Select **Add** to add each entry to the list. To learn more about this setting, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info"}
For Azure Marketplace deployments, a public IP address or CNAME is typically allocated at deployment time through the Azure Portal. Therefore, if you do not yet know the expected address/CNAME, enter a dummy value in this field now and update the setting after you have deployed and registered the Gateway instance. For more details on this process, see [Creating a Gateway through Azure Marketplace](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

1. Select the geographic location details for the Gateway.
2. For **Gateway Platform**, select "Azure".
3. Enter the Primary DNS IP address for the Gateway.
4. (Optional) Enter the Secondary DNS IP address for the Gateway.
5. Enter the DNS Search Domain for the Gateway.

:::hint{type="info"}
Make sure the specified DNS service can resolve the IP address of your *Controller*. Issues here can cause registration of the Gateway with the *Controller* to fail.
:::

1. (Optional) Select the **Use Management Port** check box to use management network ports for *nZTA* traffic rather than internal ports.

:::hint{type="info"}
When the management port is enabled, Gateway will use management interface to communicate with *Controller* and NTP Server.
The Gateway will still use the internal port for DNS resolution and NTP server name resolution.
If the internal DNS cannot resolve the *Controller* domain, the internal interface will require internet access.
:::

1. (Optional) Select the **Use proxy server for communication** check box to enable nZTA to *Controller* communication via proxy server. Proxy is supported on both internal and management interfaces of the Gateway. Once enabled, enter host name and port. Optionally, if your proxy server requires further authentication, enter a username and password to log in to the proxy server.

:::hint{type="info"}
Admin can configure proxy for existing Gateway after upgrading it to 22.4R3 version or later.
:::

1. (Optional) Select a Gateway **Group** to which the new Gateway is to be added. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
2. Enable **Persistent Tunnel** to keep the tunnel active till the time set for user session idle timeout. Range is 5-120 minutes, and default is 15 minutes.
3. **Configure MTU for the gateway**: Configurable MTU size allows admin to modify the default setting of nZTA gateways wherever it is needed. The value allowed is in the range of 576 to 1500 (IPv4).

To add a Gateway definition based on the settings you specified in this dialog, select **Create Configuration**.

After you complete the first part of this workflow, an unregistered Gateway record is created on the *Controller*. This Gateway record can be seen on the **Manage Gateways > Gateways List** page.

Next, create the Gateway virtual machine instance on Azure and allow it to register with the *Controller*. This links the Gateway record on the *Controller* with the actual Gateway virtual machine. Choose to register the Gateway instance through the Azure Marketplace (see [Creating a Gateway through Azure Marketplace](docId\:odDr4Z3VrHMCgVhHAWv7j).) or through the Azure management console (see [Creating a Gateway using the Azure Template and Image Files](docId\:odDr4Z3VrHMCgVhHAWv7j)).

### Creating a Gateway through Azure Marketplace

This section describes the steps necessary to create the Gateway virtual machine in Microsoft Azure by using the Azure Marketplace. To learn more about the operations included here, refer also to Microsoft’s own Azure documentation ([https://docs.microsoft.com/azure](https://docs.microsoft.com/azure)) for full details.

After you have created an unregistered Gateway record on the **Gateways** page, you must create the Gateway instance in the *Azure portal*. This process facilitates communication between the *Controller* and the Gateway instance.

Before you start, you must obtain the Gateway definition file from the *Controller*. This definition file includes the settings necessary to configure the new Gateway virtual machine with the identity and location of the *Controller*.

To download the Gateway definition file:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateways List**.
   The *Gateways List* page appears.
3. Locate and select your unregistered Azure Gateway record from the list of available Gateways.
4. Click the **Download** icon to obtain a copy of the Gateway definition file.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/exSQ9FwNt-6VmHVVr5SUU_icondownloadposition.png" alt="The Download Icon" position="flex-start" size="25" width="253" height="112" initialPath="img/icon_download_position.png" githubPath="img/icon_download_position.png" showCaption="false"}

The Download Icon

5. Save the downloaded text file to a location accessible from the Microsoft Azure Portal.

:::hint{type="info"}
The Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.
:::

1. (Optional) If you have not yet downloaded the latest version of your Gateway VM file, click the **Download** icon and select **Download gateway VM image**. Save the archive file and unpack to a local workstation. Make sure the resulting file set is accessible from the Microsoft Azure Portal.

To create a Gateway instance from Azure Marketplace:

:::hint{type="info"}
*nZTA Gateway*s in Azure Marketplace are limited to version 21.3R1 at the present time. To use a Gateway version later than 21.3R1, either launch the Azure Marketplace version and upgrade in-place to the latest version (see [Upgrading Gateways](docId\:odDr4Z3VrHMCgVhHAWv7j)) or use the alternate procedure described in [Creating a Gateway using the Azure Template and Image Files](docId\:odDr4Z3VrHMCgVhHAWv7j) to launch a Gateway instance using the template and image files.
:::

1. Log into the Microsoft Azure Portal ([http://portal.azure.com](http://portal.azure.com)).
2. Navigate to the Azure Marketplace by clicking **Create a resource**.
3. In the *Search the Marketplace* text box, enter "Ivanti".
   Azure Marketplace presents the results relevant to your search term.
4. Locate *Ivanti Neurons Zero Trust Access Gateway* and click **Create**.
5. In the drop-down list, choose the option that is applicable to your needs:
   - **Ivanti Neurons Zero Trust Access Gateway - BYOL 3 NIC**: Includes 3 network interfaces (internal, external, and management)
   - **Ivanti Neurons Zero Trust Access Gateway - BYOL 2 NIC**: Includes 2 network interfaces (internal and external)

:::hint{type="info"}
To first learn more about *Ivanti Neurons Zero Trust Access Gateway*, click the product banner and view the associated information page. You can launch a new Gateway instance from this page.
:::

The *Create Ivanti Neurons Zero Trust Access Gateway* process appears.

6. On the *Basics* tab, enter the following details:
   - **Subscription**: If you are using the "PZT\_Dev" subscription, leave this field as the default value. Otherwise, enter your subscription name.
   - **Resource Group**: Specify the resource group in which the Gateway needs to be deployed, or create a new resource group using the link provided. An Azure Resource Group is a container for a collection of connected assets that you assign to a virtual machine. To learn more, see the Azure documentation ([https://docs.microsoft.com/azure](https://docs.microsoft.com/azure)).
   - **Region**: Specify the geographic region in which the Gateway instance is deployed.
   - **Ivanti Neurons Zero Trust Access Gateway VM Name**: Enter a suitable name for your Gateway instance. This name must be 1-9 characters long, using only lowercase letters or numbers.
   - **SSH Public Key Source**: Select "Use existing public key".
   - **SSH Public Key**: Copy and paste an RSA public key in a single-line format or the multi-line PEM format.

:::hint{type="info"}
SSH keys can be generated using sshkeygen on Linux or MacOS, or PuTTyGen on Windows. For further details about generating SSH key pairs, see:
:::

:::Paragraph{listStyleType="disc" indent="2"}
For Windows: [https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ssh-from-windows](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ssh-from-windows)
:::

:::Paragraph{listStyleType="disc" indent="2"}
For Linux or MacOS: [https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys)
:::

To continue, click **Next: Network Settings >**.

7. On the *Network Settings* page, enter the following details:
   - **Virtual Network**: A virtual network is a logical isolation of the Azure cloud dedicated to your services. The value you enter here affects the IP address and subnet allocations for all network interfaces shown on this page. Azure pre-populates this field with a new virtual network name, although you can select your own predefined virtual network as necessary.
     To create a new virtual network, perform the following steps:
     1. Click the **Create New** link under the Virtual Network setting.
        The *Create virtual network* dialog appears.
     2. Enter a virtual network name.
     3. Enter an address space in CIDR notation (for example, 192.0.2.0/24).
     4. For each interface subnet, use the automatically-populated name and address values provided, or enter your own details. Each subnet must be contained by the address space entered in the previous setting.
     5. To save your changes, click **OK**.
        Your new virtual network settings are populated into the corresponding interface settings in the main *Network Settings* page.
   - **Internal Subnet**: The subnet identifier for the Internal network, pre-populated by either the selected Virtual Network or your newly-entered virtual network settings.
   - **External Subnet**: The subnet identifier for the External network, pre-populated by either the selected Virtual Network or your newly-entered virtual network settings.
   - (For 3 NIC instances only) **Management Subnet**: The subnet for the Management network, pre-populated by either the selected Virtual Network or your newly-entered virtual network settings.
   - **Public IP for Ivanti Neurons Zero Trust Access Gateway external interface LB**: The public IP address identifier at which clients can externally reach the Gateway instance, typically provided by Azure.

     :::hint{type="info"}
     Before you can connect to the new Gateway instance from the *Controller*, you must update the *Controller* with the Public IP address or CNAME assigned to the external interface of the Gateway load balancer. This process is described later.
     :::
   - **DNS prefix for external interface LB**: The unique DNS name for the public IP address specified for the external interface load balancer.
   - **Public IP for NAT Gateway**: The public IP address identifier of a NAT Gateway for the virtual machine to communicate with the *Controller* and other public resources.
   - **DNS prefix for NAT Gateway public IP**: The unique DNS name for the public IP address specified for the internal interface NAT Gateway.
   - **Deploy Ivanti Neurons Zero Trust Access Gateway with Load Balancer**: To deploy this Gateway with a load balancer, select "Yes" from the drop-down list. The front-end IP address of the load balancer is then used as the public IP address for your Gateway.

     :::hint{type="info"}
     If you select "No" to not deploy a load balancer, you must create and associate a public IP address to the external interface of your instance after deployment is complete.
     :::

:::Paragraph{indent="2"}
In all cases, on completion of this process, you must update the *Controller* Gateway definition with the correct public IP address for your Azure Gateway instance.
:::

To continue, click **Next: Instance Configuration >**.

8. On the *Instance Configuration* page, enter the following details:
   - **Ivanti Neurons Zero Trust Access Gateway VM Size**: This is the specification of the virtual machine. Choose from:
     - For 2nic instances, select "1 x Standard DS2 v2"
     - For 3nic instances, select "1 x Standard DS4 v2"
   - **Diagnostic storage account**: The storage account for the virtual machine diagnostics. The default value is a new account based on your VM name.
   - **Ivanti Neurons Zero Trust Access Gateway Version**: Specify the version applicable to the current *nZTA* version, or the version you require. *Ivanti* recommends you select the latest available version.
   - **Ivanti Neurons Zero Trust Access Gateway Config Data**: Paste in the raw text of your Gateway definition file. To obtain the Gateway definition file, see the process described earlier in this section.

To continue, click **Next: Review + create >**.

9. On the *Review + create* page, verify the proposed configuration is validated successfully, and then click **Create** to create your new Gateway instance.
   After a short wait, your instance is created and deployed.
10. Access the virtual machine settings for your new Gateway instance, and click **Networking** from the *Settings* menu.
    The *Networking* dialog appears, showing your attached network interfaces (internal, external, and (optionally) management).
11. Click the tab that corresponds to the *external* network interface.
    The settings for the external network interface appear.
12. Locate the **NIC Public IP** field and make a note of the IP address shown there. This is the public IP address you use to reconfigure the *Controller* record for this Gateway.
    If no public IP address is shown, determine if a load balancer was deployed together with your Gateway instance by selecting the **Load balancing** tab.
    - If a load balancer was deployed, make a note of the **Frontend IP address** displayed in this tab and use this as the Gateway public IP address on the *Controller*.
    - If a load balancer was not deployed, create a public IP address and associate it with the *external* interface. Then, use this IP address as the Gateway public IP address on the *Controller*.

:::hint{type="info"}
To learn about configuring IP addresses in the Azure portal, see the Microsoft Azure documentation.
:::

1. Return to the *nZTA* Tenant Admin Portal, and click **Secure Access > Gateways > Gateways List**.
   The *All Gateways* page appears.
2. Select your new Azure Gateway from the list.
   The *Gateways Overview* page appears.
3. Make sure the new Azure Gateway instance is shown in the list of configured Gateways and is connected (Status is *Online* and State is *Registered*).
4. Select **Secure Access > Manage Gateways > Gateway > Configuration**, and locate *Gateway Network Settings*. Enter the Public IP address you noted from the Azure virtual machine settings. Make sure you remove any previously-entered dummy values.
5. To save your changes, click **Save Changes**.

:::hint{type="info"}
This completes the Azure Gateway registration process. Your enrolled client devices should now be able to connect to the Gateway.
:::

You can view all Gateways that are deployed in your *nZTA* service (see [Viewing and Monitoring Gateways in the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j)) or you can move to the next stage of *nZTA* configuration, which is [Working with User Authentication](docId\:NJOnS_n7fVj7YPwBgqwRy).

## Workflow: Creating a Gateway in Google Cloud Platform

Download the ZTA Gateway image and template files from the Software Download Portal [https://portal.ivanti.com/customer/product-downloads](https://portal.ivanti.com/customer/product-downloads).

For setting up a Gateway on the Google Cloud Platform (GCP), follow these processes that must be performed in sequence:

- Preparing to create a GCP gateway, see [Preparing to Create a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Creating the gateway record in the *Controller*, see [Adding a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Downloading Metadata for Google Cloud Platform, see [Downloading Metadata for Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Uploading the GCP Image onto the Google Cloud Platform, see [Uploading the GCP Virtual Machine Image onto the Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Creating a VM Instance of the GCP image. Either:
  - Creating a VM Instance of the Uploaded GCP Image Manually, see [Creating a VM Instance of the Uploaded GCP Image Manually](docId\:odDr4Z3VrHMCgVhHAWv7j).
  - Creating a VM Instance of the Uploaded GCP Image Using a Script/Template, see [Creating a VM Instance of the Uploaded GCP Image Using a Script/Template](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Completing the Configuration of the *Controller*, see [Completing the Configuration of the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).

After these steps have been completed successfully, the *Controller* and Gateway establish communication with each other.

### Preparing to Create a GCP Gateway

Before you start, make sure you have the following information and files:

- An identifying name for the Gateway.
- The public IP address for the Gateway. This is the IP address at which clients can externally reach the Gateway instance, such as an LB/NAT or Datacenter network forward rules.

:::hint{type="info"}
If you want Google Cloud platform to allocated a public IP address automatically, you can use a dummy IP address (for example, *1.1.1.1*) when you create the Gateway on *nZTA*. You must then update the *Controller* with the allocated public IP address afterwards.
:::

- The Gateway geographic location.
- (Optional) The name of the *Gateway Group* to which you want to add this new Gateway record. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j)

:::hint{type="info"}
Gateway Group may have a defined public IP address, which you can specify during the creation of the Gateway.
:::

- Credentials for the Google Cloud Platform Console.

:::hint{type="info"}
These credentials must include sufficient permissions to create a virtual machine from a template image.
:::

Additionally, to manually specify GCP Gateway network interface settings:

- The primary (and optional secondary) DNS server IP address, and search domain.
- The required internal/private subnetworks must already be defined on Google Cloud Platform, including firewall settings. All required firewall settings for this interface are shown below.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/V4u4JnD_AXb881K-TOxDw_gcpnic0firewall.png" alt="Internal/Private Firewall Rules" position="flex-start" size="80" width="1151" height="650" initialPath="img/gcp_nic0_firewall.png" githubPath="img/gcp_nic0_firewall.png" showCaption="false"}

Internal/Private Firewall Rules
Refer to the Google Cloud Platform documentation for details.

- The required external/public subnetworks must already be defined on Google Cloud Platform, including firewall settings. All required firewall settings for this interface are shown below.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/z3p9jbCmkZbyQMGH7EL_o_gcpnic1firewall.png" alt="External/Public Firewall Rules" position="flex-start" size="80" width="1193" height="923" initialPath="img/gcp_nic1_firewall.png" githubPath="img/gcp_nic1_firewall.png" showCaption="false"}

External/Public Firewall Rules
Refer to the Google Cloud Platform documentation for details.

- *(Optional)* Any required management subnetwork must already be defined on Google Cloud Platform, including firewall settings. All required firewall settings for this interface are shown below.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/c6uuaSj8TwkSuaiN713iK_gcpnic2firewall.png" alt="Management Firewall Rules" position="flex-start" size="80" width="1122" height="461" initialPath="img/gcp_nic2_firewall.png" githubPath="img/gcp_nic2_firewall.png" showCaption="false"}

Management Firewall Rules

:::Paragraph{indent="1"}
Refer to the Google Cloud Platform documentation for details.
:::

After you have all required information, you can set up a *nZTA* GCP gateway, see [Adding a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Adding a GCP Gateway

To registering a Gateway on your *Controller*, use the **Gateway Details** dialog.

To begin, log into the *Controller* Tenant Admin Portal using the credentials provided in your welcome email. Two outcomes are possible:

- On unconfigured *nZTA* systems, the *Secure Access Setup* Onboarding wizard appears (see [Working with the Onboarding Wizard](docId\:odDr4Z3VrHMCgVhHAWv7j)). In this case, click **Add Gateway**.
- On configured *nZTA* systems, the *Network Overview* page appears. In this case:

1. From the nZTA menu, click the **Secure Access** icon, then select **Manage Gateways**.

:::Paragraph{indent="1"}
The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*
:::

To add a new Gateway, select **Create** from the top-right:

:::Paragraph{indent="1"}
Add a new Gateway or Gateway Group
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

In the drop-down menu, click **Create ZTA Gateway**.

The **Gateway Details** dialog appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/YDoyLgGsGnshFjzSr1Hmg_gatewaynetworkconfiggcp.png" position="flex-start" size="80" width="921" height="949" initialPath="img/gateway_network_config_gcp.png" githubPath="img/gateway_network_config_gcp.png" showCaption="false"}

:::Paragraph{indent="1"}
Gateway Details
:::

Enter the following details:

1. Enter a **Name** for the Gateway.
2. Enter one or more **Public Address or CNAME** (Public IP address or CNAME) for the Gateway. Select **Add** to add each entry to the list. To learn more about this setting, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info"}
If you want Google Cloud Platform to allocate a public IP address automatically, you can use a dummy IP address (for example, 1.1.1.1) at this point. You must then update the *Controller* with the allocated public IP address after the GCP VM instance is created, see [Completing the Configuration of the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

1. Select the geographic location details for the Gateway.
2. For **Gateway Platform**, select "Google Cloud Platform".
3. Enter the Primary DNS IP address for the Gateway.
4. (Optional) Enter the Secondary DNS IP address for the Gateway.
5. Enter the DNS Search Domain for the Gateway.
6. (Optional) Select the **Use Management Port** check box to use management network ports for *nZTA* traffic rather than internal ports.

:::hint{type="info"}
When the management port is enabled, Gateway will use management interface to communicate with *Controller* and NTP Server.
The Gateway will still use the internal port for DNS resolution and NTP server name resolution.
If the internal DNS cannot resolve the *Controller* domain, the internal interface will require internet access.
:::

1. (Optional) Select the **Use proxy server for communication** check box to enable nZTA to *Controller* communication via proxy server. Proxy is supported on both internal and management interfaces of the Gateway. Once enabled, enter host name and port. Optionally, if your proxy server requires further authentication, enter a username and password to log in to the proxy server.

:::hint{type="info"}
Admin can configure proxy for existing Gateway after upgrading it to 22.4R3 version or later.
:::

1. (Optional) Select a **Gateway Group** to which the new Gateway is to be added. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).

:::hint{type="info"}
A Gateway Group may have a defined public IP address, which you can specify as the **Public Address**.
:::

1. Enable **Persistent Tunnel** to keep the tunnel active till the time set for user session idle timeout. Range is 5-120 minutes, and default is 15 minutes.
2. **Configure MTU for the gateway**: Configurable MTU size allows admin to modify the default setting of nZTA gateways wherever it is needed. The value allowed is in the range of 576 to 1460 (IPv4).

To add a Gateway definition based on the settings you specified in this dialog, select **Create Configuration**.

You can now download your metadata, see [Downloading Metadata for Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).

In case of registration failure due to Gateway configuration mistakes in firewall rules, DNS, etc., you can re-register the gateway. It does not require re-deploying of Gateway. For details see [Re-registering a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Re-registering a GCP Gateway

Re-registration of Gateway includes the following capabilities:

- Gateway triggers re-registration on every launch of the gateway if the registration with controller fails or any update is made to the configuration parameters.
- The "View registration error report" option provides the reason for failure and solution to rectify it.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/aHKv9R2pI2MYdrm4-oNuy_registeroption.png" size="36" isUploading="false" initialPath="img/register_option.png" githubPath="img/register_option.png" width="355" height="168" showCaption="false"}

- On registration failures, admin is provided with the "Register" option to trigger the registration manually along with the existing debugging options such as networking tools, reboot, etc. This option can be used after rectifying any external issues such as network reach issue or Firewall rules following controller traffic from Gateway.
- To rectify registration failure  due to the config error, first update the config settings in the Controller and download the config file. Then edit the Gateway instance and update the Custom metadata with the downloaded config file, and then reboot Gateway.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/3z70SHe9UYnMm4S80fCIA_gcpconfig.png" size="80" isUploading="false" initialPath="img/gcp_config.png" githubPath="img/gcp_config.png" width="1201" height="157" showCaption="false"}

Sample screen: Update Config Value

:::hint{type="info"}
An option is provided to regenerate and download the gateway init config from the controller admin interface.
:::

### Downloading Metadata for Google Cloud Platform

The preparation of metadata for use on Google Cloud Platform currently requires some manual steps:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateways List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Locate and select your GCP Gateway.
   The *Gateways Overview* page appears.
4. Click the **Download** icon, then choose **Download gateway init config** to obtain a copy of the Gateway definition file.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/exSQ9FwNt-6VmHVVr5SUU_icondownloadposition.png" alt="The Download Icon" position="flex-start" size="25" width="253" height="112" initialPath="img/icon_download_position.png" githubPath="img/icon_download_position.png" showCaption="false"}

The Download Icon

5. Specify a save location for your Gateway definition file.

:::hint{type="info"}
The Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.
:::

1. (Optional) If you have not yet downloaded the latest version of your Gateway VM image and optional YAML templates, click the **Download** icon and select **Download gateway VM image**. Save the archive file and unpack to a local workstation. Make sure the resulting file set is accessible from the Google Cloud Platform Management Portal.

You can now create a GCP gateway VM in Google Cloud Platform, see [Uploading the GCP Virtual Machine Image onto the Google Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Uploading the GCP Virtual Machine Image onto the Google Cloud Platform

To upload a GCP Gateway virtual machine image into Google Cloud Platform:

1. Access the *Google Cloud Platform Management Portal*, either from a client or a web browser, and log in using your Google Cloud Platform credentials.
2. In the Google Cloud Platform console, select your required project from the pull-down list on the title bar. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/kIPlkxVCf89Ryj70R-ZjX_gcpselectproject.png" alt="GCP Select Project" position="flex-start" size="47" width="470" height="58" initialPath="img/gcp_select_project.png" githubPath="img/gcp_select_project.png" showCaption="false"}

GCP Select Project

3. Click the **Navigation** menu, and then select **Cloud Storage > Browser**.
   A list of GCP storage buckets appears.
4. Select the bucket into which you wish to place the GCP image.
   A page listing the current contents of the bucket appears.
5. (Optional) Navigate to the required folder within the bucket.
6. Click **Upload Files**. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/uP9Xcnbt3cD5jZhZUR4y4_gcpuploadfiles.png" alt="GCP Upload Files" position="flex-start" size="80" width="901" height="278" initialPath="img/gcp_upload_files.png" githubPath="img/gcp_upload_files.png" showCaption="false"}

GCP Upload Files
An upload dialog appears.

7. Select the *ZTA Gateway* GCP virtual machine image *.tar* file from your local workstation (see [Preparing to Create a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).), and click **Open**.

:::hint{type="info"}
If you want to use the provided YAML templates to automate the creation of your VM instance (see [Creating a VM Instance of the Uploaded GCP Image Using a Script/Template](docId\:odDr4Z3VrHMCgVhHAWv7j).), select these in addition to the image archive.
:::

The image archive and any selected template files are added to the bucket.

8. Wait until the upload completes. This may take several minutes.
9. Start a command line session from the title bar. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/y3j05l69Dg42nitBe9SAg_gcpcommandlineicon.png" alt="GCP Upload Files" position="flex-start" size="40" width="400" height="63" initialPath="img/gcp_command_line_icon.png" githubPath="img/gcp_command_line_icon.png" showCaption="false"}

GCP Upload Files
A command line session starts.

10. Navigate to the project folder.
11. Create an image from the *nZTA Gateway* image archive using the following command:

:::Paragraph{indent="1"}
gcloud compute images create \<instance\_name> --source-uri=gs\://\<bucket\_name>/\<optional\_path>/\<image\_name>.tar --guest-os-features MULTI\_IP\_SUBNET
:::

You can now create a VM instance of the uploaded GCP image. To do this, either:

- Perform the task manually, see [Creating a VM Instance of the Uploaded GCP Image Manually](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Perform the task with a script/template, see [Creating a VM Instance of the Uploaded GCP Image Using a Script/Template](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Creating a VM Instance of the Uploaded GCP Image Manually

This section describes how to manually create a virtual machine instance of the *nZTA Gateway* image inside Google Cloud Platform. You can also perform this process automatically using a script/template, see [Creating a VM Instance of the Uploaded GCP Image Using a Script/Template](docId\:odDr4Z3VrHMCgVhHAWv7j).

1. Click the **Navigation** menu, and then select **Compute Engine > Images**.
   The **Images** page appears. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/bv0VisRkgDm8oH-C0pIZx_gcpimagelist.png" alt="GCP Images Page" position="flex-start" size="72" width="719" height="312" initialPath="img/gcp_image_list.png" githubPath="img/gcp_image_list.png" showCaption="false"}

GCP Images Page

2. Locate the new image in the list of images.
3. At the end of the image entry, click the action menu and select **Create Instance**.
   The **Create Instance** page appears. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/0EAuN7B0HkwHgjKNoD7Ep_gcpcreateinstance.png" alt="GCP Create Instance" position="flex-start" size="80" width="1001" height="622" initialPath="img/gcp_create_instance.png" githubPath="img/gcp_create_instance.png" showCaption="false"}

GCP Create Instance

4. On the **Create Instance** page:
   - Enter a **Name** for the new instance.
   - Select a **Region** and **Zone**.
   - Under **Machine configuration**:
     - For **Series**, select *N1*.
     - For **Machine Type**, select a minimum of *N1-Standard-n2* for 2-NIC, minimum of *N1-Standard-n4* for 3-NIC.
     - For **Boot Disk**, confirm that the correct image is already selected.
     - For **Firewall**, select the required HTTP/HTTPS options.
   - Expand the **Management, security, disks, networking, sole tenancy** options.
   - Select the **Management** tab.
   - Under **Metadata**:
     - For **Key**, enter *pulse-config*.
     - For **Value**, paste the text of the metadata file you downloaded earlier.
   - Select the **Networking** tab.
   - Under **Network interfaces**, click the **Edit** icon to change the default network interface selection.
     The **Network interface** options appear.
   - Under **Network interface**, specify a *private* (internal) network interface:
     - For **Network**, select the required private VPC.
     - For **Subnetwork**, select the required subnetwork.
     - Click **Done** to confirm the settings for the private network interface.
   - Under **Network interfaces**, click **Add network interface**.
     The **Network interface** options appear.
   - Under **Network interface**, specify a *public* (external) network interface:
     - For **Network**, select the required public VPC.
     - For **Subnetwork**, select the required subnetwork.
     - Click **Done** to confirm the settings for the public network interface.
   - (Optional) Click **Add network interface** and specify a management network interface.
   - Click **Create** to confirm the settings and instantiate a VM instance of the image.
     The **VM Instances** page appears. This page shows the new VM instance of the image. For example:

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/SEmDJRhDprSDlk8_U5ADA_gcpnewvminstance.png" alt="GCP Create Instance" position="flex-start" size="80" width="1366" height="348" initialPath="img/gcp_new_vm_instance.png" githubPath="img/gcp_new_vm_instance.png" showCaption="false"}

:::Paragraph{indent="2"}
GCP Create Instance
:::

5. On the **VM Instances** page, wait until the creation of the VM instance completes. This may take several minutes.
6. After the VM instance is created, click on it in the list of VM instances.
   The **VM instance details** page appears for the instance.
7. Confirm the details for the VM instance, including the number of network interfaces.
8. Make a note of the public IP address of the EXT interface (typically, this is *nic1*. This is required inside *nZTA*.
9. Under **Network interfaces**, confirm that the firewall settings from your VPCs are present for your specified network interfaces:
   - Click *nic0*. A summary page for this network interface appears.
     Under **Firewall and route details**, click the **Firewall Rules** tab and confirm that the following firewall rules are defined.

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/V4u4JnD_AXb881K-TOxDw_gcpnic0firewall.png" alt="NIC0 Firewall Rules" position="flex-start" size="80" width="1151" height="650" initialPath="img/gcp_nic0_firewall.png" githubPath="img/gcp_nic0_firewall.png" showCaption="false"}

:::Paragraph{indent="2"}
NIC0 Firewall Rules
:::

:::Paragraph{listStyleType="disc" indent="2"}
Click *nic1*. A summary page for this network interface appears.
Under **Firewall and route details**, click the **Firewall Rules** tab and confirm that the following firewall rules are defined.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/z3p9jbCmkZbyQMGH7EL_o_gcpnic1firewall.png" alt="NIC1 Firewall Rules" position="flex-start" size="80" width="1193" height="923" initialPath="img/gcp_nic1_firewall.png" githubPath="img/gcp_nic1_firewall.png" showCaption="false" indent="3"}

:::Paragraph{indent="2"}
NIC1 Firewall Rules
:::

:::Paragraph{listStyleType="disc" indent="2"}
(Optional) Click *nic2*. A summary page for this optional network interface appears.
Under **Firewall and route details**, click the **Firewall Rules** tab and confirm that the following firewall rules are defined.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/c6uuaSj8TwkSuaiN713iK_gcpnic2firewall.png" alt="NIC2 Firewall Rules" position="flex-start" size="80" width="1122" height="461" initialPath="img/gcp_nic2_firewall.png" githubPath="img/gcp_nic2_firewall.png" showCaption="false" indent="3"}

:::Paragraph{indent="2"}
NIC2 Firewall Rules
:::

10. The *VM instance details*\* page, click **Connect to serial console**
    A console monitor view (in a separate browser tab) shows the ongoing boot-up process for the instance.
11. Wait until the instance boot up is complete, and shows a screen similar to the following:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/XSs-cAXuYe6vNwRB94a_k_gcpserialconsole.png" alt="GCP Instance Console Monitor" position="flex-start" size="66" width="661" height="431" initialPath="img/gcp_serial_console.png" githubPath="img/gcp_serial_console.png" showCaption="false"}

GCP Instance Console Monitor

You can then complete this process by updating the Gateway details on the *Controller*, see [Completing the Configuration of the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Creating a VM Instance of the Uploaded GCP Image Using a Script/Template

This section describes how to automatically create a virtual machine instance of the *nZTA Gateway* image inside Google Cloud Platform using a script/template. You can also perform this process manually, see [Creating a VM Instance of the Uploaded GCP Image Manually](docId\:odDr4Z3VrHMCgVhHAWv7j).

*Ivanti* provides YAML-based templates to create an instance of the *nZTA Gateway* image in the following configurations:

- Two network interfaces in an *existing* VPC.
- Three network interfaces in an *existing* VPC.
  Download:
  [https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-2-nics-existing-vpc.zip](https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-2-nics-existing-vpc.zip)
  [https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-3-nics-existing-vpc.zip](https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-3-nics-existing-vpc.zip)
- Two network interfaces in a *new* VPC.
- Three network interfaces in a *new* VPC.
  Download:
  [https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-2-nics-new-vpc.zip](https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-2-nics-new-vpc.zip)
  [https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-3-nics-new-vpc.zip](https://pulsezta.blob.core.windows.net/gateway/templates/GCP/25-4-579/ivanti-zta-3-nics-new-vpc.zip)

:::hint{type="info" indent="1"}
You can obtain these templates through the links given here, or as part of the archive file set provided through the *Download* link on the **Gateways Overview** page in the *nZTA* Tenant Admin Portal after you have defined a Gateway record.
:::

To use a template:

1. Download the required template archive file to your local workstation.
2. Unpack the downloaded archive file to a location that is accessible from Google Cloud Platform. Each archive contains three files. For example, for the two-interface (existing VPC) version of the archive:

```javascript
 pulsesecure-zta-2nics-existing-vpc.jinja
pulsesecure-zta-2nics-existing-vpc.jinja.scheme
pulsesecure-zta-2nics-existing-vpc.yaml
        
```

3. Edit the YAML file `properties` section to reflect your project and instance requirements, including the `user_data` property.

An example of an *existing VPC* YAML file is provided here:

```javascript
          imports:
  - path: pulsesecure-zta-2-nics-existing-vpc.jinja
resources:
  - name: my-vm
    properties:
      project: zta-gw-263035
      email: admin@example.com
      region: asia-south1
      zone: asia-south1-b
      image: ztagcp123
      machine_type: n1-standard-2
      int_network:
      ext_network:
      int_subnetwork:
      ext_subnetwork:
      user_data:
    type: pulsesecure-zta-2-nics-existing-vpc.jinja
        
```

An example of a *new VPC* YAML file is provided here:

```javascript
          imports:
  - path: pulsesecure-zta-2-nics-new-vpc.jinja
resources:
  - name: my-vm
    properties:
      deploy_with_lb: yes
      project: zta-gw-263035
      email: admin@example.com
      region: asia-south1
      zone: asia-south1-b
      image: ztagcp123
      machine_type: n1-standard-2
      user_data: <pulse-config><primary-dns>8.8.8.8<\primary-dns> ...
      int_cidr: 192.0.2.0/24
      ext_cidr: 192.0.2.0/24
    type: pulsesecure-zta-2-nics-new-vpc.jinja
        
```

:::hint{type="info"}
Where you are specifying a new VPC for your virtual machine instance, make sure you use properties (for example, networking settings) that do not conflict with an existing VPC.
:::

The following table lists all possible template properties and their meaning:

| Property                 | Description                                                        | ExampleValue                                                             |
| ------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| project                  | Project Identifier                                                 | myproject                                                                |
| email                    | Registered service account email address                           | email\@example.com                                                       |
| region                   | Thename of the region in which you want to deploy your VM instance | asia-east1                                                               |
| zone                     | The name of the zone in which you want to deploy your VM instance  | asia-east1-b                                                             |
| image                    | Virtual machine image name                                         | gwimage                                                                  |
| machine\_type            | GCP machine type                                                   | For 2-nic: N1-Standard-n2 minimum<br />For 3-nic: N1-Standard-n4 minimum |
| int\_network             | VPC network name for internal network                              | nw1-private                                                              |
| ext\_network             | VPC network name for external network                              | nw1-public                                                               |
| mgmt\_network            | VPC network name for management network                            | nw1-mgmt                                                                 |
| int\_subnetwork          | Subnet name for internal VPC                                       | int-nw1                                                                  |
| ext\_subnetwork          | Subnet name for external VPC                                       | ext-nw1                                                                  |
| mgmt\_subnetwork         | Subnet name for management VPC                                     | mgmt-nw1                                                                 |
| user\_data               | The Gateway config file downloaded from the *nZTA* controller      | \<pulse-config>... \</pulse-config>                                      |
| int\_cidr                | IP address range for the internal subnet                           | 192.0.2.0/24                                                             |
| ext\_cidr                | IP address range for the external subnet                           | 198.51.100.0/24                                                          |
| mgmt\_cidr               | IP address range for the management subnet                         | 203.0.113.0/24                                                           |
| health\_check            | Health check rule name with port 443                               | hc1                                                                      |
| ingress\_pzt\_int\_port  | Firewall rule for inbound internal network                         | ing-int                                                                  |
| ingress\_pzt\_ext\_port  | Firewall rule for inbound external network                         | ing-ext                                                                  |
| egress\_pzt\_ext\_port   | Firewall rule for outbound external network                        | egress                                                                   |
| ingress\_pzt\_mgmt\_port | Firewall rule for inbound management network                       | ing-mgmt                                                                 |
| vm\_name                 | Virtual machine instance Name                                      | vm77                                                                     |
| router\_int              | Cloud router name for the internal interface                       | rtr1                                                                     |
| nat\_int                 | NAT Gateway name for the internal interface                        | nat1                                                                     |
| router\_mgmt             | Cloud router name for the management interface                     | rtr-mgmt1                                                                |
| nat\_mgmt                | NAT Gateway name for the management interface                      | nat-mgmt                                                                 |
| ip\_address              | Load balancer front-end IP address                                 | 3nic                                                                     |
| instance\_group          | Instance group name                                                | group1                                                                   |
| load\_balancer           | Load balancer name                                                 | lb                                                                       |
| max\_connections         | The number of maximum connections                                  | 2                                                                        |
| target\_proxy            | Targeted proxy name                                                | proxy1                                                                   |
| front\_end               | Load balancer front-end profile name                               | front1                                                                   |

4. Save the YAML file.
5. On the Google Cloud Platform, start a command line session from the title bar. For example:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/y3j05l69Dg42nitBe9SAg_gcpcommandlineicon.png" alt="GCP Upload Files" position="flex-start" size="40" width="400" height="63" initialPath="img/gcp_command_line_icon.png" githubPath="img/gcp_command_line_icon.png" showCaption="false"}

GCP Upload Files

A command line session starts.

6. Select the required project:

```bash
gcloud config set project <project-name>
```

7. Within the project folder, create a *deploymentmanager* folder.
8. Copy the three script files to this folder.
9. Create a VM instance from the *nZTA Gateway* image archive file using the following command:

```bash
gcloud deployment-manager deployments create <vm-name> --config <yaml_file>
```

For example:

```bash
gcloud deployment-manager deployments create vm-gcp-123 --config pulsesecure-zta-3-nics-existing-vpc.yaml
```

10. Wait until the command completes.
11. On the **VM Instances** page, click on the new VM in the list of VM instances.

The **VM instance details** page appears for the instance.

12. Confirm the details for the VM instance, including the number of network interfaces.
13. Make a note of the public IP address of the INT interface (typically, this is *nic0*. This is required inside *nZTA*.

You can now complete this process by updating the Gateway details on the *Controller*, see [Completing the Configuration of the Controller](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Completing the Configuration of the *Controller*

If you specified a dummy public IP address (for example, *1.1.1.1*) when you created the Gateway on the *Controller*, you now need to update the *Controller* with the allocated public IP address for the Gateway VM instance on Google Cloud Platform.

:::hint{type="info" indent="1"}
You do not need to perform the following procedure if you specified the correct public IP address when you created the Gateway on the *Controller*, see [Adding a GCP Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

1. Return to the **Gateways List** page in the *nZTA* Tenant Admin Portal.
2. Locate the new Gateway record in the list and confirm that its status has updated to *Connected*.
3. Click the Gateway and then select **Secure Access > Manage Gateways > Gateway > Configuration**.
4. Under **Gateway Network Settings**, delete the current public IP setting and replace it with the public IP address if the nic1 (external) interface for the VM instance.
5. (Optional) After you have registered a Gateway, you can configure it (or the Gateway Group to which it belongs) as the default Gateway if required. A default Gateway handles all requests from applications that are not referenced by any secure access policy. See [Configuring a Default Gateway for Application Discovery](docId\:odDr4Z3VrHMCgVhHAWv7j).

## Workflow: Creating a Gateway in Oracle Cloud Platform

:::hint{type="info"}
ZTA on Oracle Cloud Platform is qualified with ZTA Gateway version: 22.7R1, 22.6R1.
:::

Download the ZTA Gateway image and template files from the Software Download Portal [https://portal.ivanti.com/customer/product-downloads](https://portal.ivanti.com/customer/product-downloads).

For setting up a Gateway on the Oracle Cloud Platform(OCI), follow these processes that must be performed in sequence:

- Preparing to create an Oracle gateway, see [Preparing to Create an Oracle Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Creating the gateway record in the Controller, see [Adding an Oracle Gateway](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Downloading Metadata for Oracle Cloud Platform, see [Downloading Metadata for Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Uploading the Oracle Image onto the Oracle Cloud Platform, see [Uploading the Oracle Virtual Machine Image onto the Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Creating a VM Instance of the OCI image:
  - Creating a VM Instance of the Uploaded Oracle Image Using a Script/Template, see [Creating a VM Instance of the Uploaded OCI Image Using Terraform Script](docId\:odDr4Z3VrHMCgVhHAWv7j).
  - Refer Terraform Configurations for details on the configuration, see [Terraform Configurations](docId\:odDr4Z3VrHMCgVhHAWv7j).
- Creating a VM Instance of the Uploaded OCI Image Using any Other Methods, see [Creating Gateway Selectors](docId\:odDr4Z3VrHMCgVhHAWv7j)

### Preparing to Create an Oracle Gateway

Before you start, make sure you have the following information and files:

- An identifying name for the Gateway.
- The public IP address for the Gateway. This is the IP address at which clients can externally reach the Gateway instance, such as an LB/NAT or Datacenter network forward rules.
  If you want Oracle Cloud platform to allocate a public IP address automatically, you can use a dummy IP address (for example, 1.1.1.1) when you create the Gateway on nZTA.
- The Gateway geographic location.
- (Optional) The name of the Gateway Group to which you want to add this new Gateway record. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
  Gateway Group may have a defined public IP address, which you can specify during the creation of the Gateway.
- Credentials for the Oracle Cloud Platform Console.
  These credentials must include sufficient permissions to create a virtual machine using terraform scripts.
- The primary (and optional secondary) DNS server IP address, and search domain.

### Adding an Oracle Gateway

To register a Gateway on your Controller, use the Gateway Details dialog. To begin, log into the Controller Tenant Admin Portal using the credentials provided in your welcome email. Two outcomes are possible:

- On unconfigured nZTA systems, the Secure Access Setup Onboarding wizard appears (see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z)). In this case, click **Add Gateway**.
- On configured nZTA systems, the Network Overview page appears. In this case:
  1. From the nZTA menu, click the Secure Access icon, then select **Manage Gateways**.
     The Gateways List page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the Controller.
  2. To add a new Gateway, select **Create** from the top-right.
  3. From the drop-down menu, click **Create ZTA Gateway**.

     ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/1NP9rhvudMr396pwHQ4_x_gatewaysadd.png" position="flex-start" size="39" width="388" height="151" initialPath="img/gateways_add.png" githubPath="img/gateways_add.png" showCaption="false"}

:::Paragraph{indent="2"}
The Gateway Details dialog appears.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/L0j92cezRQu8DvcCmskWE_gatewaynetworkconfigocp.png" position="flex-start" size="80" width="910" height="958" initialPath="img/gateway_network_config_ocp.png" githubPath="img/gateway_network_config_ocp.png" showCaption="false" indent="3"}

Enter the following details:

1. Enter a **Name** for the Gateway.
2. Enter one or more **Public Address or CNAME** (Public IP address or CNAME) for the Gateway.
3. Select **Add** to add each entry to the list. To learn more about this setting, see [Configuring Networks in your Gateway Datacenter](docId\:odDr4Z3VrHMCgVhHAWv7j).
   If you want Oracle Cloud Platform to allocate a public IP address automatically, you can use a dummy IP address (for example, 1.1.1.1) at this point. You must then update the Controller with the allocated public IP address after the Oracle VM instance is created (if it is not updated automatically).
4. Select the geographic location details for the Gateway.
5. For Gateway Platform, select **Oracle Cloud Platform**.
6. Enter the Primary DNS IP address for the Gateway.
7. (Optional) Enter the Secondary DNS IP address for the Gateway.
8. Enter the DNS Search Domain for the Gateway.
9. (Optional) Select the **Use Management Port** check box to use management network ports for nZTA traffic rather than internal ports.
   When the management port is enabled, Gateway will use management interface to communicate with Controller and NTP Server.
   The Gateway will still use the internal port for DNS resolution and NTP server name resolution.
   If the internal DNS cannot resolve the Controller domain, the internal interface will require internet access.
10. (Optional) Select the **Use proxy server for communication** check box to enable nZTA to Controller communication via proxy server.
    Proxy is supported on both internal and management interfaces of the Gateway. Once enabled, enter host name and port.
    Optionally, if your proxy server requires further authentication, enter a username and password to log in to the proxy server.
11. (Optional) Select a Gateway Group to which the new Gateway is to be added. To learn more about Gateway Groups, see [Adding Gateway Groups for High Availability](docId\:odDr4Z3VrHMCgVhHAWv7j).
    A Gateway Group may have a defined public IP address, which you can specify as the Public Address.
12. Enable **Persistent Tunnel** to keep the tunnel active till the time set for user session idle timeout. Range is 5-120 minutes, and default is 15 minutes.
13. **Configure MTU for the gateway**: Configurable MTU size allows admin to modify the default setting of nZTA gateways wherever it is needed. The value allowed is in the range of 576 to 1500 (IPv4).
14. To add a Gateway definition based on the settings you specified in this dialog, select **Create Configuration**.

You can now download your metadata, see [Downloading Metadata for Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).

In case of registration failure due to Gateway configuration mistakes in firewall rules, DNS, etc., you can re-register the gateway. It does not require re-deploying of Gateway.

### Downloading Metadata for Oracle Cloud Platform

The preparation of metadata for use on Oracle Cloud Platform currently requires some manual steps:

1. Log into the Controller as a Tenant Admin, see Logging in as a Tenant Administrator.
2. From the nZTA menu, click the Secure Access icon, then select **Manage Gateways > Gateways List**.
   The Gateways List page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the Controller.
3. Locate and select your Oracle cloud Gateway.
   The Gateways Overview page appears.
4. Click the Download icon, then choose **Download gateway init config** to obtain a copy of the Gateway definition file.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/exSQ9FwNt-6VmHVVr5SUU_icondownloadposition.png" position="flex-start" size="25" width="253" height="112" initialPath="img/icon_download_position.png" githubPath="img/icon_download_position.png" showCaption="false"}

Specify a save location for your Gateway definition file.
The Gateway definition file is valid for 24 hours. If this period expires, you must replace the Gateway to generate a new Gateway definition file.

6. (Optional) If you have not yet downloaded the latest version of your Gateway VM image and optional YAML templates, click the Download icon and select Download gateway VM image. Save the archive file and unpack to a local workstation. Make sure the resulting file set is accessible from the Oracle Cloud Platform Management Portal.

You can now create an Oracle cloud gateway VM in Oracle Cloud Platform, see [Uploading the Oracle Virtual Machine Image onto the Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).

### Uploading the Oracle Virtual Machine Image onto the Oracle Cloud Platform

To upload a Oracle Gateway virtual machine image into Oracle Cloud Platform:

1. Access the Oracle Cloud Platform Management Portal, either from a client or a web browser, and log in using your Oracle Cloud Platform credentials.
2. Click the Navigation menu, and then select **Storage > Buckets**.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/lc4dK6s9CmA8eQaMGQNWJ_ocpstorage.png" position="flex-start" size="73" width="729" height="511" initialPath="img/ocp_storage.png" githubPath="img/ocp_storage.png" showCaption="false"}

Select the right compartment and then the list of OCI storage buckets appears as below.

4. Select the bucket into which you wish to place the OCI image.
   A page listing the current list of the files from the bucket appears.
5. Click **Upload**.
   An upload dialog appears.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/lcxKqB2vJTcddEcVv8JMX_ocpuploadobjects.png" position="flex-start" size="80" width="943" height="451" initialPath="img/ocp_upload_objects.png" githubPath="img/ocp_upload_objects.png" showCaption="false"}

Select the *ZTA Gateway* OCI virtual machine image.tar file from your local workstation and click **Open**.

7. Wait until the upload completes. This may take several minutes.
8. Once upload completes. Create an image from the bucket using the following method:
   1. Click the Navigation menu, and then select **Compute > Custom Images**.

      ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/_AdoiHx4KYRUfD8qSDuEN_ocpcustomimages.png" position="flex-start" size="68" width="679" height="516" initialPath="img/ocp_custom_images.png" githubPath="img/ocp_custom_images.png" showCaption="false"}

:::Paragraph{indent="2"}
Select the right compartment and then the list of current images appears.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/TsLSGE7aBgR_EfiIcI4x4_ocpimportimages.png" position="flex-start" size="80" width="817" height="388" initialPath="img/ocp_import_images.png" githubPath="img/ocp_import_images.png" showCaption="false" indent="3"}

:::Paragraph{indent="2"}
Click on **Import image**. An import dialog will appear and then choose the .tar file that was uploaded in the bucket. Refer to the below screenshots.
:::

:::Paragraph{listStyleType="disc" indent="3"}
Ensure the OS is selected as CentoS.
:::

:::Paragraph{listStyleType="disc" indent="3"}
Ensure Launch mode is chosen as Paravirtualized mode.
:::

:::Paragraph{listStyleType="disc" indent="3"}
Ensure Image type is chosen as QCOW2.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/zvPFEu204ORg8Mr6Nttk0_ocpimagetype.png" position="flex-start" size="63" width="628" height="426" initialPath="img/ocp_image_type.png" githubPath="img/ocp_image_type.png" showCaption="false" indent="4"}

:::Paragraph{indent="3"}
Wait until the import completes. This may take several minutes.
:::

You can now create a VM instance of the uploaded OCI image. To do this, either:

:::Paragraph{listStyleType="disc" indent="2"}
Perform the task manually, see [Working with Gateways](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

:::Paragraph{listStyleType="disc" indent="2"}
Perform the task with a script, see [Creating a VM Instance of the Uploaded OCI Image Using Terraform Script](docId\:odDr4Z3VrHMCgVhHAWv7j).
:::

### Creating a VM Instance of the Uploaded OCI Image Using Terraform Script

**Pre-requisites**: Ensure OCI configurations required for CLI access is enabled. This is one-time process. Please see here for details:

1. Download the required template archive file to your local workstation.
2. Upload all the scripts to Oracle cloud shell as below:
   1. Open the cloud shell using the option as shown below.

      ::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/-0ry6iFJJkTJmRG4kB2Jc_ocpcloudshell.png" position="flex-start" size="68" width="681" height="340" initialPath="img/ocp_cloud_shell.png" githubPath="img/ocp_cloud_shell.png" showCaption="false"}

:::Paragraph{indent="2"}
Upload the terraform scripts using the upload option from the cloud shell settings as shown below. Once it is uploaded, the scripts will be present in the user’s home directory.
:::

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/YXEy0n5oHXzfCzWJwqm1p_ocpuploadterrformscripts.png" position="flex-start" size="80" width="874" height="457" initialPath="img/ocp_upload_terrform_scripts.png" githubPath="img/ocp_upload_terrform_scripts.png" showCaption="false" indent="3"}

:::Paragraph{indent="2"}
Edit the *config.auto.vars* file as per the intended deployment. Refer [Terraform Configurations](docId\:odDr4Z3VrHMCgVhHAWv7j) for details on the configuration.
:::

Run **terraform init**.

4. Run **terraform validate**. This will let the admin know if there are any issues with the configurations.
5. Run **terraform apply**. This will trigger the deployment process.
6. If any resource deployment fails, retry running the command **Terraform apply** again.

### Terraform Configurations

| Serial No. | Configuration                       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Sample Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1          | enable\_management                  | This defines, if nZTA needs an additional NIC for management interface.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | enable\_management = true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 2          | internal\_existing\_vcn             | This defines, if existing VCN to be used for internal(primary) interface. If true, then we need to provide the vcn-id for the configuration internal\_vcn\_id.                                                                                                                                                                                                                                                                                                                                                                                                | internal\_existing\_vcn = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 3          | external\_existing\_vcn             | This defines, if existing VCN to be used for external interface.If true, then we need to provide the vcn-id for the configuration external\_vcn\_id.                                                                                                                                                                                                                                                                                                                                                                                                          | external\_existing\_vcn = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 4          | management\_existing\_vcn           | This defines, if existing VCN to be used for management interface.If true, then we need to provide the vcn-id for the configuration management\_vcn\_id.                                                                                                                                                                                                                                                                                                                                                                                                      | management\_existing\_vcn = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 5          | use\_internal\_vcn\_for\_all        | This defines, if internal VCN to be used for all interfaces(external/management).                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | use\_internal\_vcn\_for\_all = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 6          | internal\_existing\_subnet          | This defines, if existing subnet from the existing VCN to be used for internal(primary) interface. If true, then we need to provide the configuration internal\_vcn\_id and internal\_subnet\_id.                                                                                                                                                                                                                                                                                                                                                             | internal\_existing\_subnet = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 7          | external\_existing\_subnet          | This defines, if existing subnet from the existing VCN to be used for external interface. If true, then we need to provide the configuration external\_vcn\_id and external\_subnet\_id.                                                                                                                                                                                                                                                                                                                                                                      | external\_existing\_subnet = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 8          | management\_existing\_subnet        | This defines, if existing subnet from the existing VCN to be used for management interface. If true, then we need to provide the configuration management\_vcn\_id and management\_subnet\_id.                                                                                                                                                                                                                                                                                                                                                                | management\_existing\_subnet = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 9          | create\_management\_nat             | This defines, if NAT needs to be created for management interface. This is required for management interface to access controller deployed in the internet.                                                                                                                                                                                                                                                                                                                                                                                                   | create\_management\_nat = true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 10         | create\_internal\_nat               | This defines, if NAT needs to be created for internal(primary) interface. This is required for internal interface to access controller deployed in the internet.                                                                                                                                                                                                                                                                                                                                                                                              | create\_internal\_nat = true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 11         | create\_external\_ig                | This defines, if internet gateway needs to be created for external interface. This is required for ISAC client to reach the external interface for resource access.                                                                                                                                                                                                                                                                                                                                                                                           | create\_external\_ig = true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 12         | use\_static\_external\_ip           | This defines, if static private ip to be used for external interface.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | use\_static\_external\_ip = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 13         | use\_static\_internal\_ip           | This defines, if static private ip to be used for internal interface.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | use\_static\_internal\_ip = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 14         | use\_static\_management\_ip         | This defines, if static private ip to be used for management interface.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | use\_static\_management\_ip = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 15         | use\_load\_balancer                 | This defines, if load balancer needs to be configured for external interface.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | use\_load\_balancer = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 16         | use\_existing\_lb\_for\_ext\_nic    | This defines, if existing load balancer to be used for external interface. If true, then we need to provide the configuration external\_lb\_id.                                                                                                                                                                                                                                                                                                                                                                                                               | use\_existing\_lb\_for\_ext\_nic = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 17         | use\_existing\_bs\_for\_ext\_nic    | This defines, if existing backend set to be used for external interface. If true, then we need to provide the configuration bs\_display\_name.                                                                                                                                                                                                                                                                                                                                                                                                                | use\_existing\_bs\_for\_ext\_nic = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 18         | use\_existing\_ls\_for\_ext\_nic    | This defines, if existing listeners to be used for external interface. If true, then we need to provide the configuration listener\_display\_name.                                                                                                                                                                                                                                                                                                                                                                                                            | use\_existing\_ls\_for\_ext\_nic = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 19         | compartment\_id                     | The OCID of the compartment where the nZTA gateway will be deployed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | compartment\_id = "ocid1.tenancy.oc1..aaaaaaaarod5yc3653ujwgvjbqui3s6r6ntfbs3d4uwxlkitku5flcbkrety"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 20         | vm\_display\_name                   | Display name for the nZTA gateway VM.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | vm\_display\_name = "skrn-new-2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 21         | image\_id                           | OCID of the image to use for the nZTA gateway deployment.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | image\_id = "ocid1.image.oc1.ap-hyderabad-1.aaaaaaaapw7vnd4fqbp3heuk5kikfhlmhpcxjhcrl7tz7a3ln52gg7jr3htq"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 22         | shape                               | VM shape for the nZTA gateway (e.g., VM.Standard.E4.Flex and etc.) . If the shape is of type fles, then we need to provide the configuration total\_flex\_OCPUs and total\_flex\_RAM as mandatory.                                                                                                                                                                                                                                                                                                                                                            | shape = "VM.Standard.E4.Flex"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 23         | total\_flex\_OCPUs                  | Number of required OCPU's for the flex VM.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | total\_flex\_OCPUs = 3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 24         | total\_flex\_RAM                    | RAM size for the flex VM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | total\_flex\_RAM = 16                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 25         | availability\_domain                | Availability domain where the shape belong to.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | availability\_domain = "bsUY\:AP-HYDERABAD-1-AD-1"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 26         | internal\_vcn\_cidr\_block          | Internal CIDR block for the internal Virtual Cloud Network to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | internal\_vcn\_cidr\_block = "10.0.0.0/16"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 27         | internal\_vcn\_display\_name        | Display name for the internal Virtual Cloud Network to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | internal\_vcn\_display\_name = "ZTA\_internal\_vnc\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 28         | internal\_vcn\_id                   | OCID of the existing vcn to use for the nZTA internal interface (Primay VNIC)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | internal\_vcn\_id = "ocid1.vcn.oc1.ap-hyderabad-1.amaaaaaatgkbhxyaia3zy75gt3cqxqotgdagfsw7vdy2sylscjvavm2526ha"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 29         | internal\_subnet\_id                | OCID of the subnet to use for the nZTA internal interface (Primay VNIC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | internal\_subnet\_id = "ocid1.subnet.oc1.ap-hyderabad-1.aaaaaaaafscfkn7nzwsnv5xgjscybresi55fyxreqrqeu67umiz2sw7giawa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 30         | internal\_subnet\_cidr\_block       | CIDR block for the internal subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | internal\_subnet\_cidr\_block = "10.0.0.0/18"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 31         | internal\_subnet\_display\_name     | Display name for the internal subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | internal\_subnet\_display\_name = "internal\_Subnet\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 32         | internal\_rt\_name                  | Display name of the routing table for the internal subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | internal\_rt\_name = "internal\_rt\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 33         | internal\_nat\_name                 | Display name of the nat for the internal subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | internal\_nat\_name = "internal\_nat\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 34         | internal\_nic\_display\_name        | Display name for the internal NIC (Primary VNIC) to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | internal\_nic\_display\_name = "internal"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 35         | internal\_ip\_address               | Static IP address of the internal nic (optional)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | internal\_ip\_address = "10.1.1.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 36         | internal\_is\_public\_ip\_enabled   | This defines, if we need to ssign public IP to internal nic.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | internal\_is\_public\_ip\_enabled = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 37         | internal\_nsg\_name                 | Display name of the network security group to be associated with internal NIC which will be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                          | internal\_nsg\_name = "internal\_nsg\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 38         | internal\_nsg\_rules                | Defines the network security group for the internal interface.<br />Protocol - Protocol to be allowed. Values : 6 (TCP) ,17 (UDP)<br />Destination : Destination CIDR block to be allowed.<br />Source: Source CIDR block to be allowed.<br />min\_dstport : Min destination port to be allowed<br />max\_dstport : Max destination port to be allowed<br />min\_srcport : Min destination port to be allowed<br />max\_srcport : Max destination port to be allowed<br />description : Description about the NSG rules.<br />direction : INGRESS or EGRESS   | protocol = "6"//TCP<br />destination ="0.0.0.0./0"<br />source = "0.0.0.0./0"<br />min\_dstport = 6667<br />max\_dstport = 6667<br />min\_srcport = 0<br />max\_srcport = 0<br />description = "internal ingess"<br />direction = "INGRESS"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 39         | external\_vcn\_cidr\_block          | External CIDR block for the external Virtual Cloud Network to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | External\_vcn\_cidr\_block = "10.0.0.0/16"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 40         | external\_vcn\_display\_name        | Display name for the external Virtual Cloud Network to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | external\_vcn\_display\_name = "ZTA\_external\_vnc\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 41         | external\_vcn\_id                   | OCID of the existing vcn to use for the nZTA external interface (Primay VNIC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | external\_vcn\_id = "ocid1.vcn.oc1.ap-hyderabad-1.amaaaaaatgkbhxyaia3zy75gt3cqxqotgdagfsw7vdy2sylscjvavm2526ha"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 42         | external\_subnet\_id                | OCID of the subnet to use for the nZTA external interface (Primay VNIC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | external\_subnet\_id = "ocid1.subnet.oc1.ap-hyderabad-1.aaaaaaaafscfkn7nzwsnv5xgjscybresi55fyxreqrqeu67umiz2sw7giawa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 43         | external\_subnet\_cidr\_block       | CIDR block for the external subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | external\_subnet\_cidr\_block = "10.0.0.0/18"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 44         | external\_subnet\_display\_name     | Display name for the external subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | external\_subnet\_display\_name = "external\_Subnet\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 45         | external\_rt\_name                  | Display name of the routing table for the external subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | external\_rt\_name = "external\_rt\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 46         | external\_ig\_name                  | Display name of the internal gateway for the external subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | external\_ig\_name = "external\_ig\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 47         | external\_nic\_display\_name        | Display name for the external NIC (Primary VNIC) to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | external\_nic\_display\_name = "external"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 48         | external\_ip\_address               | Static IP address of the external nic (optional)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | external\_ip\_address = "10.1.1.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 49         | external\_is\_public\_ip\_enabled   | This defines, if we need to ssign public IP to external nic.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | external\_is\_public\_ip\_enabled = true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 50         | external\_nsg\_name                 | Display name of the network security group to be associated with external NIC which will be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                          | external\_nsg\_name = "external\_nsg\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 51         | external\_nsg\_rules                | Defines the network security group for the external interface.<br />Protocol - Protocol to be allowed. Values : 6 (TCP) ,17 (UDP)<br />Destination : Destination CIDR block to be allowed.<br />Source: Source CIDR block to be allowed.<br />min\_dstport : Min destination port to be allowed<br />max\_dstport : Max destination port to be allowed<br />min\_srcport : Min destination port to be allowed<br />max\_srcport : Max destination port to be allowed<br />description : Description about the NSG rules.<br />direction : INGRESS or EGRESS   | protocol = "6"//TCP<br />destination ="0.0.0.0./0"<br />source = "0.0.0.0./0"<br />min\_dstport = 6667<br />max\_dstport = 6667<br />min\_srcport = 0<br />max\_srcport = 0<br />description = "external ingess"<br />direction = "INGRESS"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 52         | management\_vcn\_cidr\_block        | management CIDR block for the management Virtual Cloud Network to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | management\_vcn\_cidr\_block = "10.0.0.0/16"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 53         | management\_vcn\_display\_name      | Display name for the management Virtual Cloud Network to be created                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | management\_vcn\_display\_name = "ZTA\_management\_vnc\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 54         | management\_vcn\_id                 | OCID of the existing vcn to use for the nZTA management interface (Primay VNIC)                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | management\_vcn\_id = "ocid1.vcn.oc1.ap-hyderabad-1.amaaaaaatgkbhxyaia3zy75gt3cqxqotgdagfsw7vdy2sylscjvavm2526ha"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 55         | management\_subnet\_id              | OCID of the subnet to use for the nZTA management interface (Primay VNIC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | management\_subnet\_id = "ocid1.subnet.oc1.ap-hyderabad-1.aaaaaaaafscfkn7nzwsnv5xgjscybresi55fyxreqrqeu67umiz2sw7giawa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 56         | management\_subnet\_cidr\_block     | CIDR block for the management subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | management\_subnet\_cidr\_block = "10.0.0.0/18"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 57         | management\_subnet\_display\_name   | Display name for the management subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | management\_subnet\_display\_name = "management\_Subnet\_2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 58         | management\_rt\_name                | Display name of the routing table for the management subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | management\_rt\_name = "management\_rt\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 59         | management\_nat\_name               | Display name of the nat for the management subnet to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | management\_nat\_name = "management\_nat\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 60         | management\_nic\_display\_name      | Display name for the management NIC (Primary VNIC) to be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | management\_nic\_display\_name = "management"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 61         | management\_ip\_address             | Static IP address of the management nic (optional).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | management\_ip\_address = "10.1.1.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 62         | management\_is\_public\_ip\_enabled | This defines, if we need to ssign public IP to management nic.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | management\_is\_public\_ip\_enabled = false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 63         | management\_nsg\_name               | Display name of the network security group to be associated with management NIC which will be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                        | management\_nsg\_name = "management\_nsg\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 64         | management\_nsg\_rules              | Defines the network security group for the management interface.<br />Protocol - Protocol to be allowed. Values : 6 (TCP) ,17 (UDP)<br />Destination : Destination CIDR block to be allowed.<br />Source: Source CIDR block to be allowed.<br />min\_dstport : Min destination port to be allowed<br />max\_dstport : Max destination port to be allowed<br />min\_srcport : Min destination port to be allowed<br />max\_srcport : Max destination port to be allowed<br />description : Description about the NSG rules.<br />direction : INGRESS or EGRESS | protocol = "6"//TCP<br />destination ="0.0.0.0./0"<br />source = "0.0.0.0./0"<br />min\_dstport = 6667<br />max\_dstport = 6667<br />min\_srcport = 0<br />max\_srcport = 0<br />description = "management ingess"<br />direction = "INGRESS"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 65         | init\_config                        | Init config that nZTA will pickup while deployment. This value needs to be taken from the init file downloaded from the nZTA controller interface as explained in admin guide section “Downloading Metadata for Oracle Cloud Platform”.                                                                                                                                                                                                                                                                                                                       | init\_config = "PHB1bHNlLWNvbmZpZz48cHJpbWFyeS1kbnM+OC44LjguODwvcHJpbWFyeS1kbnM+PHNlY29uZGFyeS1kbnM+OC44LjQuNDwvc2Vjb25kYXJ5LWRucz48ZG5zLWRvbWFpbj5wc2VjdXJlLm5ldDwvZG5zLWRvbWFpbj48Y2VydC1jb21tb24tbmFtZT5za3JuLW9jaS5nLmUyZTIuZS5qdW5pcGVyLnB6dC5kZXYucGVyZnNlYy5jb208L2NlcnQtY29tbW9uLW5hbWU+PGFjY2VwdC1saWNlbnNlLWFncmVlbWVudD55PC9hY2NlcHQtbGljZW5zZS1hZ3JlZW1lbnQ+PGNvbmZpZy1kb3dubG9hZC11cmw+J2h0dHBzOi8vZTJlMi5qdW5pcGVyLnB6dC5kZXYucGVyZnNlYy5jb20vYXBpL2dhdGV3YXlzLzBjYTNlNmUwLWZmMTItNDUxNy1hYTYzLWM5NjY5MWUzNDMzYi9vcmNoZXN0cmF0aW9uL2luaXRpYWwtY29uZmlnP3Q9Z0FBQUFBQmstQUFmYXIwYjgtNXowMXo4aVZSS1VBUTVIVURYaHJQcnFxcWZQc1JPY0pjS0pjQUZTQnhWZGFLbTRnNDhSVW53bTY3REFtWUlwQWp2c2JEWGUzcnA1X2VmU3Joc1lSWTM1SU96WmE3dlZsaDRXalNSQ3ZXa3JFVkVVek5mOTdqeDl1T1A1VktxQmdaN3NhLV93SUdkVnNBcUc3OWl4TTU2WVJXblYzc21NTm5maFhfNUxDTkFTYmV1T3BKWk5qNXpYWDdOa2Y5STZlWUctUWI0aHRENzNOZnZyYjhzNmRYZGo0WUlIaXItdXA0YnJ5d1I0dUdiVThuZ20zR3ZWanFPakRfbGJSYkFsT2VJdXpOMUJGaWpDeXhVc09nZDkwbmVRdkppUHdMc3pJLUJ1TW5FRktnVG1pX1RZTUFmY1E4YTM5MmRFUlQ1OVhWM3p4QkRvaklQQ1l1RlNtbExCd2NKckRjZC1oTVMwSmpxYUE1NHhLMDNsMDdMTHBQZ2ZrMmFOeWhBSHR4QUIyVFlEUDUtcV9iOFdRa2pCZXNhVmh5bkVRX0RkV0JoNGotMUF4TT0nPC9jb25maWctZG93bmxvYWQtdXJsPjxhcHBsaWFuY2UtaWQ+MGNhM2U2ZTBmZjEyNDUxN2FhNjNjOTY2OTFlMzQzM2I8L2FwcGxpYW5jZS1pZD48Y29udHJvbGxlci1ob3N0bmFtZT5lMmUyLmp1bmlwZXIucHp0LmRldi5wZXJmc2VjLmNvbTwvY29udHJvbGxlci1ob3N0bmFtZT48Y29udHJvbGxlci1lbnJvbGxlZC1ob3N0bmFtZT5lMmUyLmUuanVuaXBlci5wenQuZGV2LnBlcmZzZWMuY29tPC9jb250cm9sbGVyLWVucm9sbGVkLWhvc3RuYW1lPjxkbnMtc2VhcmNoLWRvbWFpbj5wc2VjdXJlLm5ldDwvZG5zLXNlYXJjaC1kb21haW4+PGNvbm5lY3QtdmlhLW1nbXQtaW50ZXJmYWNlPm48L2Nvbm5lY3QtdmlhLW1nbXQtaW50ZXJmYWNlPjwvcHVsc2UtY29uZmlnPg==" |
| 66         | lb\_display\_name                   | Display name of the load balancer that should be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | lb\_display\_name = "external\_lb\_name"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 67         | listener\_display\_name             | Display name of the listener that should be associated with the loadbalancer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | listener\_display\_name = \["external\_ls\_name\_443" , "external\_ls\_name\_80"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 68         | bs\_display\_name                   | Display name of the backend sets that should be associated with the loadbalancer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | bs\_display\_name = \["external\_bs\_name\_443","external\_bs\_name\_80"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 69         | external\_lb\_id                    | OCI id of the external loadbalancer                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | external\_lb\_id = "ocid1.networkloadbalancer.oc1.ap-hyderabad-1.amaaaaaatgkbhxyanzrjec4irpjuumytyuk5qugcuatjc2oiejpjcvo6hlaa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 70         | ports                               | Load balancer ports for the listener and backendsets. The orfer of port number should be matching the order mentioned in listener and backend set configurations listener\_display\_name andbs\_display\_name                                                                                                                                                                                                                                                                                                                                                 | ports = \[443,80]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 71         | bs\_policy                          | Backend set policy that should be used for traffic distribution in load balancer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | bs\_policy = "FIVE\_TUPLE"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 72         | protocol                            | TCP is only protocol supported for load balancer configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | protocol = "TCP"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

### Creating a VM Instance of the Uploaded OCI Image Using any Other Methods

Deploy a VM with nZTA Gateway image uploaded to the OCI, with following requisites:

1. Configure 2 nic’s in the order Internal, External, if the Management port is not required for the nZTA Gateway deployment.
2. Configure 3 nic’s in the order Internal, External and Management. If management port is configured for the nZTA Gateway deployment.
3. Ensure custom metadata “pulse-config” is configured for the VM. The value of pulse-config metadata needs to be taken from the init file downloaded from the nZTA Controller interface as explained in admin guide section [Downloading Metadata for Oracle Cloud Platform](docId\:odDr4Z3VrHMCgVhHAWv7j).
4. Ensure internal NIC can access the controller present in the azure cloud and application resources.
5. Ensure external NIC public ip is reachable by the ISAC clients over the port 443.
6. Ensure management NIC can access the controller present in the azure cloud , if management port is enabled for controller communication.
7. Ensure load balancer ip is reachable by the ISAC clients over port 443, if load balancer is used for gateway deployment.
8. Recommended Firewall rules:
   - Internal - INGRESS (TCP: 6667), EGRESS (TCP: ANY, UDP: ANY)
   - External - INGRESS (TCP: 443)
   - Management - INGRESS (TCP: 6667), EGRESS (TCP: ANY, UDP: ANY)

## Upgrading Gateways

*Ivanti* periodically creates and releases new Gateway software versions to address updates and issues, and to improve performance. As new version packages become available, you can trigger an upgrade for your Gateways through the *Controller* to take advantage of the updates available in the new version. Gateway updates can be applied manually, or, in the case of ungrouped Gateways, applied at a scheduled time.

The **Installation Packages** page displays a list of the available Gateway installation packages and controls the update schedule. To trigger a manual upgrade for a specific Gateway or Gateway Group, use the **Gateways Overview** page (see [Checking a Current Gateway Version and Applying an Individual Update](docId\:odDr4Z3VrHMCgVhHAWv7j)).

:::hint{type="info"}
The upgrade process requires a Gateway instance to become unavailable for a short time while the upgrade package is applied. *Ivanti* recommends performing Gateway upgrades ONLY at a time of least impact to your services.
Gateways that are part of a group (for high availability) can be safely upgraded provided the remaining group members remain connected and available.
:::

:::hint{type="info"}
Upgrading the ZTA Gateway to the versions 22.7R1 or 22.6R1.8 or 22.5R1.7 is recommended for the ZTA Controller version 22.7R1. Please be advised that there is no download package option available for versions 22.6R1.8 and 22.5R1.7. As an alternative, ZTA Gateways with the versions 22.5R1 or 22.6R1.2 can be downloaded and subsequently upgraded to the versions 22.5R1.7, 22.6R1.8 and 22.7R1.
:::

To view the list of available Gateway installation packages and to configure a update schedule:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Administration** icon, then select **Upgrade > Installation Packages**.
   The *Installation Packages* page appears.
3. Click the **Gateways** tab.
   The list of available Gateway installation packages is displayed:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/uF1pT87BE8Mofcgyse4pk_gatewayinstallpkgs.png" position="flex-start" size="80" width="1321" height="619" initialPath="img/gatewayinstallpkgs.png" githubPath="img/gatewayinstallpkgs.png" showCaption="false"}

View a list of available Gateway installation packages and set a schedule for upgrades
Use the following controls to set the Gateway upgrade policy:

:::Paragraph{listStyleType="disc" indent="2"}
**Always auto update to the latest version**: Update your Gateways to the latest available version according to the defined maintenance window.
:::

:::Paragraph{listStyleType="disc" indent="2"}
**I will choose the version**: Select a specific package from the list of available packages to be applied to your Gateways according to the defined maintenance window.
:::

:::Paragraph{listStyleType="disc" indent="2"}
**Do not set a default version**: Do not automatically schedule an update, and leave your Gateways running the current version.
:::

4. To set the default maintenance window for Gateway updates, click **SET MAINTENANCE WINDOW**.
   The Maintenance Window dialog appears:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/0DPUO55LZt07ETOCdBztb_gatewaymaintenancewindow.png" alt="Set the default maintenance window for Gateways" position="flex-start" size="75" width="748" height="563" initialPath="img/gatewaymaintenancewindow.png" githubPath="img/gatewaymaintenancewindow.png" showCaption="false"}

Set the default maintenance window for Gateways

:::Paragraph{indent="1"}
Use the settings provided to configure your maintenance window, during which your non-grouped Gateways are updated to the selected package version. *Ivanti* recommends setting this at a time of least convenience to your services.
:::

:::hint{type="info" indent="1"}
If a scheduled update does not complete within the maintenance window, it continues at the next available maintenance window. However, if a scheduled update fails, try updating the Gateway manually (for more information, see [Checking a Current Gateway Version and Applying an Individual Update](docId\:odDr4Z3VrHMCgVhHAWv7j)).
:::

## Checking a Current Gateway Version and Applying an Individual Update

To check the current version for a Gateway, and to apply an update:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Select the required Gateway from the list.
   The *Gateways Overview* page appears. The summary at the top of the page displays details pertaining to this Gateway, including the current version:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/ANQkmjkhR5zFacaX_GHAG_gatewaysummarybar.png" alt="Viewing the current Gateway version" position="flex-start" size="80" width="1059" height="514" initialPath="img/gatewaysummarybar.png" githubPath="img/gatewaysummarybar.png" showCaption="false"}

Viewing the current Gateway version

4. Click the context menu icon at the top-right to access the Edit options applicable to the selected Gateway:
   If an update is available for this Gateway, a corresponding link is displayed in the drop-down menu:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/Y-yEpOXQPyMNnv6ter-br_gatewayupgrademenuopt.png" alt="Viewing Gateway version upgrade options" position="flex-start" size="29" width="292" height="366" initialPath="img/gatewayupgrademenuopt.png" githubPath="img/gatewayupgrademenuopt.png" showCaption="false"}

Viewing Gateway version upgrade options

:::hint{type="info"}
In some cases, there might be more than one version available. Select the version you want, or contact your support representative for details.
:::

5. To start the upgrade, click the **Upgrade to \<version>** link.

:::hint{type="info"}
An upgrade task is added in the **Tasks** page for this Gateway, with a status of "Pending". As the task becomes due, the upgrade process starts and the task status changes to "In Progress". The status description describes the current phase of the upgrade, *Downloading*, *Installing*, or *Rebooting*, together with the percentage complete.

During the first two phases, your Gateway remains operating on the current version and continues to serve traffic. Then, in the reboot phase, the Gateway becomes unavailable for a short time.

After the reboot is complete, the Gateway automatically re-establishes connection to the *Controller*. If the procedure is successful, the upgrade task is marked with a status of "Success" and the new software version is displayed in the Gateway summary in the **Gateways Overview** page.

The time taken for an upgrade to complete is based on factors such as the number of previous pending tasks and network connection speed. Check on progress using the status description or through the host platform management console.
:::

:::hint{type="info" indent="1"}
The *Controller* UI displays the upgrade phase progress indicator (downloading, installing or rebooting) only for Gateway upgrades from base version 21.2 upwards. For base Gateway versions earlier than 21.2, an indication of the current progress is available only from the host platform management console.
:::

To troubleshoot issues related to upgrading your Gateway, view the Event Log (see [Checking the Logs](docId\:odDr4Z3VrHMCgVhHAWv7j)). Furthermore, if a Gateway fails to initiate a reboot at the end of the upgrade process, but is still accessible, check the log file on the Gateway instance using the following steps:

1. Use `ssh` to access the Gateway instance command line.
2. Locate and open the file `/tmp/doUpgrade.log`.

## Rolling Back a Gateway to a Previous Version

Your *ZTA Gateway*s can be rolled back to a previously-installed version through the Tenant Admin Portal. You might want to return to an earlier version if, for example, you encounter an unforeseen issue with a newly-upgrading Gateway instance, or for testing purposes.

You can roll back a Gateway version only where that Gateway instance has been previously upgraded through the Tenant Admin Portal, and only to the previously-installed version.

To roll back a Gateway to an earlier version:

1. Log into the *Controller* as a Tenant Admin, see [Logging in as a Tenant Administrator](docId\:qAQLPFWfOt_GYC0QQw64z).
2. From the *nZTA* menu, click the **Secure Access** icon, then select **Manage Gateways > Gateway List**.
   The *Gateways List* page appears, showing the full list of Gateway Groups and standalone Gateways currently configured on the *Controller*.
3. Select the required Gateway from the list.
   The *Gateways Overview* page appears. The summary at the top of the page displays details pertaining to this Gateway, including the current version.
4. Click the context menu icon at the top-right to access the Edit options applicable to the selected Gateway:
   If a rollback function is available for this Gateway, a corresponding link is displayed in the drop-down menu:

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/5KC-LqkvsttqVflaEXnW7_gatewayrollbackmenuopt.png" alt="Viewing the Gateway version rollback option" position="flex-start" size="80" width="2006" height="644" initialPath="img/gatewayrollbackmenuopt.png" githubPath="img/gatewayrollbackmenuopt.png" showCaption="false"}

Viewing the Gateway version rollback option

5. Select the rollback link.

:::Paragraph{indent="1"}
A rollback task is added in the **Tasks** page for this Gateway, with a status of "Pending". As the task becomes due, the rollback process starts and the task status changes to "In Progress".
:::

:::Paragraph{indent="1"}
After the reboot is complete, the Gateway automatically re-establishes connection to the *Controller*. If the procedure is successful, the upgrade task is marked with a status of "Success" and the new software version is displayed in the Gateway summary in the **Gateways Overview** page.
:::

:::Paragraph{indent="1"}
As the process starts, your Gateway remains operating on the current version and continues to serve traffic. Then, after the earlier version is reinstated, the Gateway reboots and becomes unavailable for a short time.
:::

## Configuring ZTA Gateway Connection Control for Trusted Networks

nZTA Gateway can sometimes be bypassed so that users can connect directly to specific applications. For example, you might want users to bypass nZTA for a specific application if they are connected directly to your trusted corporate network. nZTA Gateway tunnel creation will be bypassed on the endpoint since resource access will go through the physical interface.

In the Gateway Selector, a network tag must be created for Known Networks (On-Prem) and this network tag must be marked to bypass the default gateway in the Gateway Selector so that all traffic from known network will be bypassed.

:::hint{type="info"}
Device Posture evaluation is not done when nZTA Gateway is bypassed.
:::

:::hint{type="info"}
No analytics data will be displayed on any dashboards when nZTA Gateway is bypassed.
:::

To configure bypass settings for nZTA:

4. Create Network Tags for Known Network. For example, On-Prem.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/CvHrCdTFjjIPFoUhMUVxY_gwbypass1.png" position="flex-start" size="80" width="1414" height="777" initialPath="img/gw_bypass1.png" githubPath="img/gw_bypass1.png" showCaption="false"}

5. Click **Manage Gateways**, under Gateway Selectors, enter the Gateway information, Add Rules for Recognized Networks.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/0dgKYpwHZgCaeHmSOprJe_gwbypass2.png" position="flex-start" size="80" width="958" height="694" initialPath="img/gw_bypass2.png" githubPath="img/gw_bypass2.png" showCaption="false"}

6. Specify the default gateways to be skipped if needed and click **Update**. The traffic will be bypassed through nZTA Gateway and it will be passed through physical interface.

::Image[]{src="https://api.archbee.com/api/optimize/wxZG1KsS4xNkVZYoiu_o9/U0QABu43jW7aNLWcSxsYv_gwbypass3.png" position="flex-start" size="80" width="1101" height="744" initialPath="img/gw_bypass3.png" githubPath="img/gw_bypass3.png" showCaption="false"}

