VMware NSX Advanced Load Balancer Admin Guide
VMware NSX Advanced Load Balancer Admin Guide
Administration Guide
You can find the most up-to-date technical documentation on the VMware website at:
https://docs.vmware.com/
VMware, Inc.
3401 Hillview Ave.
Palo Alto, CA 94304
www.vmware.com
©
Copyright 2023 VMware, Inc. All rights reserved. Copyright and trademark information.
VMware, Inc. 2
Contents
3 Licensing 87
NSX Advanced Load Balancer Editions 87
NSX Advanced Load Balancer Enterprise with Cloud Services Edition 90
NSX Advanced Load Balancer-Enterprise Edition 90
NSX Advanced Load Balancer-Basic Edition 108
NSX Advanced Load Balancer Essentials for Tanzu 114
VMware, Inc. 3
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 4
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 5
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 6
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 7
About This Guide
The NSX Advanced Load Balancer Administration Guide provides information about configuring
and managing networking for VMware NSX Advanced Load Balancer (formerly known as Avi
Vantage). This guide helps you set up user accounts and manage roles and permissions, and
understand how to protect the network from unauthorized users. This guide also discusses how
to control, manage, and monitor applications within NSX Advanced Load Balancer and control
user access to objects. Further, you can schedule periodic backups and restore data in case of an
unlikely disaster.
Intended Audience
This information is intended for administrator users who want to configure NSX Advanced Load
Balancer. The information is written for experienced system administrators who are familiar with
virtual machine technology, networking, and security operations.
VMware, Inc. 8
Web Interface Access Settings
1
Access Settings allows users to view or edit settings mainly related to accessing the NSX
Advanced Load Balancer Controller from the outside.
VMware, Inc. 9
VMware NSX Advanced Load Balancer Administration Guide
n Enable HTTP Access to System: It allows HTTP access to the NSX Advanced Load Balancer
web interface and REST API. This option is insecure and not recommended.
VMware, Inc. 10
VMware NSX Advanced Load Balancer Administration Guide
n Enable HTTPS Access to System: Enables SSL/TLS access to NSX Advanced Load Balancer
GUI and REST API. When the option is enabled, the SSL Profile and SSL/TLS Certificate fields
must be populated.
n Redirect HTTP to HTTPS: When HTTP Access to System is disabled, enabling this option will
automatically redirect administrators to the HTTPS interface for the web interface and API.
n SSL Profile: Select an SSL Profile to complete the HTTPS Access. This profile is from
Templates > Security > SSL Profiles, which is also referenced by SSL-enabled virtual services.
n SSL/TLS Certificate: Select an SSL certificate from SSL/TLS Certificate drop-down menu to
present to clients connecting to the web interface. RSA and Elliptic Curve (EC) are supported.
n Allow Basic Authentication: Uses HTTP to prompt the NSX Advanced Load Balancer user
for a username and password and to return the values to NSX Advanced Load Balancer for
authentication and authorization.
n Allowed Ciphers: List of the ciphers supported for HTTP basic authentication.
n Allowed HMACs: List of the HMACs supported for HTTP basic authentication.
n SNMP: Select None, SNMP V2, or SNMP V3 as required. The string to be furnished by
an external SNMP v2c manager wishing to query the SNMP daemon running on the NSX
Advanced Load Balancer Controller leader. For more information, see SNMP Support in NSX
Advanced Load Balancer.
The Client Management Access to NSX Advanced Load Balancer Controller lists four different
client types that are authorized system users:
1 SSH Clients
Note Enter the controller management IPs for HTTP(s) settings using the field Allowed External
HTTP(S) Clients. Internal Analytics APIs will fail if the management IPs of the cluster nodes are not
included in the list of IPs allowed for external HTTP(s).
Each one can flexibly specify clients by IP address and/or string/IP groups.
The following options govern two Banners that NSX Advanced Load Balancer will display if set:
n Message of the Day: Displayed to users after a successful login, be it through the UI, CLI, or
SSH.
VMware, Inc. 11
VMware NSX Advanced Load Balancer Administration Guide
NSX Advanced Load Balancer supports the configuration of the following types of management
greeting messages:
A greeting that appears to users who log in through the NSX Advanced Load Balancer UI,
SSH, or CLI.
Login Banner
Message that appears before login through the web interface or CLI.
2 Click the edit icon next to System Settings to display the EDIT SYSTEM SETTINGS pop-up
window.
3 In the Message of the Day and Login Banner fields, enter the text messages to be displayed
after login through the web interface, SSH, or CLI.
4 Click Save.
The changes done in the previous steps will reflect in the next login session. Logout from the NSX
Advanced Load Balancer UI, and login again to see the changes reflected as shown below
VMware, Inc. 12
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 13
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 14
CLI Access Settings
2
When accessing the NSX Advanced Load Balancer CLI, an administrator needs to SSH through
port 22 to the IP address of an NSX Advanced Load Balancer Controller or the cluster IP.
NSX Advanced Load Balancer Controller has two levels of CLI access. The first level of access
is when the administrator connects to the NSX Advanced Load Balancer Controller and logs in,
and they are granted access to a Linux Bash shell. The admin can then access the NSX Advanced
Load Balancer CLI shell through a procedure in the Access the Controller CLI section. In some
authentication modes, non-admin accounts cannot access Linux, and are instead forwarded
directly to the shell.
n CLI Options
n CLI and Shell Prompts Available for NSX Advanced Load Balancer
n Accessing NSX Advanced Load Balancer Linux CLI as a Non-Admin User Using an SSH client
n Adding Required HMAC to the Allowed HMACs Lists using NSX Advanced Load Balancer UI
n Certificates
username@avi:~$ | shell
: > | bash
VMware, Inc. 15
VMware NSX Advanced Load Balancer Administration Guide
username@avi:~$ | exit
Note The SE can be accessed using CLI. However, this is not recommended except for
troubleshooting.
CLI Options
NSX Advanced Load Balancer can be managed through GUI, RESTful API, or CLI. Both the GUI
and CLI are built on top of the API, which means every CLI command maps to a corresponding
API call (or calls) to be run.
Conversations with the first two entities are common. Conversations of the third kind
are infrequent and typically undertaken by customer support personnel for troubleshooting
purposes.
The one argument (user@hostname) passed to the ssh command is a combination of admin
and the Controller’s IP address, 10.144.130.195. Every NSX Advanced Load Balancer Controller
recognizes the admin user; others can be defined if necessary. The response to the password
prompt is not echoed. However, in this example, it is represented by XXXXX.
The bash command-line interpreter gives access to the Controller’s underlying operating
system and file system. One use case would be to analyze various logs in the /opt/avi/log
and /var/log/upstart directories.
$>ssh [email protected]
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
Management: 100.65.9.10/20 UP
Gateway: 100.65.15.254 UP
[email protected]@100.65.9.10
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
VMware, Inc. 16
VMware NSX Advanced Load Balancer Administration Guide
Management: 100.65.9.10/20 UP
Gateway: 100.65.15.254 UP
[email protected]@100.65.9.10
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
Management: 100.65.9.10/20 UP
Gateway: 100.65.15.254 UP
[email protected]'s password:
The copyrights to certain works contained in this software are
owned by other third parties and used and distributed under
license. Certain components of this software are licensed under
the GNU General Public License (GPL) version 2.0 or the GNU
Lesser General Public License (LGPL) Version 2.1. A copy of each
such license is available at
http://www.opensource.org/licenses/gpl-2.0.php and
http://www.opensource.org/licenses/lgpl-2.1.php
Last login: Wed Apr 5 16:24:41 2023 from 100.65.1.5
admin@100-65-9-10:~$
Enter the NSX Advanced Load Balancer shell command-line interpreter by typing the shell
command in response to the bash prompt and input the login credentials as follows:
shell
Login: admin
Password: XXXXX
In response to the shell prompt, press the Tab key twice to reveal the commands specific to
NSX Advanced Load Balancer. In the CLI snippet shown below, TABTAB represents the Tab key
pressed twice.
TABTAB
attach forcedelete reprogram terminal
clear gslb resync test
configure import retryplacement upgrade
controller migrate rollback upload
convert nsx rotatekeys upload_to_avi
debug passwd scalein verifylogin
delete reboot scaleout vinfra
do rediscover show watch
exec redistribute switchover
export reimage switchto
The show command helps analyze various issues and collect information. For example, show
virtualservice my-vs displays essential data about the virtual service named my-vs.
VMware, Inc. 17
VMware NSX Advanced Load Balancer Administration Guide
For insight into what the aforementioned commands do, see CLI Top-Level Commands.
To exit the NSX Advanced Load Balancer shell and return to the Controller’s bash prompt, type
bash.
bash
n While typing a command, pressing the TAB key auto-completes the command. Double TAB
returns a list of available options for the command in the left column. Most options include a
brief help description, which is shown in the right column.
export configuration
export configuration serviceengine
export serviceengine ova file from controller virtualservice
export virtual service
n Commands or parameters might require multiple words or options. If there is only a single
word or option, pressing TAB auto-completes the next word in the command.
n The up-arrow key cycles through and enables the reuse of previously run commands.
n | grep address
n | more
VMware, Inc. 18
VMware NSX Advanced Load Balancer Administration Guide
Sub-mode Navigation
Many NSX Advanced Load Balancer CLI commands contain sub-modes, which are nested sub-
sections of the current command.
To enter the sub-mode, enter the relevant command. Within the context of a sub-mode, changes
are not committed until explicitly saved. Type save to exit the sub-mode while committing
changes.
To exit the sub-mode without saving changes, type cancel. When in a sub-mode or a nested
sub-mode, the command prompt will change to reflect the current sub-mode.
It is possible to enter a command which enters a sub-mode while also adding applicable
flags. This will simultaneously navigate into the sub-mode and run the command. Subsequent
commands within the sub-mode do not use the initial sub-mode command.
VMware, Inc. 19
VMware NSX Advanced Load Balancer Administration Guide
API-echoed output may be enabled for every command run during a single CLI session by typing
the terminal display_api_details command, as shown below:
terminal display_api_details
show serviceengine
REST API Request
Method: GET
API: /api/serviceengine?owned_by_controller=True&join_subresources=runtime
+---------------------------+---------------+------------------+---------------+------------+
| Name | SE Group | Mgmt IP | Cloud | Oper State |
+---------------------------+---------------+------------------+---------------+------------+
| se3 | glsbSEG | 192.168.38.56 | Default-Cloud | OPER_UP |
| se1 | Default-Group | 192.168.38.52 | Default-Cloud | OPER_UP |
| se2 | Default-Group | 192.168.38.53 | Default-Cloud | OPER_UP |
+---------------------------+---------------+------------------+---------------+------------+
The CLI shell provides access to the NSX Advanced Load Balancer Controller through a PC client
version of the Controller’s CLI. Two versions of the CLI shell installation package are available:
n avi_shell-18.2.1-9010.tar.gz (or later) – Can be used with all infrastructure types. For installing
this version of the CLI shell package, continue referring to the later Install the CLI Shell on a
Ubuntu Docker Container.
Note The CLI packages are available on the VMware customer portal, below the NSX Advanced
Load Balancer Controller download option for each version.
VMware, Inc. 20
VMware NSX Advanced Load Balancer Administration Guide
For more information on VMware's customer portal, see VMware CUSTOMER CONNECT.
OS Versions Supported
Versions of the CLI shell available for Linux and Mac are as follows:
n Mac
Prerequisites
The NSX Advanced Load Balancer CLI shell requires the following software:
3 NSX Advanced Load Balancer CLI shell installation file: From AWS S3.
The following sections provide steps for installing the NSX Advanced Load Balancer CLI shell.
VMware, Inc. 21
VMware NSX Advanced Load Balancer Administration Guide
After logging in, NSX Advanced Load Balancer CLI commands can be entered into the shell. The
show version controller command in the following example displays the NSX Advanced Load
Balancer version:
deactivate
$> avi_shell/bin/avi_shell
Procedure
VMware, Inc. 22
VMware NSX Advanced Load Balancer Administration Guide
virtualenv avi_shell
New python executable in /home/user/git/clean/avi-dev/build/avi_shell/bin/python
Installing setuptools, pip, wheel...done.
cd avi_shell/
source ./bin/activate
Note For installing a CLI shell to manage an OpenStack write access mode deployment with
Keystone support enabled, see Install the LBaaS CLI Shell (OpenStack with Keystone) topic in
the VMware NSX Advanced Load BalancerInstallation Guide.
n Quick cut-and-paste to make modifications or resolve some issues with the CLI
In the linux_command_line mode, the entire object is presented in the form of --parameter
value, where each parameter represents a field in the object specified in a fully qualified path. An
example of this is:
VMware, Inc. 23
VMware NSX Advanced Load Balancer Administration Guide
80 --graceful_disable_timeout 1 --connection_ramp_duration 10 --
max_concurrent_connections_per_server 0 --servers.1.ip 1.1.1.1 --servers.1.hostname
1.1.1.1 --servers.1.enabled True --servers.1.ratio 1 --servers.1.verify_network
False --servers.1.resolve_server_by_dns False --servers.1.static False --
servers.1.rewrite_host_header False --servers.2.ip 2.2.2.2 --servers.2.hostname
2.2.2.2 --servers.2.enabled True --servers.2.ratio 1 --servers.2.verify_network
False --servers.2.resolve_server_by_dns False --servers.2.static False --
servers.2.rewrite_host_header False --servers.3.ip 3.3.3.3 --servers.3.hostname
3.3.3.3 --servers.3.enabled True --servers.3.ratio 1 --servers.3.verify_network
False --servers.3.resolve_server_by_dns False --servers.3.static False
--servers.3.rewrite_host_header False --server_count 3 --lb_algorithm
lb_algorithm_least_connections --inline_health_monitor True --use_service_port False
--capacity_estimation False --server_auto_scale False --vrf_ref global --
fewest_tasks_feedback_delay 10 --enabled True --request_queue_enabled False
--request_queue_depth 128 --host_check_enabled False --sni_enabled True --
rewrite_host_header_to_sni False --rewrite_host_header_to_server_name False --tenant_ref
admin --cloud_ref Default-Cloud
Note The index starts with 1 in the CLI but is converted to 0 based on the API interactions.
Some objects are relatively large, so interacting with the CLI with all these parameters specified
in a single line becomes cumbersome. To address this, use multi_line, the CLI setting to change
the Linux command output. This enables the CLI interaction one parameter per line.
show pool p2
--uuid pool-7fce112f-c340-4c31-8c65-95e52f4b85ba
--servers.1.ip 3.3.3.3
--servers.1.hostname 3.3.3.3
--servers.2.ip 2.2.2.2
--servers.2.hostname 2.2.2.2
--servers.3.ip 1.1.1.1
--servers.3.hostname 1.1.1.1
--server_count 3
--tenant_ref admin
VMware, Inc. 24
VMware NSX Advanced Load Balancer Administration Guide
--servers.1.ip 3.3.3.3
--servers.1.hostname 3.3.3.3
--servers.2.ip 2.2.2.2
--servers.2.hostname 2.2.2.2
--servers.3.ip 1.1.1.1
--servers.3.hostname 1.1.1.1
--servers.4.ip 4.4.4.4
--servers.4.hostname 4.4.4.4
--tenant_ref admin
END
YAML was chosen for presentation as it allows an easier interaction without having to consider
issues about the syntax such as commas, quotes, curly braces, and so on. It is easier to work
with YAML primarily for cut-and-paste and incremental changes to an existing object. Multi-line
configuration of object uses a Bash heredoc style. You can find more information on this under
https://en.wikipedia.org/wiki/Here_document.
VMware, Inc. 25
VMware NSX Advanced Load Balancer Administration Guide
Following are top-level commands shown when pressing the Tab twice from the shell:
Command Description
VMware, Inc. 26
VMware NSX Advanced Load Balancer Administration Guide
Command Description
VMware, Inc. 27
VMware NSX Advanced Load Balancer Administration Guide
attach
Description Connect to a remote Controller or SE. Similar to SSH.
configure
Description Create or modify a new or existing object, such as a virtual service, Pool, or Profile.
Top-Level Flags:
VMware, Inc. 28
VMware NSX Advanced Load Balancer Administration Guide
convert
Description Import and convert a configuration from non-VMware load balancers. Supports conversion from F5
BIG-IP Local Traffic Manager configuration. Imported Virtual Services start in a disabled state to avoid
IP conflicts.
Top-Level Flags:
copy
Description Copy a file, such as a packet capture or tech-support file.
Top-Level Flag:
debug
Description Change debug settings or perform packet captures.
Top-Level Flags:
VMware, Inc. 29
VMware NSX Advanced Load Balancer Administration Guide
delete
Description Delete an object. Some objects may have dependencies that must be resolved first.
Top-Level Flags:
VMware, Inc. 30
VMware NSX Advanced Load Balancer Administration Guide
do
Description Execute a show command without exiting the current location or sub-model.
Top-Level Flags:
show Show detailed information and stats for any NSX Advanced Load Balancer object.
export
Description Back up the system configuration or a single virtual service configuration.
Top-Level Flags:
configuration Export the entire NSX Advanced Load Balancer configuration in JSON format.
serviceengine Export the SE OVA file from Controller for manual install.
virtualservice Export a specific virtual service configuration file including child objects.
import
Description Import a backed up (exported) complete or virtual service specific configuration.
Top-Level Flags:
initialplacement
Description Move a virtual service using manual placement mode to a different SE.
Example initialplacement
virtualservice Test-VS
servicengine Avi-se-arjni
Top-Level Flags:
migrate
Description Move a virtual service using manual placement (No Access or Read Access) mode to a different SE.
Example migrate
virtualservice Test-VS
serviceengine Avi-se-arjni
Top-Level Flags:
from_se_ref Specify the name of the source SE that has the virtual service.
to_host_ref An option used with to_new_se, specifying the host upon which to create the new SE.
VMware, Inc. 31
VMware NSX Advanced Load Balancer Administration Guide
purge
Description Remove a file, such as a packet capture or tech-support file.
Top-Level Flags:
rebalance
Description In auto scale mode, sets the frequency upon which the Controller will Inspect an SE group to see
if a virtual service to SE mapping mudt be adjusted, potentially resulting in a scale in, scale out, or
migration.
Top-Level Flags:
reboot
Description Reboot part or all of the NSX Advanced Load Balancer system. It can also delete configuration. With
no flags specified, all Controllers and SEs are rebooted.
Example reboot
Top-Level Flags:
clean Reset the NSX Advanced Load Balancer system's configuration and reboot the cluster. Consider
making a backup first.
serviceengine Reboot a specific SE. Virtual service disruption will depend on the high availability settings for the SE
group.
rediscover
Description VMware-specific: Initiate discovery of networks and VMs.
Top-Level Flags:
restart
Description Disable then immediately re-enable a virtual service.
Top-Level Flags:
VMware, Inc. 32
VMware NSX Advanced Load Balancer Administration Guide
scalein
Description Reduce by one the number of SEs handling a virtual service in manual placement mode. There must be
a minimum of one SE.
Top-Level Flags:
scalein_primary Migrate from the primary SE and discontinue use of the SE for this virtual service.
scaleout
Description Increase by one the number of SEs handling a virtual service in manual placement.
Top-Level Flags:
to_host_ref An option used with to_new_se, specifying where to create the new SE.
show
Description Show detailed information and stats on any NSX Advanced Load Balancer object.
Top-Level Flags:
VMware, Inc. 33
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 34
VMware NSX Advanced Load Balancer Administration Guide
switchto
Description Switch into a different tenant.
Top-Level Flags:
terminal
Description Alter the shell's terminal settings.
Top-Level Flags:
length Number of rows to show for pagination output. Greater than will pipe to more. Choose 0 for no
pagination.
session_timeout Alter the default 15 min timeout to keep an idle terminal session open.
unhide Commands show additional flags. It is not recommended for casual use.
upgrade
Description Initiate an upgrade of the NSX Advanced Load Balancer system. This may be done passively (by
migrating each SE while upgrading) or disruptively (fast, but it will terminate existing client connections
then begin the upgrade).
Top-Level Flags:
VMware, Inc. 35
VMware NSX Advanced Load Balancer Administration Guide
upload
Description Generate and upload a tech-support debug file to VMware.
Top-Level Flags:
exclude_logs Exclude client log files (virtual service logs), which could be quite large.
verifylogin
Description Validate the username, password, and path to a remote orchestrator such as vCenter, APIC, or
OpenStack.
Example verifylogin
vcenter username
vcenter_url 10.1.1.1/login
Top-Level Flags:
watch
Description Updates the result of a command such as show every few seconds.
Example watch show pool Test-pool server detail | grep -e 'ip\| open_conns'
Top-Level Flags:
1 The Pool
2 The VsVIP
VMware, Inc. 36
VMware NSX Advanced Load Balancer Administration Guide
Note The examples below shows only the minimum configuration required to successfully
deploy a new application. Many additional options are available for customizing virtual services
and pools.
VMware, Inc. 37
VMware NSX Advanced Load Balancer Administration Guide
The following commands will delete the .101 server and add a new .102 server to the pool
named Test.
The following commands will enter the sub-mode for the .100 server and disable it.
ip 10.1.1.100 port 80
where
Tenant: admin
+-------+------------+
| Field | Value |
+-------+------------+
| ip | 10.1.1.100 |
| port | 80 |
+-------+------------+
no enabled
+---------+------------+
| Field | Value |
+---------+------------+
| ip | 10.1.1.100 |
| port | 80 |
| enabled | False |
+---------+------------+
save
The configuration may be backed up or moved to another Controller cluster through the CLI. The
exported configuration might be the entire system configuration, a more limited version based on
the access rights of the current user and tenant of the administrator, or a single virtual service
and its child properties.
To export only a single virtual service and its child objects, such as pools, use the virtualservice
flag instead of the configuration flag with the export command.
The following commands will export the configuration to a file named config_export, SCP it to a
remote location, and then return it to the NSX Advanced Load Balancer shell.
pwd
VMware, Inc. 38
VMware NSX Advanced Load Balancer Administration Guide
/home/admin
ls
config_export
scp ./config_export [email protected]:/root
[email protected]'s password:
config_export 100% 232KB 431.8KB/s 00:00
exit
Before starting a configuration import, ensure that all Controller members of the cluster are up
and the cluster leader has the following configuration:
n Admin Account
n Cluster Configuration
You can restore this configuration information to an empty NSX Advanced Load Balancer
Controller. The restoration steps are:
n Deploy three new Controller nodes; the image type (OVA, qcow2, ami) should match that of
the original Controller node from which the configuration was exported.
n Choose one Controller as the leader and go through the initial setup page to enter the initial
setup information and the redundant Controller cluster information.
After these steps, the cluster will return to the same running state as the original one.
VMware, Inc. 39
VMware NSX Advanced Load Balancer Administration Guide
Example: Examples
To export all virtual services and dependencies, use the following command:
To export all objects in tenant t1 and filter out defaulted values, use the following command:
Packet Capture
The NSX Advanced Load Balancer Controller provides a convenient mechanism to capture data
plane traffic processed by SEs. An administrator can initiate a capture command from the
Controller CLI while the actual capture occurs on the SEs. The packet capture is saved in pcap
format on the Controller. The SE captures packets on both the client-side and server-side of the
SE. If a virtual service is scaled across multiple SEs, then all applicable SEs will participate in the
packet capture. The Controller will aggregate the captures and sort the entries according to time.
Once a capture is complete, it is uploaded to a personal computer or other systems for analysis
with an appropriate tool such as tcpdump or Wireshark.
Enter the packet capture sub-mode for the specified virtual service:
Parameters may be defined for the packet capture. By default, the capture is performed within
the context of the selected virtual service, and it is also performed on all SEs handling the virtual
service traffic, including the packets from the client and server sides.
VMware, Inc. 40
VMware NSX Advanced Load Balancer Administration Guide
The debug_ip command enters a sub-mode. This allows multiple IP addresses or IP subnets to
be entered (omit the debug_ip for subsequent entries). Save to commit the desired IPs and
return to the previous menu.
capture
save
+----------------+--------------------+
| Field | Value |
+----------------+--------------------+
| uuid | virtualservice-0-1 |
| name | Test-VS |
| debug_ip | |
| addrs[1] | 10.10.10.10 |
| capture | True |
| capture_params | |
| duration | 0 mins |
| num_pkts | 1000 |
+----------------+--------------------+
Re-enter the packet capture sub-mode and stop an ongoing packet capture:
Export the packet capture to a remote system to view it using tools such as tcpdump or
Wireshark:
VMware, Inc. 41
VMware NSX Advanced Load Balancer Administration Guide
n Either SSH (Secure Shell) to the Controller or access it through the console from an
orchestrator such as vCenter.
n Example: If the Controller’s address is 10.144.130.195, type the ssh command: ssh
[email protected], and when prompted, supply the password for the admin user.
NSX Advanced Load Balancer Controller CLI is used to analyze various logs in the /opt/avi/log
and /var/log/upstart directories.
VMware, Inc. 42
VMware NSX Advanced Load Balancer Administration Guide
n To enter NSX Advanced Load Balancer-specific commands, type the shell command and
furnish credentials.
Shell prompt access is not available for NSX Advanced Load Balancer Service Engines. NSX
Advanced Load Balancer SE’s Linux CLI does not provide the option to run show commands.
n Admin
n CLI
The admin account is the standard administrative account for the system and is maintained as a
locally authenticated account, even in a system configured for remote auth.
The cli account has no password. Any non-admin account must use the account name cli, which
will forward the user through Linux to the NSX Advanced Load Balancer shell. From the shell,
the user must log in through their standard account. Non-admin accounts do not have access to
Linux.
An SSH session to Linux CLI is available only for admin username. Even if a user is configured as
a super-user, the user cannot log in to Linux CLI. Users other than admin, including super-users
(whether local or remote), can only log in using cli@<Avi Controller IP> command.
VMware, Inc. 43
VMware NSX Advanced Load Balancer Administration Guide
If a non-admin user, even if it is configured as a super-user, tries to SSH to NSX Advanced Load
Balancer Controller IP address, the system will return an Access Denied error, as shown below.
Instructions
Follow the steps to SSH into NSX Advanced Load Balancer CLI using a non-admin user account.
n Open an SSH client and use the cli@<Avi Controller IP> command. Replace the NSX
Advanced Load Balancer Controller IP with the IP of the Controller for which access is
required.
n Provide the credentials when prompted for a username. In the below example, a user account
with the username testuser is used, which is also configured as a super-user on NSX
Advanced Load Balancer.
VMware, Inc. 44
VMware NSX Advanced Load Balancer Administration Guide
Login: testuser
Password:
n After providing the password, as shown in the above CLI snippet, you can get access to the
NSX Advanced Load Balancer shell.
[admin:avi-controller]: >
From the NSX Advanced Load Balancer shell prompt, you can run all the show commands and
shell commands.
VMware, Inc. 45
VMware NSX Advanced Load Balancer Administration Guide
avidebuguser@avi-controller-2:/opt$ ls
*avi zookeeper-3.4.6*
avidebuguser@avi-controller-2:/opt/avi/log$ pwd
/opt/avi/log
Additional Information
For more information on NSX Advanced Load Balancer Linux CLI and NSX Advanced Load
Balancer CLI access, see CLI - Linux Command Line Mode and Chapter 2 CLI Access Settings.
By default, NSX Advanced Load Balancer does not allow hmac-sha1-96 for management access
to NSX Advanced Load Balancer Controller and Service Engines. To access the NSX Advanced
Load Balancer Controller through an SSH Client (for example, Putty), which needs to use hmac-
sha1-96, add hmac-sha1-96 to the Allowed HMACs using UI. If there is no entry in the Allowed
HMACs, all the default HMACs are allowed.
3 Click Save.
Once the required HMAC is allowed for the management access to the NSX Advanced Load
Balancer Controller, SSH will be accessible to the various SSH clients. For the list of allowed
HMACs for the management access of the NSX Advanced Load Balancer Controller, see
Restricting the Allowed HMACs.
By default, the NSX Advanced Load Balancer Controller does not restrict the client IP addresses
that are allowed to attempt access to the Controller through its management interfaces. The NSX
Advanced Load Balancer provides a way to define the set of IP addresses allowed to attempt
management access to the Controller.
VMware, Inc. 46
VMware NSX Advanced Load Balancer Administration Guide
Additionally, access through all the management interfaces can be further restricted by explicitly
specifying the ciphers and keyed-hash message authentication codes (HMACs) that are allowed.
To establish a management connection with the Controller through any management interface,
the client must support a cipher and HMAC that are allowed by the Controller.
Note
n When configuring the IP access list for API and SSH, ensure that the Controller nodes can talk
to each other by either placing them on the same subnet or explicitly adding the Controller IP
addresses.
n NSX Advanced Load Balancer does not currently support SSH and System Internal Access
control types if controller IPs are FQDN based.
IP Access Lists
When the configuration is modified to specify allowed IP addresses for accessing specific
management interfaces, the NSX Advanced Load Balancer programs the Linux IP tables on the
NSX Advanced Load Balancer Controller host to allow the specified IP addresses at the network
layer.
Separate IP access lists can be configured for each of the following management interfaces:
n REST API / Web interface (or any script or other means of automation that uses the REST
API)
n SSH daemon
n SNMP
VMware, Inc. 47
VMware NSX Advanced Load Balancer Administration Guide
NSX Advanced
Load Balancer Controller
(or cluster)
REST API
(cmds internally
converted)
API / Web
SSH (CLI) CLI Shell SNMP
Interface
Note NSX Advanced Load Balancer internally converts commands that are entered through
the web interface or the CLI shell into REST API commands. Similarly, the system responses are
converted back into web interface or CLI format when presented in return to the NSX Advanced
Load Balancer user. To restrict IP access through the interfaces, separate IP lists must be entered
for each interface.
n IP address groups
Caution
n When changing the IP access list for the management interface, ensure to include the IP
address in the access list. Else, the management session will end after the change is saved.
n If no IP addresses are added to the access list of the management service, any IP address is
allowed to attempt access to that service.
2 Click the edit icon to open the EDIT SYSTEM SETTINGS pop-up window.
VMware, Inc. 48
VMware NSX Advanced Load Balancer Administration Guide
VMware, Inc. 49
VMware NSX Advanced Load Balancer Administration Guide
3 In the Client Management Access section, configure the fields Allowed SSH Clients, Allowed
CLI Shell Clients, Allowed External HTTP(S) Clients, and Allowed External SNMP Clients as
required, and enter or select the IP addresses that are allowed access.
n Host, range, or subnet: Choose Select From Available or Enter Custom Value to activate
the field, and select or type the address(es). If you are listing multiple addresses, use
commas to delimit them. For entering a range, use a hyphen between the starting
(lowest) and ending (highest) addresses.
n IP Group: Select the IP group (if already configured) or click Create to create the group
(list). Enter the group name and address information and click Save to return to the EDIT
SYSTEM SETTINGS pop-up window.
Note Enter the Controller management IPs for HTTP(s) settings using the field Allowed
External HTTP(S) Clients. Internal Analytics APIs fail if the management IPs of the cluster
nodes are not included in the list of IPs allowed for external HTTP(s).
4 After specifying the allowed client IP addresses for each management service, go to the next
section or click Save to save the changes and close the popup.
n aes128-ctr
n aes256-ctr
n arcfour256
n arcfour128
n aes128-cbc
n 3des-cbc
n blowfish-cbc
n aes192-cbc
n aes256-cbc
Ciphers arcfour128 and arcfour256 are not supported. To restrict access to a subset of these
ciphers, specify the individual ciphers:
n In the Update System Access Settings popup, in the Allowed Ciphers field, enter the cipher
names. The names must be spelled as shown above. Use commas between the names.
VMware, Inc. 50
VMware NSX Advanced Load Balancer Administration Guide
n hmac-md5
n hmac-md5-96
n hmac-sha1
n hmac-sha2-512
1 In the EDIT SYSTEM SETTINGS pop-up window, in the Allowed HMACs field, enter the HMAC
names. The names must be spelled as shown above. Use commas between the names.
2 After updating, click Save to save the changes and close the popup.
In this example, access through the web interface or REST API is restricted to addresses in
the 10.10.0.0/16 subnet, and to IP addresses in the range 3.3.3.1-100. IP access for the other
management services is not included in this output, because IP access has not been explicitly
defined for them.
VMware, Inc. 51
VMware NSX Advanced Load Balancer Administration Guide
"smtp_type": "SMTP_NONE",
"mail_server_port": 25
},
...
"mgmt_ip_access_control": {
"api_access": {
"ranges": [
{
"begin": {
"type": "V4",
"addr": "3.3.3.0"
},
"end": {
"type": "V4",
"addr": "3.3.3.100"
}
}
],
"prefixes": [
{
"ip_addr": {
"type": "V4",
"addr": "10.10.0.0"
},
"mask": 16
}
],
"match_criteria": "IS_IN"
}
},
}
"ssh_ciphers": [
"aes128-ctr",
"aes256-ctr",
"aes192-cbc",
"aes256-cbc"
],
VMware, Inc. 52
VMware NSX Advanced Load Balancer Administration Guide
"ssh_hmacs": [
"hmac-md5",
"hmac-md5-96",
"hmac-sha1",
"[email protected]",
"hmac-sha2-512"
],
}
For more information, see Renew Default (Self-Signed) Certificates on NSX Advanced Load
Balancer.
For more information on how to Change the Default Portal Certificates, see Change the Default
Certificate of the Controller topic in the VMware NSX Advanced Load BalancerConfiguration
Guide.
Certificates
To change the default certificate for the Controller, and import or create a new Controller
certificate.
Procedure
1 Navigate to Templates > Security > SSL/TLS Certificates, click Create and select Controller
Certificate.
3 Navigate to Administration > System Settings, and click the edit icon to edit the System
Settings.
VMware, Inc. 53
VMware NSX Advanced Load Balancer Administration Guide
4 Replace the default or existing certificate with the new certificate in the SSL/TLS Certificate
drop-down menu.
5 Click Save.
Results
Note To avoid any certificate trust issue, make sure that the certificate chain is complete on
the Controller and the client browser. Install the complete certificate chain (the root and the
intermediate certificates) on the Controller and the client browser. Try accessing the Controller
using the UI to confirm it is opening without any error.
Prerequisites
OpenSSL 1.1.x or later.
VMware, Inc. 54
VMware NSX Advanced Load Balancer Administration Guide
n Copy data from the Key and Certificate fields to two new files using the COPY TO
CLIPBOARD option. Name the new files as system-default.key and system-default.cer,
respectively.
VMware, Inc. 55
VMware NSX Advanced Load Balancer Administration Guide
n Run the following command to generate a new CSR with the system-default.key.
n Run the following command to generate a new certificate with the new expiration date. In this
example, the new certificate is named as system-default2.cer.
openssl x509 -req -days 365 -in system-default.csr -signkey system-default.key -out system-
default2.cer
Optional Step: Before performing the next steps, you can deactivate any virtual services that
are configured to use the System-Default-Cert.
n Log in to the CLI, and execute the following command to perform the changes for the default
certificate on NSX Advanced Load Balancer (System-Default-Cert).
n Execute the certificate command and click Enter. Run certificate file <path to system-
default2.cer>/system-default2.cer. Enter the save command to save the changes.
n Enable the virtual services if they were deactivated before the changes (optional).
n Log in to the UI, navigate to Templates > Security > SSL/ TLS Certificates and check the
expiry date for the renewed certificate.
VMware, Inc. 56
VMware NSX Advanced Load Balancer Administration Guide
Strength
SSL ciphers are defined by the Templates > Security > SSL/TLS Profile. Within a profile, List view
and string view are the two modes for configuring ciphers.
For more information, see Apple’s App Transport Security topic in the VMware NSX Advanced
Load BalancerConfiguration Guide.
SSL Rating
Modifying or reordering the list will alter the associated SSL rating in the top-right corner of the
SSL/ TLS Profile edit window. This provides insight into the encryption performance, security,
and client compatibility of the selected ciphers. This ranking is only made against the validated
ciphers from the List View mode.
List View
The default cipher list view shows common ciphers in order of priority. Enable or deactivate
ciphers using the check box, and reorder them using the up/ down arrows or drag and drop. List
view provides a static list of validated ciphers. If alternate ciphers not listed are required, consider
using String View. The ciphers included in this list are considered reasonably strong. If a cipher
is later deemed to be insecure or less secure, its security score rating will drop to indicate it has
fallen out of favor.
VMware, Inc. 57
VMware NSX Advanced Load Balancer Administration Guide
String View
The second cipher configuration mode allows accepted ciphers to be added as a string, similar
to the OpenSSL syntax for viewing and setting ciphers. For this mode, NSX Advanced Load
Balancer accepts all TLS 1.0 - 1.2, and Elliptic Curve ciphers from https://www.openssl.org/
docs/man1.0.2/apps/ciphers.html. In this mode, the administrator must determine if the
enabled ciphers are secure. You can set strong security by employing a known cipher suite,
such as HIGH.
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256
VMware, Inc. 58
VMware NSX Advanced Load Balancer Administration Guide
Resolution
If the NSX Advanced Load Balancer UI is associated with a revoked certificate, the UI becomes
inaccessible. The CLI can still be accessed as it uses SSH. Add the new certificate to the default
NGNIX configuration file. Use the /etc/nginx/sites-enabled/default command to enable
the Controller to use the correct certificate.
server {
listen 443;
server_tokens off;
more_clear_headers Server;
add_header Strict-Transport-Security "max-age=31536000;
includeSubdomains";
ssl on;
ssl_certificate /var/lib/avi/nginxd/certstore/server_00.cert;
ssl_certificate_key /var/lib/avi/nginxd/certstore/server_00.key;
ssl_certificate /var/lib/avi/nginxd/certstore/server_01.cert;
ssl_certificate_key /var/lib/avi/nginxd/certstore/server_01.key;
Test the reachability of the NSX Advanced Load Balancer UI by using the following curl
command.
The steps to validate the Key Passphrase provided during the SSL certificate creation are as
follows:
Procedure
2 Click Create and choose Application Certificate or Controller Certificate according to the
requirement.
VMware, Inc. 59
VMware NSX Advanced Load Balancer Administration Guide
4 Paste the key text in the Upload or Paste Key (PEM) or PKCS12 File text box.
6 Click Validate to get the password validated by NSX Advanced Load Balancer.
VMware, Inc. 60
VMware NSX Advanced Load Balancer Administration Guide
Note A decrypted SSL key file starts with BEGIN PRIVATE KEY as follows.
Venafi Integration
The NSX Advanced Load Balancer can be set up to integrate with the Venafi Trust Protection
Platform™ for automation of SSL and TLS certificate life-cycle management. All certificates will
be protected and controlled through TPP. This process is transparent to the NSX Advanced
Load Balancer Controllers.
Configuration
The Venafi Trust Protection Platform leverages the NSX Advanced Load Balancer REST API for
all communications, including creating and updating SSL certificate and keys. No configuration
changes are required on NSX Advanced Load Balancer. TPP requires a user name, password,
and an IP address of the Controller. If the Controller is configured with a floating Controller
cluster IP, this address must be used. If no floating IP is configured, the IP address of any
Controller can be used.
VMware, Inc. 61
VMware NSX Advanced Load Balancer Administration Guide
For help in configuring Trust Protection Platform, contact the Venafi support team. You can get
the latest version of the required driver, along with instructions for TPP configuration from the
team.
Workflow
When a new application is created or a new SSL/ TLS certificate is required, use the following
workflow.
n From the Trust Protection Platform, create a new certificate for the NSX Advanced Load
Balancer. Behind the scenes, the following happens:
n TPP sends the API calls necessary to generate a CSR on NSX Advanced Load Balancer
and import it.
n TPP receives the signed certificate and key from the CA.
n TPP pushes the certificate and key to NSX Advanced Load Balancer, along with any
required chain certificates.
n From the NSX Advanced Load Balancer, create a new application virtual service, attaching
the certificate.
n Any subsequent updates to the certificate received by the Controller will automatically and
transparently be pushed to Service Engines using the certificate.
n TPP will learn the mapping of the virtual service name to the certificate. It will automatically
handle certificate and chain certificate renewals.
IP Access
As a best practice, you can lock down the NSX Advanced Load Balancer administrative UI to
known IP addresses. If this has been done, ensure that you include the source IP addresses of the
Trust Protection Platform in the allowed-IP list of NSX Advanced Load Balancer for administrative
access.
VMware, Inc. 62
VMware NSX Advanced Load Balancer Administration Guide
Admin Access
TPP can use any administrator account that has write-access to SSL/ TLS certificates for the
required tenants. Best practice is to create a new role for SSL administration, with only write
access for SSL/ TLS Certificates enabled. Create a new admin account mapped to this role. This
limits the exposure of this account, and provides better audit logs.
Onboard discovery
The Onboard Discovery feature automates the process of importing certificates into Trust
Protection Platform from network devices where you can monitor, validate, and provision them.
In case of having virtual services setup on Controller with SSL support and a blank setup or
outdated configurations on Venafi TPP, onboard discovery job can be used to generate the
corresponding certificate and application objects for the virtual services in Venafi TPP with pre-
defined parameter values. This makes provisioning possible immediately after the discovery step.
The job can be run automatically at regular intervals of time from Venafi TPP.
Provisioning
Provisioning is the process of pushing attached certificate in NSX Advanced Load Balancer
Adaptable App in Venafi TPP to the corresponding virtual service under corresponding tenant,
based on parameters of the Adaptable App. Provisioning is automatically triggered when a
certificate is renewed in Venafi TPP.
n Central
n In central provisioning, since Venafi completely takes care of generation of certificate, the
certificate is already ready while pushing.
VMware, Inc. 63
VMware NSX Advanced Load Balancer Administration Guide
n New certificates are uploaded to Controller with the naming convention: <Common
Name><Valid To as yyMMMdd><Last 4 of Serial>.
n Remote
n In remote provisioning, CSR is generated by the NSX Advanced Load Balancer and
imported to Venafi using API calls, which is then used by Venafi to generate certificate.
n New certificates are uploaded to the Controller with the naming convention: <Common
Name>RGEN<Current Date/Time as yyMMdd-HHmmss>.
When a new application is created or a new SSL/ TLS certificate is required, use the following
workflow.
n From the Trust Protection Platform, create a new certificate for NSX Advanced Load
Balancer. Behind the scenes, the following happens:
n TPP sends the API calls necessary to generate a CSR on NSX Advanced Load Balancer
and import it.
n TPP receives the signed certificate and key from the CA.
n TPP pushes the certificate and key to the NSX Advanced Load Balancer, along with any
required chain certificate.
n From the NSX Advanced Load Balancer, create a new application virtual service, attaching
the certificate.
n Any subsequent updates to the certificate received by the Controller will automatically and
transparently be pushed to Service Engines using the certificate.
n TPP will learn the mapping of the virtual service name to the certificate. It will automatically
handle certificate and chain certificate renewals.
SSL/TLS protocol helps keeping an internet connection secure and safeguard any sensitive
data sent between two machines, systems or devices, preventing intruders from reading, and
modifying any information transferred between two machines, systems or devices. Though
SSL/TLS certificate ensures secure, encrypted connections between systems, following are some
challenges around it.
Let’s Encrypt resolves the above challenges. For more information, see Let’s Encrypt.
VMware, Inc. 64
VMware NSX Advanced Load Balancer Administration Guide
n Provisioning a DNS record under the domain (as per CSR’s common name).
The NSX Advanced Load Balancer supports HTTP-01 challenge for domain validation.
HTTP-01 Challenge
n Let’s Encrypt gives a token to the ACME client that puts a file on the web server at http://
<YOUR_DOMAIN>/well-known/acme-challenge/<TOKEN>. This file contains the token and a
thumbprint of account key.
n Once the ACME client tells Let’s Encrypt that the file is ready, Let’s Encrypt tries retrieving it
(potentially multiple times from multiple vantage points).
n If validation checks get the right responses from the web server, the validation is considered
successful, and a certificate is issued.
Note
n As Let’s Encrypt CA communicates on port 80 for HTTP-01 challenge, port 80 must be
opened on the firewall and Let’s Encrypt CA must be able to reach user network (network
where the NSX Advanced Load Balancer System is deployed). Let’s Encrypt CA connects
through public network to user’s NSX Advanced Load Balancer System on port 80.
n The script automatically creates a virtual service on port 80 for the respective virtual service
listening on port 443/custom SSL Port, only if there is no virtual service already listening on
port 80.
n Challenge Types
1 Get the script which would assist in getting and renewing the certificate.
2 Add the script as controller script on the NSX Advanced Load Balancer System.
VMware, Inc. 65
VMware NSX Advanced Load Balancer Administration Guide
6 Make sure that the FQDN resolves to public IP and port 80 is open at Firewall.
8 Review the list of certificates. Let’s Encrypt CA would push signed certificate.
1 Download the script available at letsencrypt_mgmt_profile. To download the file, click Raw
option. Copy the code available.
2 In the NSX Advanced Load Balancer, navigate to Templates > Scripts > ControlScripts and
click Create.
3 Add a meaningful name and paste the code copied in step 1 in the Import or Paste Control
Script field. Save the configuration.
4 Configure a custom role by navigating to Administration > Roles. Ensure that read and write
access is enabled for Virtual Service, Application Profile, SSL/TLS Certificates and Certificate
Management Profile, for this role.
VMware, Inc. 66
VMware NSX Advanced Load Balancer Administration Guide
5 Add a user by navigating to Administration > Users > CREATE, enter all the required details
and select the configured custom role.
6 Navigate to Templates > Security > Certificate Management and click Create.
7 Enter a meaningful name, select the configured control script and enable custom parameters,
add custom parameters as shown in the following example:
VMware, Inc. 67
VMware NSX Advanced Load Balancer Administration Guide
Note It is recommended not to use admin account. Always add a user account which has
custom role (with limited access).
8 Navigate to Templates > Security > SSL/TLS Certificates, click Create and select Application
Certificate.
9 Enter meaningful name, common name, select the configured certificate management profile,
add all relevant details and save the configuration.
VMware, Inc. 68
VMware NSX Advanced Load Balancer Administration Guide
Ensure that a virtual service is configured with the Application Domain Name as Common Name
(CN) of certificate. CN of certificate must match with the Application Domain Name of the virtual
service. FQDN (CN of certificate or Application Domain Name of virtual service must resolve to IP
address and the domain must be reachable).
After few minutes, review the list of the certificates. You can see the certificate pushed by Let’s
Encrypt CA. Associate the certificate to the configured virtual service.
Logs
To view the logs, enable non-significant logs for the configured virtual service and generate the
certificate. Following is an example of the log.
VMware, Inc. 69
VMware NSX Advanced Load Balancer Administration Guide
Note Let’s Encrypt CA imposes a rate limit. So ensure that the renewal of the certificate does
not hit the rate limit.
Additional Information
n For more information on rate limit, see Rate Limits.
Create a certificate management profile which provides a way to configure a path to a certificate
script. Along with the set of parameters the script needs (CSR, common name, and others)
to integrate with a certificate management service within the customer’s internal network.
The script itself is left opaque by design to accommodate the various certificate management
services different customers may have.
VMware, Inc. 70
VMware NSX Advanced Load Balancer Administration Guide
For SSL certificate configuration, select CSR and fill in the necessary fields for the certificate, and
select the certificate management profile to which this certificate is bound. The NSX Advanced
Load Balancer Controller will then use the CSR and the script to obtain the certificate and also
renew the certificate upon expiration. As a part of the renewal process, a new key pair is
generated and a certificate corresponding to this is obtained from the certificate management
service.
As a part of the SSL certificate configuration, only select CSR, fill in the necessary fields for
the certificate, and select the certificate management profile to which this certificate is bound.
The NSX Advanced Load Balancer Controller will then use the CSR and the script to obtain the
certificate and also renew the certificate upon expiration. As a part of the renewal process, a
new key pair is generated and a certificate corresponding to this is obtained from the certificate
management service.
Without the addition of this automation, the process for sending the CSR to the external CA,
then installing the signed certificate and keys, must be performed by the NSX Advanced Load
Balancer user.
1 Prepare a Python script that defines a certificate_request() method. The method must
accept the following input as a dictionary:
a CSR
VMware, Inc. 71
VMware NSX Advanced Load Balancer Administration Guide
The specific parameter values to be passed to the script are specified within the certificate
management profile.
Sensitive Parameters
For parameters that are sensitive, for instance, passwords, the values can be hidden. Marking a
parameter sensitive prevents its value from being displayed in the web interface or being passed
by the API.
Dynamic Parameter
The value for a certificate management parameter can be assigned within the profile or within
individual CSRs.
n If the parameter value is assigned within the profile, the value applies to all CSRs generated
using this profile.
n To dynamically assign a parameter’s value, indicate that the parameter is dynamic within the
certificate management profile. This leaves the parameter’s value unassigned. In this case, the
dynamic parameter’s value is assigned when creating an individual CSR using the profile. The
parameter value applies only to that CSR.
Procedure
1 Navigate to Templates > Security > Certificate Management and click Create.
3 Select an alert script configuration object type for the certificate management profile from
the drop-down list.
4 If the profile need to pass some parameter values to the script, check Enable Custom
Parameters box, and specify their names and values.
In this example, the location (URL) of the CA service and the login credentials for the service,
will be passed to the script. For parameters that are sensitive, such as, passwords, select
Sensitive. Marking a parameter sensitive prevents its value from being displayed in the web
interface or being passed by the API. For parameters that are to be dynamically assigned
during CSR creation, select Dynamic. This leaves the parameter unassigned within the profile.
5 Click Save.
VMware, Inc. 72
VMware NSX Advanced Load Balancer Administration Guide
Procedure
1 Navigate to Templates > Security > SSL/TLS Certificates. Select Application Certificate
option from the CREATE dropdown menu.
2 Specify the certificate name and select the type as CSR in the Type field.
3 Select the profile configured in the previous section from the Certificate Management Profile
dropdown menu.
The NSX Advanced Load Balancer Controller generates a key pair and CSR, executes the
script to request the CA-signed certificate from the NSX Advanced Load Balancer PKI service,
and saves the signed certificate in persistent storage.
You can choose to customize when certificate expiry notifications are sent; see the topic
Certificate Management Integration for CSR Automation section. If the certificate management
profile is configured for a certificate, a renewal is attempted in the last-but-one interval. By
default, NSX Advanced Load Balancer Controller generates events 30 days, seven days, and one
day before expiry. In this setting, certificate renewal will be attempted seven days before expiry.
If the certificate management profile is configured for automatic certificate renewal, a renewal is
attempted just prior to the penultimate notification (in the above example, that will be just prior
to the seven-day notification). If the renewal succeeds, the last two notifications are not sent. If
the renewal fails, the penultimate notification is sent. Thereafter, if a manual renewal succeeds
prior to the last notification, it is skipped. Otherwise, the final notification will be sent (with no
accompanying final attempt to renew).
When a certificate renewal occurs, a new expiration date is set and yet another notification
schedule is established per the values within the ssl_certificate_expiry_warning_days array in
force at the time.
SSL Certificates
NSX Advanced Load Balancer supports terminating client SSL and TLS connections at the virtual
service, which requires it to send a certificate to clients that authenticate the site and establishes
secure communications.
VMware, Inc. 73
VMware NSX Advanced Load Balancer Administration Guide
n This determines the supported ciphers and versions. For more information on
SSL/ TLS profiles, see SSL/TLS Profile topic in the VMware NSX Advanced Load
BalancerConfiguration Guide.
n SSL Certificate
The SSL/TLS Certificates page on Templates > Security > SSL/TLS Certificates allows the
import, export, and generation of new SSL certificates or certificate requests. Newly-created
certificates may be either self-signed by NSX Advanced Load Balancer or created as a Certificate
Signing Request (CSR) that must be sent to a trusted Certificate Authority (CA), that generates a
trusted certificate.
n Creating a self-signed certificate generates both the certificate and a corresponding private
key.
n Imported existing certificates are not valid until a matching key has been supplied.
n NSX Advanced Load Balancer supports PEM and PKCS #12 formats for certificates.
n Create: Shows the list of certificates from the drop-down menu to create a certificate.
n Edit: Opens the Edit Certificatewindow. Only incomplete certificates that do not have a
corresponding key can be edited.
n Export: The down arrow icon exports a certificate and corresponding private key.
n Delete: A certificate may only be deleted if it is not currently assigned to a virtual service. An
error message will indicate the virtual service referencing the certificate.
The table on this tab contains the following information for each certificate:
n Name: This displays the name of the certificate. Mouse over the name of the certificate
will display any intermediate certificate that has been automatically associated with the
certificate.
VMware, Inc. 74
VMware NSX Advanced Load Balancer Administration Guide
n Status: This shows the status of the certificate. Status in 'green' indicates it is good, in
'yellow'/orange/red' indicates the certificate is expiring soon or has already expired, and
'gray' indication, if the certificate is incomplete.
n Common Name: This displays the fully qualified name of the site to which the certificate
applies. This entry must match the hostname the client will enter in their browser in order for
the site to be considered trusted.
n Self Signed: This displays whether the certificate is self-signed by NSX Advanced Load
Balancer or signed by a Certificate Authority.
n Valid Until: This displays the date and time when the certificate expires.
Create Certificate
Navigate to Templates > Security > SSL/TLS Certificates. Click Create to open the New
Certificate (SSL/ TLS)window.
When creating a new certificate, you can select any of the following certificates:
n Application Certificate: This certificate is used for normal SSL termination and decryption
on NSX Advanced Load Balancer. This option is also used to import or create a client
certificate for NSX Advanced Load Balancer to present to a back-end server when it needs to
authenticate itself.
n Controller Certificate: This certificate is used for the GUI and API for the Controller
cluster. Once uploaded, select the certification through Administration > Settings > Access
Settings.
n Type: Select the type of certificate to create from the drop-down menu. The following are the
options:
n Self Signed: Quickly create a test certificate that is signed by NSX Advanced Load
Balancer. Client browsers will display an error that the certificate is not trusted. If the
HTTP application profile has HTTP Strict Transport Security (HSTS) enabled, clients will
not be able to access a site with a self signed certificate.
VMware, Inc. 75
VMware NSX Advanced Load Balancer Administration Guide
n CSR: Create a valid certificate by first creating the certificate request. This request must
be sent to a certificate authority, which will send back a valid certificate that must be
imported back into NSX Advanced Load Balancer.
n Import: Import a completed certificate that was either received from a certificate
authority or exported from another server.
n Common Name: Specify the fully qualified name of the site, such as www.vmware.com. This
entry must match the hostname the client entered in the browser in order for the site to be
considered trusted.
n Input the required information required for the type of certificate you are creating:
n Self-Signed Certificates
n CSR Certificates
n Importing Certificates
Note The OCSP stapling can be enabled and configured using the UI. For more information,
see OCSP Stapling in NSX Advanced Load Balancer topic in the VMware NSX Advanced Load
BalancerConfiguration Guide.
Self-Signed Certificates
NSX Advanced Load Balancer can generate self-signed certificates. Client browsers do not trust
these certificates and will warn the user that the virtual service’s certificate is not part of a trust
chain.
Self-signed certificates are good for testing or environments where administrators control the
clients and can safely bypass the browser’s security alerts. Public websites must never use
self-signed certificates.
If you have selected Self Signed option from Type drop-down menu in the New Certificate
window, then specify the following details:
n Common Name- Specify the fully-qualified name of the site, such as www.vmware.com. For
the site to be considered trusted, this entry must match the hostname that the client entered
in the browser.
n Organization: Company or entity registering the certificate, such as NSX Advanced Load
Balancer Networks, Inc. (optional).
n Organization Unit: Group within the organization that is responsible for the certificate, such
as Development (optional).
VMware, Inc. 76
VMware NSX Advanced Load Balancer Administration Guide
n Subject Alternate Name (SAN)- The Subject Alternate Name (SAN) lets you specify
additional host names to be protected by a single SSL certificate, such as example.com and
example.org. The are essentially the alternative identities of the subject that is specified in
the Certificate.
n Algorithm: Select either EC (Elliptic Curve) or RSA. RSA is older and considered less secure
than EC, but is more compatible with a broader array of older browsers. EC is new, less
expensive computationally, and generally more secure; however, it is not yet accepted by
all clients. NSX Advanced Load Balancer allows a virtual service to be configured with two
certificates at a time, one each of RSA and EC. This will enable it to negotiate the optimal
algorithm with the client. If the client supports EC, then the NSX Advanced Load Balancer will
prefer this algorithm, which gives the benefit of natively supporting Perfect Forward Secrecy
for better security.
n Key Size: Select the level of encryption to be used for handshakes, as follows:
Higher values may provide better encryption but increase the CPU resources required by
both NSX Advanced Load Balancer and the client.
n Enable HSM Certificate: Rather than store the private key locally on the Controller or
Service Engine, it is maintained in an external hardware security module. This option enables
referencing an HSM profile containing information about communicating with the HSM.
CSR Certificates
The Certificate Signing Request (CSR) is the first of three steps involved in creating a valid SSL/
TLS certificate. The request contains the same parameters as a Self-Signed Certificate. However,
NSX Advanced Load Balancer does not sign the completed certificate. Rather, it must be signed
by a Certificate Authority that is trusted by client browsers.
You can select CSR option from Type drop-down menu in the New Certificate window. The
configuration options for a certificate signing request are the same as for self-signed certificates.
See the descriptions above for definition of each field.
Once completed, forward the completed CSR to any trusted Certificate Authority (CA), such as
Thawte or Verisign by selecting the Certificate Signing Request at the bottom left of the Add
Certificate popup. Then either copy-paste it directly to the CA’s website or save it to a file for
later use.
VMware, Inc. 77
VMware NSX Advanced Load Balancer Administration Guide
Once the CA issues the completed certificate, either paste or upload it into Certificate field at
the bottom right of Add Certificate popup. The certificate is not usable on NSX Advanced Load
Balancer until this step is complete.
Note It can take several days for the CA to return the finished certificate. Meanwhile, you can
close the New Certificate window to return to the SSL/TLS Certificates page. The new certificate
will appear in the table with the notation Awaiting Certificate Valid Until column.
When you receive the completed certificate, click Edit icon for the certificate to open the Edit
Certificate, and then paste the certificate and click Save to generate the CSR certificate. NSX
Advanced Load Balancer will generate a key from the completed certificate automatically.
Import Certificates
You can directly import an existing PEM or PKCS /#12 SSL/ TLS certificate into NSX Advanced
Load Balancer (such as from another server or load balancer). A certificate will have a
corresponding private key, which must also be imported.
Note NSX Advanced Load Balancer generates the key for self-signed or CSR certificates
automatically.
2 Click CREATE and select the certificate type such as Application Certificate.
3 Click Type and select Import. Certificate or Private Key can be imported by copying-pasting
or uploading a file.
n PEM File – PEM files contain certificate or private key in plain-text Base64 encoded format.
Certificate and private key can be provided in separate PEM files or combined in a single PEM
file.
n If certificate and private key are provided in a single PEM file, navigate to Paste Key text box
and add the private key by following any one of the methods listed below:
n Upload File: Click the Upload File button, select the PEM or PKCS12 file, then click
Validate button to parse the file. If the upload is successful then, the Key field will be
populated.
n Paste: Copy and paste a PEM key into the Key field. Ensure that you do not introduce
extra characters in the text, which can occur while using some e mail clients or rich text
editors. If you copy and paste the key and certificate together as one file then, click
Validate button to parse the text and populate the Certificate field.
n If certificate and private key are provided in two separate PEM files, follow the below steps to
import each individually:
n Certificate - Add the certificate in the Paste Certificate text box by copying-pasting or file
upload, as described above.
VMware, Inc. 78
VMware NSX Advanced Load Balancer Administration Guide
n Key – Add the private key in the Paste Key field by copying-pasting or file upload.
n PKCS#12 File - PKCS #12 files contain both the certificate and key, PKCS #12 is a binary
format, which cannot be copied-pasted, and hence it can be uploaded only. Navigate to the
Paste Key and follow the below step to import the PKCS #12 file.
n Upload File - Click the Import File button, select the PKCS #12 file, click the Validate button
to parse the file. If the upload is successful, both the Key and Certificate fields will be
populated.
n Key Passphrase: You can also add and validate a key passphrase to encrypt the private key.
n Import: Select Import to finish adding the new certificate and key. The key will be embedded
with the certificate and treated as one object within the NSX Advanced Load Balancer UI.
Certificate Authority
Certificates require a trusted chain of authority to be considered as valid. If the certificate
used is directly generated by a certificate authority that is known to all client browsers then,
no certificate chain is required. However, if there are multiple levels required, an intermediate
certificate may be necessary. Clients will often traverse the path indicated by the certificate to
validate on their own if no chain certificate is presented by a site, but this adds additional DNS
lookups and time for the initial site load. The ideal scenario is to present the chain certificates
along with the site cert.
If a chain certificate, or rather a certificate for a certificate authority, is uploaded through the
Certificate > Import in the certificates page, it will be added to the Certificate Authority section.
NSX Advanced Load Balancer will automatically build the certificate chain if it detects a next link
in the chain exists.
To validate a certificate that has been attached to a chain certificate, hover the pointer over
the certificate’s name in the SSL Certificates table at the top of the page. NSX Advanced Load
Balancer supports multiple chain paths. Each may share the same CA issuer, or they can be
chained to different issuers.
Both an SSL/ TLS profile and an SSL certificate must be assigned to the virtual service while
configuring it to terminate client SSL/ TLS connections. If you encrypt traffic between NSX
Advanced Load Balancer and the servers then, an SSL/ TLS profile must be assigned to the
pool. While creating a new virtual service through the basic mode, the default system SSL/TLS
profile is used automatically.
VMware, Inc. 79
VMware NSX Advanced Load Balancer Administration Guide
SSL termination can be performed on any service port. However, browsers assume that the
default port as 443. The best practice is to configure a virtual service to accept both HTTP and
HTTPS by creating a service on port 80, by selecting the + icon to add an additional service port,
and then set the new service port to 443 with SSL enabled. A redirect from HTTP to HTTPS is
generally preferable, which can be done through a policy or by using the System-HTTP-Secure
application profile.
Each SSL/ TLS profile contains default groupings of supported SSL ciphers and versions that may
be used with RSA or an Elliptic Curve certificate, or both. Ensure that any new SSL/TLS profile
you create, includes ciphers that are appropriate for the certificate type that will be used later.
The default SSL/ TLS profiles included with NSX Advanced Load Balancer provides a broad range
of security. For instance, the Standard Profile works for typical deployments.
Creating a new SSL/ TLS profile or using an existing profile entails various trade-offs between
security, compatibility, and computational expense. For instance, increasing the list of accepted
ciphers and SSL versions increases the compatibility with clients while also lowering security
potentially.
Note NSX Advanced Load Balancer can accommodate a broader set of security needs within
a client community by associating multiple SSL profiles with a single virtual service, and have the
Service Engines choose which to use based on the client’s IP address. For more information, see
'Client-IP-based SSL Profiles' section in this guide.
n Delete: An SSL/ TLS profile can only be deleted, if it is not currently assigned to a virtual
service. An error message will indicate the virtual service referencing the profile. The default
system profiles can be modified, but not deleted.
The table on this tab provides the following information for each SSL/ TLS profile:
VMware, Inc. 80
VMware NSX Advanced Load Balancer Administration Guide
n Accepted Versions: Select one or more SSL/ TLS versions from the drop-down menu
to add to this profile. Chronologically, TLS v1.0 is the oldest supported, and TLS v1.2 is
the newest. SSL v3.0 is no longer support as of NSX Advanced Load Balancer v15.2. In
general with SSL, older versions have many known vulnerabilities while newer versions
have many undiscovered vulnerabilities. As with any security, NSX Advanced Load Balancer
recommends diligence to understand the dynamic nature of security and to ensure that NSX
Advanced Load Balancer is always up to date. Some SSL ciphers are dependent on specific
versions of SSL or TLS supported. For more information, see OpenSSL.
n Accepted Ciphers: Enter the list of accepted ciphers in the Accepted Ciphers field. Each
cipher entered must conform to the cipher suite names listed at OpenSSL. Separate each
cipher with a colon. For instance, AES:3DES means that this Profile will accept the AES and
3DES ciphers. When negotiating ciphers with the client, NSX Advanced Load Balancer will
prefer ciphers in the order listed. You may use an SSL/ TLS profile with both an RSA and an
Elliptic Curve certificate. These two types of certificates can use different types of ciphers,
so it is important to incorporate ciphers for both types. Selecting only the most secure
ciphers may incur higher CPU load on NSX Advanced Load Balancer and may also reduce
compatibility with older browsers.
PKI Profile
For more information on PKI Profile, see PKI Profile and PKI Profile Settings topics in the VMware
NSX Advanced Load BalancerConfiguration Guide.
Certificate Management
To create a new certificate, follow the steps below:
1 From the UI, navigate to the Templates > Security > Certificate Management.
2 Click Create.
3 In the New Certificate Management screen, enter the Name of the profile.
4 In the Control Script field, select the required alert script configuration, as required.
Note Click Create button in the drop down, to create a new Control Script (if required).
5 If the profile needs to pass some parameter values to the script, select Enable Custom
Parameters.
VMware, Inc. 81
VMware NSX Advanced Load Balancer Administration Guide
Note Re-upload the Control Script, if the file has been modified after uploading for the
changes to reflect.
The location (URL) of the Trust Anchor service and the login credentials for the service, will
be passed to the script. For parameters that are sensitive (for instance, passwords), select
the Sensitive check box.
Marking a parameter sensitive prevents its value from being displayed in the web interface
or being passed by the API. For parameters that are to be dynamically assigned during CSR
creation, select the Dynamic check box. This leaves the parameter unassigned within the
profile.
7 Click Save.
Authentication Profile
The Authentication profile (“auth profile”) allows configuration of clients into a virtual service
through HTTP basic authentication.
The authentication profile is enabled through the HTTP basic authentication setting of a virtual
service’s Advanced Properties tab.
VMware, Inc. 82
VMware NSX Advanced Load Balancer Administration Guide
NSX Advanced Load Balancer also supports client authentication through SSL client certificates,
which is configured the HTTP Profile’s Authentication section.
n Delete: An Auth profile may only be deleted if it is not currently assigned to a virtual service
or in use by NSX Advanced Load Balancer for administrative authentication.
The table on this tab provides the following information for each authorization profile:
VMware, Inc. 83
VMware NSX Advanced Load Balancer Administration Guide
n LDAP Servers: Configure one or more LDAP servers by adding their IP addresses.
n LDAP Port: This is the service port to use when communicating with the LDAP servers. This is
typically 389 for LDAP or 636 for LDAPS (SSL).
n Secure LDAP using TLS: Enable startTLS for secure communications with the LDAP servers.
This may require a service port change.
VMware, Inc. 84
VMware NSX Advanced Load Balancer Administration Guide
n Base DN: LDAP Directory Base Distinguished Name. Used as default for settings where DN is
required but was not populated like User or Group Search DN.
n Anonymous Bind: Minimal LDAP settings that are required to verify User authentication
credentials by binding to LDAP server. This option is useful when you do not have access
to administrator account on the LDAP server.
n User DN Pattern: LDAP user DN pattern is used to bind an LDAP user after replacing the
user token with real user name. The pattern must match the user record path in the LDAP
server. For instance, cn=,ou=People,dc=myorg,dc=com is a pattern where we expect to
find all user records under ou “People”. When searching LDAP for a specific user, we
replace the token with user name.
n User Token: An LDAP token is replaced with real user name in the user DN pattern. For
instance, inUser DN Pattern is configured as “cn=-user-,ou=People,dc=myorg,dc=com”,
the token value must be -user-.
n User ID Attribute: LDAP user ID attribute is the login attribute that uniquely identifies a
single user record. The value of this attribute must match the user name used at the login
prompt.
n User Attributes: LDAP user attributes to fetch on a successful user bind. These attributes
are used only for debugging purpose.
n Admin Bind DN: Full DN of LDAP administrator. Admin bind DN is used to bind to an
LDAP server. Administrators must have sufficient privileges to search for users under user
search DN or groups under group search DN.
n User Search DN: LDAP user search DN is the root of search for a given user in the
LDAP directory. Only user records present in this LDAP directory sub-tree are allowed for
authentication. Base DN value is used if this value is not configured.
n Group Search DN: LDAP group search DN is the root of search for a given group in the
LDAP directory. Only matching groups present in this LDAP directory sub-tree will be
checked for user membership. Base DN value is used if this value is not configured.
n User Search Scope: LDAP user search scope defines how deep to search for the user
starting from user search DN. The options are search at base, search one level below
or search the entire subtree. The default option is to search one-level deep under user
search DN.
n Group Search Scope: LDAP group search scope defines how deep to search for the
group starting from the group search DN. The default value is the entire subtree.
VMware, Inc. 85
VMware NSX Advanced Load Balancer Administration Guide
n User ID Attribute: LDAP user ID attribute is the login attribute that uniquely identifies a
single user record. The value of this attribute must match the user name used at the login
prompt.
n Group Member Attribute: LDAP group attribute that identifies each of the group
members. For instance, member and memberUid are commonly used attributes.
n User Attributes: LDAP user attributes to fetch on a successful user bind. These attributes
are only for debugging.
n Insert HTTP Header for Client UserID: Insert HTTP header into the client request before it is
sent to the destination server. This field is used to name the header. The value will be the
client’s User ID. This same User ID value will also be used to populate the User ID field in the
Virtual Service’s logs.
n Required User Group Membership: User must be a member of these groups. Each group is
identified by the DN. For instance, cn=testgroup,ou=groups,dc=LDAP,dc=example,dc=com
n Auth Credentials Cache Expiration: The maximum allowed length of time a client’s
authentication is cached.
n Group Member Attribute Is Full DN: Group member entries contain full DNs instead of only
User ID attribute values.
VMware, Inc. 86
Licensing
3
The NSX Advanced Load Balancer software requires a license to enable and utilize the available
load balancing features. This section lists the NSX Advanced Load Balancer license editions and
describes the steps to obtain, add, and manage them.
n Updating License on each Node in an NSX Advanced Load Balancer Controller Cluster
n VMware NSX Advanced Load Balancer Enterprise with Cloud Services Edition
The next section explains the detailed feature list for each of the editions.
Feature Comparison
Enterprise with Cloud
Categories Feature Essentials Basic Enterprise Services Edition
Local Traffic L4 LB TCP & UDP TCP & UDP TCP, UDP, DNS, SIP, TCP, UDP, DNS, SIP,
Managemen Fast Path Fast Path & RADIUS DSR, TLS support, RADIUS DSR, TLS support,
t No SSL/TLS ProxyNo L4 PROXY protocol support PROXY protocol support
SSL/TLS
VMware, Inc. 87
VMware NSX Advanced Load Balancer Administration Guide
Application SSL/TLS X Very limited Dynamic CRLs, OCSP Dynamic CRLs, OCSP
Security feature-set stapling, TLSv1.3, HSM, and stapling, TLSv1.3, HSM, and
cert management cert management
VMware, Inc. 88
VMware NSX Advanced Load Balancer Administration Guide
Software Administrati Basic LB Basic LB Fully multi-tenant & Fully multi-tenant &
Defined on administrati administrati granular RBAC granular RBAC
Platform on on Rich alerts and events Rich alerts and events
Various 3rd part Various 3rd part
integrations integrations
Integrations with various Integrations with various
IDPs IDPs
n The Enterprise with Cloud Services Edition is the default licensing tier for an NSX Advanced
Load Balancer Controller. A new Controller is set up to be in the Enterprise with Cloud
Services Edition licensing tier.
n Customers can request trial service units (saas units) valid for up to 90 days to try
out features in the Cloud Services edition. Contact the NSX Advanced Load Balancer
representative for more details.
VMware, Inc. 89
VMware NSX Advanced Load Balancer Administration Guide
n VMware continues to ship trial licenses for the Enterprise edition as part of the packaging.
The customer must change the license tier to Enterprise to utilize these licenses.
n The NSX Advanced Load Balancer can be set up in any one of the licensing tier. However, the
entire Controller cluster operates in the same license edition tier to which all applications and
SEs belong..
n The License tier for the Controller can be changed from one edition to another without any
disruptions of traffic or downtime.
For more information on Enterprise and Basic Editions, see NSX Advanced Load Balancer-
Enterprise Edition and NSX Advanced Load Balancer-Basic Edition.
Starting 8th May 2023, specific NSX Per-Core Term bundles started bundling NSX Advanced
Load Balancer with a 250:1 ratio.
To activate NSX Advanced Load Balancer Enterprise licenses that are included as part of NSX,
access VMware Customer Connect to obtain the Serial Keys. The NSX Advanced Load Balancer
Controller will decode the Serial Keys and assign the appropriate number of Service Units
based on the specified ratio. The license will be accounted as Service Units from the Controller
perspective.
For more information on NSX editions and product, see the NSX+ Features and NSX Features
sections on VMware NSX Overview.
Note Since the NSX bundle SKUs are based on cores, the same amount of NSX and NSX
Advanced Load Balancer for NSX cores can be seen on the Order and VMware Customer
Connect. To calculate the amount of Service Units available as part of the entitlement, the
amount of cores must be divided by 250 and rounded up.
For more information, see VMware NSX Advanced Load BalancerCloud Services Guide.
VMware, Inc. 90
VMware NSX Advanced Load Balancer Administration Guide
The Enterprise Edition license is based on Service Units. On upgrade to NSX Advanced Load
Balancer release 20.1.1, the licenses prior to NSX Advanced Load Balancer release 20.1.1 are
converted to Service Unit licenses.
Starting 8th May 2023, NSX Advanced Load Balancer-Enterprise Edition is included as part of
specific NSX Per-core Term bundles. Contact your VMware representative for more details on
NSX Advanced Load Balancer entitlements that are part of NSX Bundles.
If you are upgrading from version 18.x to NSX Advanced Load Balancer version 22.1.3, use the
following table to understand how the various license types are converted to the Enterprise
Edition licenses.
Socket 5
Host 1
Depending on the configuration of NSX Advanced Load Balancer, the appropriate number of
Service units are consumed by the SEs.
The configuration depends on the following parameters, which are explained in the later sections:
n Bandwidth restriction
n Per-app mode
n Bare-metal parameters
n Cloud-specific configuration
The license is downloaded from the NSX Advanced Load Balancer web portal and is
administered centrally by the NSX Advanced Load Balancer Controller to all SEs. Licenses are
consumed by the SEs and not by the Controllers.
n Provides flexibility – Same Service Unit license can be used on any ecosystem and using any
configuration
VMware, Inc. 91
VMware NSX Advanced Load Balancer Administration Guide
Note
n Future-dated license is not supported.
n Enterprise Edition comes with two units of a free perpetual license. This license does not
include product support and is only intended for PoC or trial use.
License Duration
NSX Advanced Load Balancer is available in the following license types, based on the duration
for which the license is valid.
To activate a license, you must first add the license to the NSX Advanced Load Balancer
Controller.
VMware, Inc. 92
VMware NSX Advanced Load Balancer Administration Guide
After adding a 25-character VMware serial key, the system will display information about the
license, such as start date, expiry date, resource count, and so on, available in the NSX Advanced
Load Balancer Controller license list.
Note Subscription-based serial keys with more than 90-day validity can have trouble functioning
on the Controllers running 18.2.10 or lower versions.
The start date of such licences appears to be in the future, even when the serial key is correctly
added. For instance, if the serial key is issued on 01-JAN-2021 for a 1-year validity, the start date
can appear as 01-OCT-2021. However, the expiration date will be accurately set to 31-DEC-2021.
You must update to version 18.2.11 or later to fix it.
You must reconfigure (by deleting the added but unusable serial key) such future-dated serial
keys after the upgrade.
Procedure
4 After the license file is uploaded, the new license appears in the license list of the Controller.
VMware, Inc. 93
VMware NSX Advanced Load Balancer Administration Guide
Results
The system displays information about the license, including the start date and expiration date.
For more information on divide and combine licenses, see How to Divide or Combine License
Keys guide.
Note If you are using old YAML-based licenses generated by the NSX Advanced Load Balancer,
contact your accounts team or VMware support for the new ones.
Note
n 1 Gbps bandwidth mode is no longer available.
n Per-App mode is not supported on SE Groups when the Bandwidth mode is enabled.
25 Mbps 0.4 1
VMware, Inc. 94
VMware NSX Advanced Load Balancer Administration Guide
n It cannot be used to host DNS Virtual Services (both standalone DNS and GSLB).
n 0.25 Service Units license is required to license one core of load balancing license.
n For an SE VM with eight physical cores, two Service Units licenses are required for the
load balancing.
n For SNI or EVH shared virtual services, Per-App is limited to only one parent and one child
virtual service.
n When you upgrade a bare-metal server, one socket license gets converted to five Service
Unit licenses.
n The number of Service Unit licenses consumed by a bare-metal server depends on the
following:
n Calculating Service Units license for various bare-metal servers based on their configuration:
n For 16 cores, dual-socket, bare-metal server (16 cores on each socket), the following is
applicable:
n For each socket, and five licenses are required, as up to 20 cores, five Service Units
licenses are required for one socket.
n After the limit of 20 cores per socket, one Service Units license for every four additional
cores is required.
n For a bare-metal server configured with 24 cores, six Service Units licenses are
required.
n For a bare-metal server configured with 28 cores, seven Service Units licenses are
required.
n For a dual-socket, 28 core bare-metal servers, and 14 Service Units licenses are
required.
VMware, Inc. 95
VMware NSX Advanced Load Balancer Administration Guide
n Hyper-threaded vCPUs are not accounted for licensing, regardless of the ecosystems.
n Ability to define custom number of datapath processes (number of cores used for load
balancing). It allows for cost-effective use of larger instances in a public cloud.
n You can change bandwidth configuration in SE Group even when it has SEs in it.
n Existing SEs on 1 Gbps SKU will continue to be billed following the older SKU.
n Instance-level restriction is removed. Any instance type can be used to deploy an NSX
Advanced Load Balancer Controller.
For the PAYG licenses, the recommended sizes for an NSX Advanced Load Balancer SE are as
follows:
For more information on PAYG licenses, see Azure Pay-as-you-go (Azure PAYG) section in the
VMware NSX Advanced Load BalancerInstallation Guide.
VMware, Inc. 96
VMware NSX Advanced Load Balancer Administration Guide
The points to consider while upgrading to an Enterprise Edition license are as follows:
n The number of licenses consumed will be based on the number of SE_DPs running and not
the number of cores on the SE.
n SEs associated with the Controller before the upgrade will continue to work. After the
upgrade, all previous license types will be migrated to Service Units licenses. The number
of consumed Enterprise Edition licenses is based on the number of SE_DPs running on the
SEs and not on the number of cores on the SEs. Modification of the number of datapath
processes for the SE is supported.
n The Enterprise Edition license supports a 10% buffer, over and above the licensed resources
on the Controller. This 10% buffer is relative to the Service Units license available on the
Controller. It is recommended to use the buffer allowance temporarily and for emergency
requirements like a scale-out event.
n For a Controller with 20 Service Units licenses, the effective Service Units after adding the
buffer allowance is 22 Service Units (20 + 2).
A 1 Gbps bandwidth is set to unlimited, and the corresponding number of SE_DPs is set to 4. The
25 Mbps bandwidth and 200 Mbps bandwidth licenses are not migrated.
The following are applicable to the SE groups on which the SEs (with 1 Gbps bandwidth license)
are running.
n SE is set to consume only four Service Units licenses, as the value of the max_se_dp setting on
the SE Group is set to 4. The number of cores used for load balancing is set to 4. Therefore, a
maximum of four Service Units licenses are used.
VMware, Inc. 97
VMware NSX Advanced Load Balancer Administration Guide
Registration
n Navigate to the home page and click Support. This guides you to the VMware Customer
Connectportal. Click Register to navigate to the Login Information page.
VMware, Inc. 98
VMware NSX Advanced Load Balancer Administration Guide
n Upon submission of the form, an activation email is sent to the provided email address.
Activation
n Type the Authentication Code received in the email, in the space provided.
n If activation is successful, you are redirected to the Profile Activated page and subsequently
to the vmware Customer Connect login page as shown below.
VMware, Inc. 99
VMware NSX Advanced Load Balancer Administration Guide
Login using the registered email id and password to access the VMware Customer Connect
portal.
n Useful in cases where a larger VM is required for better packet per second (PPS) or VIP/VS
density.
SE creates one datapath process per core. To restrict the number of cores used for
load balancing, set the max_num_se_dps setting to the desired value on the SE Group. The
max_num_se_dps parameter represents all cores on the VM that is used for load-balancing and
its default value is zero.
Note
n The configuration of the max_num_se_dps parameter is supported on all the ecosystems.
The number of Service Units licenses assigned to the SE depends on the number of SE_DPs
running. By default, an eight-core SE will consume eight Service Units licenses. However, if
max_num_se_dps is set to 4, even on an eight-core SE VM, only four Service Units licenses are
consumed.
n When an SE group with a 1 GB bandwidth limit is migrated, the bandwidth limit is set to
unlimited. The value of the max_num_se_dps attribute is set to 4. For all the other SE Groups,
the value of max_num_se_dps is set to 0.
n Hyper-threaded cores are not accounted for licensing on all the ecosystems. For more
information on Service Engine groups, see Service Engine Group topic in the VMware NSX
Advanced Load BalancerConfiguration Guide.
Note To check license usage information using CLI, use show license ledger details
command.
In the case of container cloud environments, after the license limit has been reached, you cannot
create new SEs even if you add new hosts to the cluster. Any new tasks or containers created
on new container hosts can have degraded access to the existing load-balanced applications
because SEs are not present on those hosts.
License Expiration
If multiple licenses are attached to the NSX Advanced Load Balancer, and one of the licenses
expire, the system immediately prevents the capacity from exceeding the total resources allotted
by the remaining valid licenses.
When all applied licenses expire, the NSX Advanced Load Balancer returns to an unlicensed
state. In the unlicensed state, the following changes become applicable:
n You can still create and edit virtual services and other load-balancing configurations.
n When a valid license is reapplied, the system will immediately be able to utilize the total
resources allocated by the new license.
New licenses can be managed and downloaded from the Customer Portal. The interval for
expiration notification is two months.
Procedure
Results
are triggered by license expiration events and are defined as you prefer, namely, through emails,
Syslog messages, SNMP traps, and ControlScripts.
1 Why does the NSX Advanced Load Balancer generate alerts for the expired license even
though the valid license is applied?
Each license present on NSX Advanced Load Balancer is considered as a separate object.
The NSX Advanced Load Balancer will generate alerts for both types of licenses – active
license and expired license. To stop generation of alerts for the expired licenses, delete or
uninstall the expired licenses installed on NSX Advanced Load Balancer.
b Select the expired license from the list, and click Delete to uninstall the expired license.
Yes, it is safe to delete the expired licenses from the NSX Advanced Load Balancer.
n VMware NSX Advanced Load Balancer Enterprise Edition - It is a fully-featured VMware NSX
Advanced Load Balancer license, which includes load balancing, GSLB, WAF, and all other
features available on NSX Advanced Load Balancer.
n NSX Advanced Load Balancer Essentials for Tanzu - VMware NSX Advanced Load Balancer
essentials for Tanzu provides Layer 4 load balancing services for Tanzu Basic and Standard
users.
In VMware NSX Advanced Load Balancer essentials for Tanzu, a few configuration options are
restricted or not editable in the NSX Advanced Load Balancer UI. Some configuration knobs allow
the create and edit options using UI in the essentials edition, whereas others only have the view
access.
NSX Advanced Load Balancer UI Object List for Essentials, Basic, and Enterprise Edition
See the below table for more information on permissions available for various UI objects in
VMware NSX Advanced Load Balancer essentials for Tanzu, VMware NSX Advanced Load
Balancer - Basic Edition, and VMware NSX Advanced Load Balancer Enterprise Edition.
Permissions(Essentia Permissions(Enterpri
Menu Sub Menu ls)* Permissions(Basic)* se)
Permissions(Essentia Permissions(Enterpri
Menu Sub Menu ls)* Permissions(Basic)* se)
Permissions(Essentia Permissions(Enterpri
Menu Sub Menu ls)* Permissions(Basic)* se)
Permissions(Essentia Permissions(Enterpri
Menu Sub Menu ls)* Permissions(Basic)* se)
Note The above table lists all the UI options, but not all features are supported with the
Essentials and Basic editions.
n Layer 7 load balancing is not available with the Essentials edition, limited capability for Layer
7 load balancing is available with the Basic edition, and fully-featured Layer 7 support is
available with the Enterprise edition.
n Similarly, only the vCenter cloud and No Orchestrator clouds can be created or edited with
the essentials and the Basic editions. Whereas the Enterprise Edition supports all other
clouds, like NSX-T, Azure, AWS, and so on.
n Only HTTP and Layer 4 profiles can be created or edited in the Basic edition.
n The GSLB Services option is available under the Applications tab only when the GSLB feature
is configured on the NSX Advanced Load Balancer Controller. GSLB is available with the
Enterprise edition only.
In the UI, you might be able to edit or view the options, but to check if a feature is supported for
your NSX Advanced Load Balancer edition, see NSX Advanced Load Balancer Editions.
Note
n NSX Advanced Load Balancer-Basic edition is not available as a separate SKU and is not
saleable.
n NSX Advanced Load Balancer-Basic Edition supports the following deployment modes:
n No Orchestrator Mode
For more information on setting up NSX Advanced Load Balancer-Basic Edition, see Installing
NSX Advanced Load Balancer-Basic Edition.
1 Click the File option in the top menu and select Deploy OVF Template.
b Select a port group for Destination Networks in Network Mapping. This port group will be
used by the NSX Advanced Load Balancer Controller to communicate with vCenter.
c Specify the management IP address and default gateway. In the case of DHCP, leave this
field empty (Only static IP addresses must be used in production environment).
Repeat the above steps to deploy three NSX Advanced Load Balancer Controller VMs to create
an NSX Advanced Load Balancer Controller cluster set-up.
Note While the system is booting up, a 503 status code or a page with following message will
appear:
n Controller is not yet ready. Please try again after a couple of minutes.
Wait for about 5 to 10 minutes and refresh the page. Follow the instructions below for the
set-up wizard.
n Administrator account.
Note A valid email address is required for the admin password reset in case of user
account lockout.
All configuration violations need to be corrected before license tier change is allowed.
The following is a sample output of the configuration audit API performed right after a fresh
install.
n The default Service Engine Group (Default-Group) has a default HA mode of N+M. The NSX
Advanced Load Balancer Basic Edition only supports the legacy Active/Standby HA mode
and this must be changed.
n The NSX Advanced Load Balancer Basic Edition does not support configurable cache
memory, and this value must be edited to zero.
n The NSX Advanced Load Balancer Basic Edition does not support health monitoring from the
standby SE, and this must be disabled.
The above command will display any features that must be disabled before proceeding, if the
NSX Advanced Load Balancer Controller is used and other features are configured.
Navigate to Infrastructure > Cloud Resources > Service Engine Group, edit the Default-Group
and perform the following steps:
n Under Placement, select the Active/Standby option from High Availability Mode.
n Click Save.
Run the configuration audit API to validate that there are no configuration errors.
The following is the sample output for the configuration audit API. The following output
exhibits the configuration and features which are not supported in the Basic Edition. Perform
the required actions as per the output, before proceeding with the license edition change.
The following are the additional points to check while changing the default licensing tier from the
Enterprise Edition to the Basic Edition.
n The changing of license editions is supported only for NSX Advanced Load Balancer
Controllers and SEs on the same base version. The Controller and SEs on different patch
versions are also supported for the license tier change option.
Prerequisites
A config audit tool is introduced to check the configurations that are not supported for the target
edition. Run the configuration audit API to identify the Enterprise Edition features that need to be
removed and resolve them before changing the edition from Enterprise to Basic.
The configuration audit API performs licensing checks on all the objects in the system and reports
various violations. It ignores the violations in system default objects because they are handled
internally.
Use the NSX Advanced Load Balancer CLI or the REST API to check the unsupported
configuration and take the required actions:
Procedure
1 Check the available Enterprise Service Units on the Controller. The available Enterprise
Service Units must be sufficient to license the existing SEs. Changing from the Basic Edition to
the Enterprise Edition is only allowed if sufficient licenses are available on the Controller.
2 Import and upload the NSX Advanced Load Balancer Enterprise license using UI if the
Enterprise license is not available on the Controller.
4 Once the mode change is successful, the SEs are licensed with the Enterprise Service Units,
and the Basic Service Units are freed up.
Results
The new system-default objects are created according to the Enterprise edition support. The
configurations and features available on the Controller will be as per the Enterprise Edition
feature enforcement. All the features on NSX Advanced Load Balancer is available when the
NSX Advanced Load Balancer is in the Enterprise Edition.
FAQ
This topic answers basic questions about NSX Advanced Load Balancer-Basic edition.
n Would deploying x Basic LB SEs and y Enterprise LB SEs on the same NSX Advanced Load
Balancer Controller be allowed?
No, the Basic edition and the Enterprise edition licenses cannot exist on the same NSX
Advanced Load Balancer Controller.
n Will NSX Advanced Load Balancer-Basic edition allow AKO for ingress?
Yes, the Basic to Enterprise edition upgrade on the NSX Advanced Load Balancer Controller
is allowed. The only requirement is to have sufficient Enterprise edition licenses to license the
existing SEs in the cluster. Upgrade to the Enterprise edition would be seamless and cause
zero traffic disruption.
Note
n NSX Advanced Load Balancer Essentials for Tanzu is not an SKU and is not saleable.
n NSX Advanced Load Balancer Essentials for Tanzu does not require any licenses to be used.
n Content Library is not supported with NSX Advanced Load Balancer Essentials for Tanzu.
Licensing Requirement
Any VMware NSX Tanzu customer with active entitlements for Basic or Standard SKUs is eligible
to use VMware NSX Advanced Load Balancer Essentials for Tanzu. When the NSX Advanced
Load Balancer Controller is in the Essentials Edition, any number of SEs can be used without
requirements for any license, but it requires an active support entitlement for VMware Tanzu
Basic or Standard.
The following is the sample output for the configuration audit command when the target tier
is set as essentials. The following output exhibits the configurations and features which are
not supported in the Essentials Edition. Take the required actions as per the output of the
configuration output command and then change the license tier edition.
|
+--------------------+---------------
+---------------------------------------------------------------------------------------------
-----------------------------------------------------+
The following are the additional points to check while changing the licensing tier from the
Enterprise edition to the Essentials edition:
n Ensure that the base versions of NSX Advanced Load Balancer Controllers and NSX
Advanced Load Balancer SEs are same.
Prerequisites
A config audit tool is introduced to check the configurations that are not supported for the
target edition. Run the config audit tool to check the violations in the configurations. Resolve
all the violations before proceeding to change from the Enterprise Edition to the Essentials
edition. The configuration audit API performs licensing checks on all the objects in the system
and reports various violations. It ignores the violations in system default objects as they are
handled internally.
Use the following NSX Advanced Load Balancer CLI or the REST API to check the unsupported
configuration and take the required actions.
n NSX Advanced Load Balancer CLI: show configuration audit tier <tier_name>
Changing Licensing Tier from the Enterprise Edition to the Essentials Edition
Once all the features and configurations specific to the Enterprise edition are removed, the NSX
Advanced Load Balancer can be switched to the desired licensing tier.
You can change the licensing tier from the Enterprise edition to the Essential edition as follows.
4 Click Save.
After changing the licensing tier to the essentials edition, SEs do not require any licenses. The
Enterprise Service Units are freed up and are no more used when NSX Advanced Load Balancer
Controller runs in the essentials edition. The Controller will start enforcing essentials edition
feature restrictions.
The new System-Default objects are created according to the NSX Advanced Load Balancer
Essentials for Tanzu edition support.
The events related to the system objects and the configuration changes are available under
Operations > Events. Various events related to the deletion of network profiles, WAF Profiles,
and so on are listed here.
Follow the steps mentioned below to set up the Controller in the Enterprise edition.
Procedure
1 Check the available Enterprise Service Units on the Controller. The available Enterprise
Service Units must be sufficient to license the existing SEs. Changing from the essentials
edition to the Enterprise edition is only allowed if sufficient licenses are available on the
Controller.
2 Import and upload the NSX Advanced Load Balancer Enterprise license using UI if the
Enterprise license is not available on the Controller.
4 Once the mode change is successful, the SEs are entitled to the Enterprise Service Units.
5 The new system-default objects are created according to the Enterprise edition support. The
configurations and features available on the Controller will be as per the Enterprise Edition
feature enforcement. All the features on NSX Advanced Load Balancer are available when
the NSX Advanced Load Balancer is in the Enterprise edition.
No, NSX Advanced Load Balancer Essentials do not require any licenses. Support entitlement
is through VMware Tanzu SKUs (Basic or Standard).
n Can a Controller be upgraded from the Essentials Edition to the Enterprise Edition?
Yes, the Essentials to Enterprise Edition upgrade is allowed on the Controller. The only
requirement is to have sufficient Enterprise Edition licenses to license the existing SEs in
the Controller Cluster. Upgrade to Enterprise Edition can be seamless and cause zero traffic
disruption.
Note For complete information on procuring, installing, and managing a license, see Chapter 3
Licensing.
vCPU VMs, Baremetal, Container, Defines the maximum number of vCPUs (cores) across
Cisco CSP, Private, and all SEs. This is the default license mode. The SE vCPU
public cloud allocation is configured in the SE group.
n For example, a 10-vCPU license allows up to ten 1-
vCPU SEs, or five 2-vCPU SEs, or a mix of four 1-vCPU
SEs and three 2-vCPU SEs (across two SE groups),
and so on.
Per-VS license mode: If an SE group is configured in per-
app SE mode, a vCPU counts at a 25% rate for licensing
usage. For example, a 2-vCPU SE in the per-app SE group
utilizes a 0.5 vCPU license (2 * 0.25). Per-app SE mode
is limited to a maximum of two virtual services per SE.
This mode is suitable for deployments with dedicated per-
application load balancers. Per-VS license mode is not
supported for DNS virtual services.
Socket Baremetal, Cisco CSP Defines the total number of sockets that an SE can be
deployed on. This license is applicable for processors with
up to 14 cores.
High-core socket Baremetal, Cisco CSP Defines the total number of sockets that an SE can be
deployed on. This license is applicable for processors with
16 cores or more.
Bandwidth VMs, Baremetal, Container, Defines bandwidth license applicable to a single SE.
Cisco CSP, Private, and Available in the options of 25Mbps, 200Mbps, and 1Gbps
public cloud (for public cloud only). Multiple Bandwidth licenses cannot
be aggregated on a single SE.
Container-Core Container East-West Defines the maximum number of vCPUs (cores) across all
SEs deployed for East-West traffic in a Container Cluster.
This license is used for East-West traffic in a service mesh.
SaaS unit SaaS Defines the number of NSX Advanced Load Balancer
SaaS units needed in the SaaS instance to support the
required number of SEs and application instances.
Note A free trial license with all features supported by an enterprise license is available for
evaluation. Contact the NSX Advanced Load Balancer representative for more details.
n NSX Advanced Load Balancer provides an allowance of 10% of the configured license
capacity. This allowance can be utilized once the regular capacity of the license is exhausted.
n If the 10% allowance results in a fractional number, it is rounded up to the next higher integer.
n In the case of bandwidth licenses, the allowance is for each bandwidth license SKU separately
(25M, 200M, 1G BW).
n For an NSX Advanced Load Balancer Controller having 15 vCPU licenses, the overage
allowance is 1.5 vCPU (10% of 15vCPU). This value will be rounded up to two vCPUs. The
effective license value when the overage allowance is active is 17 vCPUs.
n For a Controller having 15 25M bandwidth licenses and ten 200M bandwidth licenses, the
allowance is 1.5 additional 25M bandwidth licenses (rounded up to two bandwidth licenses)
and one additional 200M bandwidth license.
Follow the instructions mentioned below to remove trial licenses from an NSX Advanced Load
Balancer Controller.
Instructions
1 Enable HTTP Basic authentication:
a Log into NSX Advanced Load Balancer UI, navigate to Administration > System Settings ,
and click EDIT.
b Under Access, select Allow Basic Authentication to activate HTTP basic authentication.
a Run the following cURL command from a host which can reach the NSX Advanced Load
Balancer Controller:
c Above command will prompt for the admin password. Enter the password for the admin
account.
a To verify that the trial license is removed from the system successfully, navigate to
Administration > Licensing in the NSX Advanced Load Balancer Controller UI and ensure
that it is not listed.
Updating an existing license follows the same process as adding a new license. When a license
file has the same license ID (with an updated limit and expiration date), uploading this license file
will update the existing entry in place.
Navigate to Administration > Licensing to update the existing license on a leader node in a
Controller Cluster.
For more information about License management on NSX Advanced Load Balancer, see NSX
Advanced Load Balancer-Enterprise Edition.
n Access Settings: Select options for securing management access to the NSX Advanced Load
Balancer system.
n DNS / NTP: Specify the Domain Name System (DNS) and Network Time Protocol (NTP)
servers used by NSX Advanced Load Balancer.
n Email/SMTP: Specify the source for Simple Mail Transfer Protocol (SMTP) traffic from NSX
Advanced Load Balancer.
n Upload HSM Packages: Upload a customer’s Hardware Security Module (HSM) software
package, to enable HSM features within NSX Advanced Load Balancer.
For more information, see Application Profile topic in the VMware NSX Advanced Load
BalancerConfiguration Guide.
n NTP/DNS Settings
n Email-SMTP Settings
NTP/DNS Settings
NTP (Network Time Protocol) settings are critical for the functioning of the NSX Advanced
Load Balancer. The analytics functionality in the Controller relies on synchronization between
the Controller in the cluster and SE. Controller synchronize time with the configured NTP servers
and the SE in turn synchronize time with the Controller.
NSX Advanced Load Balancer requires access to valid DNS and NTP servers for operation. Using
an NTP server is especially critical, without which NSX Advanced Load Balancer cannot function
properly.
Port 123 must be open on the NSX Advanced Load Balancer Controller to receive timestamps
over UDP.
2 Click the EDIT button to view the EDIT SYSTEM SETTINGS screen.
3 Under DNS/NTP tab, enter DNS Resolver(s). This is a comma-delimited list of DNS server IP
addresses. If a DNS server is not configured, NSX Advanced Load Balancer will not be able to
accept names for load-balanced servers, virtual services, mail servers, and similar inputs.
a Click Add.
b Enter the Key Number from the list of trusted keys used to authenticate this server.
c Select the Message Digest Algorithm used for NTP authentication. Message Digest (MD5)
and Secure Hash Algorithm (SHA1) are selected.
6 Under NTP Servers, select the Key Number for NTP authentication and the IP address of the
NTP Servers.
7 Click SAVE.
| tech_support_uploader_configuration | |
| auto_upload | False |
| portal_configuration | |
| enable_https | True |
| redirect_to_https | True |
| enable_http | True |
| sslkeyandcertificate_refs[1] | System-Default-Portal-Cert |
| sslkeyandcertificate_refs[2] | System-Default-Portal-Cert-EC256 |
| use_uuid_from_input | False |
| sslprofile_ref | System-Standard |
| enable_clickjacking_protection | True |
| allow_basic_authentication | True |
| password_strength_check | False |
| disable_remote_cli_shell | False |
| global_tenant_config | |
| tenant_vrf | False |
| se_in_provider_context | True |
| tenant_access_to_provider_se | True |
| email_configuration | |
| smtp_type | SMTP_LOCAL_HOST |
| from_email | [email protected] |
| mail_server_name | localhost |
| mail_server_port | 25 |
| docker_mode | False |
+-------------------------------------+----------------------------------+
The DNS Search Domain is the local domain name, which will be appended to a name that is not
fully qualified. For instance, if the DNS search domain is set to avinetworks.com, and the name to
be resolved is www, NSX Advanced Load Balancer will look up www.avinetworks.com.
| server | 0.us.pool.ntp.org |
| ntp_servers[2] | |
| server | 1.us.pool.ntp.org |
| ntp_servers[3] | |
| server | 2.us.pool.ntp.org |
| ntp_servers[4] | |
| server | 3.us.pool.ntp.org |
| portal_configuration | |
| enable_https | True |
| redirect_to_https | True |
| enable_http | True |
| sslkeyandcertificate_refs[1] | System-Default-Portal-Cert |
| sslkeyandcertificate_refs[2] | System-Default-Portal-Cert-EC256 |
| use_uuid_from_input | False |
| sslprofile_ref | System-Standard-Portal |
| enable_clickjacking_protection | True |
| allow_basic_authentication | True |
| password_strength_check | False |
| disable_remote_cli_shell | False |
| disable_swagger | False |
| api_force_timeout | 24 hours |
| minimum_password_length | 8 |
| global_tenant_config | |
| tenant_vrf | False |
| se_in_provider_context | False |
| tenant_access_to_provider_se | True |
| email_configuration | |
| smtp_type | SMTP_LOCAL_HOST |
| from_email | [email protected] |
| mail_server_name | localhost |
| mail_server_port | 25 |
| disable_tls | False |
| docker_mode | False |
| ssh_ciphers[1] | aes128-ctr |
| ssh_ciphers[2] | aes256-ctr |
| ssh_hmacs[1] | [email protected] |
| ssh_hmacs[2] | [email protected] |
| ssh_hmacs[3] | hmac-sha2-512 |
| default_license_tier | ENTERPRISE |
| secure_channel_configuration | |
| sslkeyandcertificate_refs[1] | System-Default-Secure-Channel-Cert |
| welcome_workflow_complete | False |
| fips_mode | False |
| enable_cors | False |
| common_criteria_mode | False |
+----------------------------------+------------------------------------+
{
},
"ntp_configuration": {
"ntp_server_list": [
{
"type": "V4",
"addr": "23.239.26.89"
},
{
"type": "V4",
"addr": "69.89.207.99"
}
]
}
}
| key_number | 5 |
| algorithm | NTP_AUTH_ALGORITHM_SHA1 |
| key | ff9a0d589668a0f66649abbd7dfb388d841f1f44 |
| ntp_servers[1] | |
| server | 23.239.26.89 |
| ntp_servers[2] | |
| server | 69.89.207.99 |
| key_number | 5 |
| tech_support_uploader_configuration | |
| auto_upload | False |
| portal_configuration | |
| enable_https | True |
| redirect_to_https | True |
| enable_http | True |
| sslkeyandcertificate_refs[1] | System-Default-Portal-Cert |
| sslkeyandcertificate_refs[2] | System-Default-Portal-Cert-EC256 |
| use_uuid_from_input | False |
| sslprofile_ref | System-Standard |
| enable_clickjacking_protection | True |
| allow_basic_authentication | True |
| password_strength_check | False |
| disable_remote_cli_shell | False |
| global_tenant_config | |
| tenant_vrf | False |
| se_in_provider_context | True |
| tenant_access_to_provider_se | True |
| email_configuration | |
| smtp_type | SMTP_LOCAL_HOST |
| from_email | [email protected] |
| mail_server_name | localhost |
| mail_server_port | 25 |
| docker_mode | False |
+-------------------------------------+------------------------------------------+
{
},
"ntp_configuration": {
"ntp_servers": [
{
"server": {
"type": "V4",
"addr": "23.239.26.89"
}
},
{
"key_number": 5,
"server": {
"type": "V4",
"addr": "69.89.207.99"
}
}
],
"ntp_authentication_keys": [
{
"key_number": 1,
"algorithm": "NTP_AUTH_ALGORITHM_MD5",
"key": "=I&FBDl,WM,en5Mn~DaG"
},
{
"key_number": 5,
"algorithm": "NTP_AUTH_ALGORITHM_SHA1",
"key": "ff9a0d589668a0f66649abbd7dfb388d841f1f44"
}
]
}
}
DHCP
If DHCP through dhclient provides NTP servers over the management interface, the SE uses
DHCP provided NTP servers as configuration for SE NTP synchronization.
Cloud Configuration
If DHCP does not provide NTP servers, NTP servers are acquired from the cloud
configuration. NTP server's configuration through cloud configuration is a bootup property,
and the SE must be restarted to apply this configuration.
Controller
| ntp_servers[1] | |
| server | 23.239.26.89 |
+------------------------------+--------------------------------------------+
[admin:ctrl]: >
ntpd
The Network Time Protocol daemon (ntpd) is an operating system program that maintains
the system time in synchronization with time servers using the NTP.
chronyd
n To synchronize the system clock with a reference clock, for instance, a GPS receiver.
SE NTP operation
In both modes of deployments (SE deployed as a VM or as a container on LSC), SE periodically
verifies if the NTP daemons can acquire and time sync with configured servers, and if SE is
unable to sync time with the configured servers, an event is raised. The event is periodically
repeated in 15 minutes unless the NTP time is synchronised.
Email-SMTP Settings
The NSX Advanced Load Balancer proactively sends emails for password reset operations, or as
a result of a triggered alert action that calls for email notifications to be sent to administrators
or monitoring systems. Emails are sent from the Controller, which requires the Controller to have
DNS and network access to a destination email server. When the Controller sends an email, the
email is sourced from the SMTP source.
Note The NSX Advanced Load Balancer supports non-TLS SMTP servers.
3 Under Email/SMTP, select Anonymous SMTP, Local, SMTP, or None as required for SMTP
Source.
5 Click SAVE.
2 Select Local from the SMTP Source option to send the email from a local host. Some
enterprise email servers might not accept this method.
3 Select SMTP from the SMTP Source option to send the email from a remote SMTP
server. This method is generally more trusted by the staff of security-conscious enterprise
environments. Under SMTP, enter the following details:
d Enter SMTP Port number. The default service port for SMTP is 25.
f Select Do not use TLS to disable the TLS connection to the mail server. By default, the
option is not selected.
4 Select Anonymous SMTP from the SMTP Source option to log in to the SMTP server without
the need for a username and password. The SMTP server must allow anonymous access.
Under Anonymous SMTP Server, enter the following details:
c Enter SMTP Port number. The default service port for SMTP is 25.
d Select Do not use TLS to disable the TLS connection to the mail server. By default, the
option is deselected.
| email_configuration | |
| smtp_type | SMTP_LOCAL_HOST |
| from_email | [email protected] |
| mail_server_name | localhost |
| mail_server_port | 25 |
| disable_tls | False |
| from_name | Admin Avinetworks |
Log in to the CLI and run the following commands using the configure systemconfiguration
mode.
configure systemconfiguration
email_configuration
disable_tls
save
save
HA of the Controller requires three separate Controller instances configured as a 3-node cluster.
Start with a single-node Controller deployment and use the following steps to add two additional
Controller nodes to form a 3-node cluster.
Note If the cluster is already deployed and you want to modify its node membership
or dismantle the cluster, see Changing NSX Advanced Load Balancer Controller Cluster
Configuration.
Leader node
n The leader can be any single node with configuration or without configuration.
n Using DHCP can cause issues when nodes reboot and their IP addresses change.
n The current release does not support the use of hostnames for cluster configuration.
Follower nodes
n An NSX Advanced Load Balancer Controller cluster can have 3 nodes, 1 leader node and
2 follower nodes.
n In AWS environments, follower nodes must have an initial password configured. For more
information, see Changes for Cluster Set-up for AWS Deployments topic in the VMware
NSX Advanced Load BalancerInstallation Guide.
n In all other environments, follower nodes must be using the default initial admin
credentials; do not run the initial setup wizard to set an admin password.
n Follower nodes are expected to be running the same NSX Advanced Load Balancer
base+patch version as the leader.
n Follower typically is a VM or container created from the the NSX Advanced Load
Balancer Controller installation package.
Caveats
The current release does not support the use of hostnames for cluster configuration.
n Controller Cluster IP
n Updating the Configuration Following NSX Advanced Load Balancer Controller IP Address
Change
n OpenStack Network Configuration for NSX Advanced Load Balancer Controller Cluster
Ensure that after using the setup wizard to install NSX Advanced Load Balancer on the follower
nodes, you do not make any other configuration changes on these nodes.
For more information about initial cluster deployment, see Deploying a VMware NSX Advanced
Load Balancer Controller Cluster topic in the VMware NSX Advanced Load BalancerInstallation
Guide.
Using the UI
The steps to deploy a cluster on the web interface of the NSX Advanced Load Balancer
Controller that will serve as the leader are as follows:
Procedure
For more details on Controller cluster IP address, see Controller Cluster IP. This will be the
shared management IP address of the cluster.
3 Specify the host IP addresses of each of the 3 nodes in the Node IP field of each Cluster
Node.
4 Click SAVE.
Note Ensure that you specify the host IP addresses of the NSX Advanced Load Balancer
Controller nodes instead of the IP addresses shown below:
Configure the cluster with the Controller nodes at [‘10.10.25.81’, ‘10.10.25.82’, ‘10.10.25.83’].
configure cluster
Updating an existing object. Currently, the object is:
+---------------+----------------------------------------------+
| Field | Value |
+---------------+----------------------------------------------+
| uuid | cluster-eb01bf05-7313-4a4f-91b6-21e46d3c237d |
| name | cluster-0-1 |
| nodes[1] | |
| name | 10.10.25.81 |
| ip | 10.10.25.81 |
| vm_ref | EB01BF05-7313-4A4F-91B6-21E46D3C237D |
| vm_mor | |
| vm_hostname | node1.controller.local |
| tenant_ref | admin |
+---------------+----------------------------------------------+
: cluster> nodes name 10.10.25.82 ip 10.10.25.82
New object being created
: cluster:nodes> save
: cluster> nodes name 10.10.25.83 ip 10.10.25.83
New object being created
: cluster:nodes> save
: cluster> save
To add or remove nodes from the cluster, bring this Controller down and spin it up with the new
configuration.
Procedure
It is recommended that each NSX Advanced Load Balancer Controller should be on the same
management network as the Controller that was already installed. If they are not on the same
management network, See Clustering NSX Advanced Load Balancer Controllers of Different
Networks. Do not perform any configuration on these newly installed NSX Advanced Load
Balancer Controller nodes.
a Pick an unused IP address from the same network to which the Controllers are connected.
During clustering, the Controller will automatically create a Neutron port with the
Controller cluster IP as a fixed IP address. It ensures that Neutron does not assign that
IP address for another purpose.
b Explicitly create a Neutron port and use the IP address assigned to that port as the
cluster IP address.
3 Use a web browser to navigate to the management IP address of the NSX Advanced Load
Balancer Controller that was already installed.
4 Navigate to Administration > Controller > Nodes and click Edit. The EDIT CLUSTER pop-up
window appears.
5 In the Controller Cluster IP field, enter the shared IP address for the Controller cluster.
Note
n When deploying a Controller Cluster in AWS, enter the Password that was created
for the new Controller. For more information, see Changes for Cluster Set-up for AWS
Deployments topic in the VMware NSX Advanced Load BalancerInstallation Guide. For
deployments in all other environments, the Password can be left blank to use the default
initial admin credentials.
7 After these steps, the incumbent Controller becomes the leader of the cluster and invites
the other Controllers to the cluster as follower members. NSX Advanced Load Balancer then
performs a warm reboot of the cluster. This process can take 2-3 minutes. The configuration
of the leader NSX Advanced Load Balancer Controller node is synchronized to the new
follower nodes when the cluster comes online following the reboot.
a The leader NSX Advanced Load Balancer Controller assigns the Controller cluster IP
address as a secondary IP address to its management interface.
b For OpenStack deployments, the leader also performs a Neutron API call to set Controller
cluster IP address in the list of allowed-address-pairs for the Neutron port corresponding
to its management interface.
c To use FQDNs instead of IP address of the Controller nodes, see the following section.
What to do next
Primary (leader)
Cluster IP:
10.30.163.63
10.30.163.68 0110
0110 0110
10.30.163.64 10.30.163.65
The leader Controller assigns the Controller cluster IP address as a secondary IP address to its
management interface.
For OpenStack deployments, the leader also performs a Neutron API call to set the Controller
cluster IP address in the list of allowed address pairs for the Neutron port corresponding to its
management interface.
To use FQDNs instead of IP addresses of controller nodes, see Cluster Configuration with DNS
Hostnames.
It is recommended to deploy the Controller cluster and its Service Engines in the same data
center. Tasks such as SE deployment (copying the SE image), log and metric collection, config
propagation, and state backup (such as persistence tables) require connectivity. Increased
latency can impact these operations and cause potential failures for data plane traffic.
If the latency is low enough, and the intent is to have the Controllers manage SEs in two or
more data centers, redundant Controllers are recommended to be congregated in one data
center. If the connectivity to the remote data center is lost, those SEs will not be able to receive
configuration updates, but will continue to operate until connectivity is restored.
Note The RTT (round-trip time) value between an NSX Advanced Load Balancer Controller and
SE must be less than 70 ms.
n The patch process requires logging into the NSX Advanced Load Balancer CLI as the admin
user.
n Being able to log in as an admin user implies the factory-default admin password has been
changed, as explained in the Strong Default Admin Password section.
Cluster configuration failed. Unable to add node 1.2.3.4: Login with default credentials
failed, clean reboot the node and retry.
n A Controller which has had its admin password changed has a configuration.
Transition Process
n Trust is established between the leader and new followers over HTTPS.
n The leader exports cluster state information to each follower over SSH.
n Each node locally applies the cluster state information, and restarts services.
n Existing NSX Advanced Load Balancer SEs, originally connected to only the leader node,
detect the cluster membership changes and connect to all the NSX Advanced Load Balancer
Controller nodes in the cluster.
Note During this transition, the REST API is not available. Generally, the transition takes four to
ten minutes.
Transition Status
The progress of transition to a 3-node cluster is indicated by the following status messages:
n Configuration is in progress: During this phase, NSX Advanced Load Balancer verifies
the configuration and verifies the state information on each of the new nodes. Only nodes
with no state can be added to the cluster. NSX Advanced Load Balancer also updates the
cluster database, and launches a configuration script on each of the nodes.
n Restoring: NSX Advanced Load Balancer configuration is synchronized across all nodes.
n Waiting for Service Engines to connect: NSX Advanced Load Balancer waits for any
known SEs that have not yet connected to and registered with any of the NSX Advanced
Load Balancer Controller nodes.
n Ready
If dismantling a cluster (returning to only a single NSX Advanced Load Balancer Controller node),
the status messages are the same. However, during the Configuration is in progress
phase, the state information on the followers is ignored.
Controller Cluster IP
The NSX Advanced Load Balancer Controller cluster IP address is a single IP address shared by
multiple Controllers within a cluster. It is the address to which the web interface, CLI commands,
and REST API calls are directed. As a best practice, to access the Controller, you must log in to
the cluster IP address instead of the IP addresses of individual Controller nodes.
For cluster IPs, the management IPs of the Controllers must all be in the same subnet.
Note You can use Route 53 with health checks to resolve the cluster's domain name to a
Controller IP address directly in AWS deployments where Controllers are on different subnets.
For complete information on cluster configuration in AWS, see NSX Advanced Load Balancer
ControllerCluster Configuration in AWS.
Cluster IP Advertisement
The NSX Advanced Load Balancer Controller cluster IP is ARPed by the primary Controller
(or leader, depending on the infrastructure type) within the cluster. When another Controller
becomes the primary, it will send out a gratuitous ARP to claim ownership of the cluster IP.
Administrators can manage any of the Controllers within the cluster by directly accessing the
cluster IP address. The Controllers will handle all replication, so there is no requirement to make
changes specifically on the primary Controller.
Note In NSX Advanced Load Balancer, the cluster IP is not referred to as floating IP. The term
floating IP applies only to OpenStack.
Method 1
The following are the steps to configure OpenStack Controller cluster:
2 Consider one Controller for cloud or cluster configuration. If Controller is not reachable from
outside OpenStack, assign Floating IP to Controller IP. You can access the controller using
Floating IP and configure Cluster VIP on the Controller.
3 Configure the cloud, wait for the status to be green indicating that the installation is
successful.
4 Create a port in OpenStack for cluster VIP. It should be in the NSX Advanced Load Balancer
management network.
037e661ac0cb44c89449e5e9b76b9a00 |
+-----------------------
+-----------------------------------------------------------------------------------+
5 Assign Floating IP to cluster VIP if needed. If the NSX Advanced Load Balancer management
network is reachable from outside, Floating IP is not required.
7 Use the cluster VIP or the cluster Floating IP to log in to NSX Advanced Load Balancer
Controller.
8 Disassociate the Floating IP from Controller IP. It is an optional step. (Because it is done in
Step 2).
Method 2
The following are the steps to configure OpenStack Controller cluster:
Procedure
2 Enter Name.
b Specify Hostname.
c Enter Password.
e Click SAVE.
5 Click SAVE.
The detailed information regarding assigning NSX Advanced Load Balancer Controller IP is
available in Deploying an EC2 Controller Instance section of Installing NSX Advanced Load
Balancer in Amazon Web Services topic in the VMware NSX Advanced Load BalancerInstallation
Guide.
The following snapshot shows the section of the script when you will be prompted to enter NSX
Advanced Load Balancer Controller IP.
For more information, see step number 7 of Installing NSX Advanced Load Balancer in a Linux
Server Cloud topic in the VMware NSX Advanced Load BalancerInstallation Guide.
Cluster configuration can be changed to use DNS hostnames instead of IP addresses by editing
node management IP or hostname in the Administration > Controller > Nodes page. It triggers a
new Cluster configuration process and updates all nodes to use DNS hostnames.
DNS is resolved when a secure connection is established between Controllers. This usually
happens when the cluster is configured or any of the nodes is rebooted. SEs resolve DNS
hostname of the Controller when establishing a secure connection to the Controller. This usually
happens when the SE is first created and when either an SE or a Controller reboots.
The cluster configuration process takes the DNS information of the leader node and updates
it in the new follower nodes. All nodes can reach the DNS server that is configured in the
Administration > System Settings > DNS/NTP section of the leader.
SEs can initiate connection using IP address from the VM metadata but are automatically
switched to use DNS hostname for the Controller nodes. So it is important for SEs to use the
correct DNS server to resolve Controller DNS hostname.
Note If you change the IP address of an NSX Advanced Load Balancer Controller node,
you must run a script to update the configuration. For more information, see Updating the
Configuration Following NSX Advanced Load Balancer Controller IP Address Change.
Procedure
2 Click EDIT.
3 Remove each of the follower IP addresses in the EDIT CLUSTER pop-up window.
4 Click SAVE.
Note Ensure that you specify the host IP addresses of theNSX Advanced Load Balancer
Controller nodes instead of the IP addresses shown as below.
configure cluster
Updating an existing object. Currently, the object is:
+---------------+----------------------------------------------+
| Field | Value |
+---------------+----------------------------------------------+
| uuid | cluster-eb01bf05-7313-4a4f-91b6-21e46d3c237d |
| name | cluster-0-1 |
| nodes[1] | |
| name | node-1 |
| ip | 10.10.25.81 |
| vm_ref | EB01BF05-7313-4A4F-91B6-21E46D3C237D |
| vm_mor | |
| vm_hostname | node1.controller.local |
| nodes[2] | |
| name | node-2 |
| ip | 10.10.25.82 |
| vm_ref | EC123A05-7313-4A4F-91B6-21E46D3D46AF |
| vm_mor | |
| vm_hostname | node2.controller.local |
| nodes[3] | |
| name | 10.10.25.83 |
| ip | 10.10.25.83 |
| vm_ref | EA12C05-7313-4A4F-91B6-21E46D3E256EA |
| vm_mor | |
| vm_hostname | node3.controller.local |
| tenant_ref | admin |
+---------------+----------------------------------------------+
: cluster> no nodes name node-2
Removed nodes with name=node-2
: cluster:nodes> save
: cluster> no nodes name node-3
Removed nodes with name=node-3
: cluster:nodes> save
: cluster> save
If you add or remove nodes from the cluster, you need to bring down this Controller and then
spin up the Controller up with the new configuration.
After saving,
n Each follower is re-imaged into its default state with no configuration and no access to the
leader.
n The leader holds the configuration. The SEs continue to connect to the leader.
For more information about the transition process, including descriptions of the status messages
that appear, see Clustering Patched Controllers.
Note During the transition from a cluster to a single node, the REST API will be unavailable for
around two minutes.
Prerequisites
Note If the node is removed and replaced with a different node (different VM, container, or
bare-metal server), see Changing NSX Advanced Load Balancer Controller Cluster Configuration.
The cluster has to be Replace a Follower Node with a New Node, and recreated using the new
node.
Procedure
2 Click EDIT.
4 Click SAVE.
Note Ensure that you enter the host IP addresses of the NSX Advanced Load Balancer
Controller nodes instead of the IP addresses shown in the example.
configure cluster
Updating an existing object. Currently, the object is:
+---------------+----------------------------------------------+
| Field | Value |
+---------------+----------------------------------------------+
| uuid | cluster-eb01bf05-7313-4a4f-91b6-21e46d3c237d |
| name | cluster-0-1 |
| nodes[1] | |
| name | node-1 |
| ip | 10.10.25.81 |
| vm_ref | EB01BF05-7313-4A4F-91B6-21E46D3C237D |
| vm_mor | |
| vm_hostname | node1.controller.local |
| nodes[2] | |
| name | node-2 |
| ip | 10.10.25.82 |
| vm_ref | EC123A05-7313-4A4F-91B6-21E46D3D46AF |
| vm_mor | |
| vm_hostname | node2.controller.local |
| nodes[3] | |
| name | 10.10.25.83 |
| ip | 10.10.25.83 |
| vm_ref | EA12C05-7313-4A4F-91B6-21E46D3E256EA |
| vm_mor | |
| vm_hostname | node3.controller.local |
| tenant_ref | admin |
+---------------+----------------------------------------------+
: cluster> no nodes name node-3
Removed nodes with name=node-3
: cluster:nodes> save
: cluster> nodes name node-4 ip 10.10.25.84
Removed nodes with name=node-4
: cluster:nodes> save
: cluster> save
Configuring the cluster with the Controller nodes at [u’10.10.25.81’, ‘10.10.25.82’, ‘10.10.25.84’]. If
you add or remove nodes from the cluster, you should bring down this Controller and back up
with the new configuration.
After saving,
n The removed follower node is sent an API request asking it to gracefully clear its state.
n Since the old follower is not always expected to clear its state, the leader will forcibly remove
it if necessary.
Procedure
1 Power down the leader node and leave it powered off for several minutes while one of the
followers assumes leadership.
Note The leader cannot be directly removed. Instead, it must be replaced with another
leader.
Procedure
1 Log in to the leader node, and use the steps to dismantle the cluster by Remove both
Followers (Dismantling the Cluster) Using the UI nodes.
2 On the new node, install NSX Advanced Load Balancer. It involves spinning up a new virtual
machine (VM) or container from the NSX Advanced Load Balancer Controller package (OVA,
QCOW or Docker image) on the new node.
3 Follow the steps mentioned in the Deploying an NSX Advanced Load Balancer Controller
Cluster section.
The cluster configuration and runtime configuration each contain the IP information for the
cluster. If the IP address of a leader or follower node changes (for example, due to DHCP), this
script must be run to update the IP information. The cluster will not function properly until the
cluster configuration is updated.
If the IP address of an NSX Advanced Load Balancer Controller node is changed for any reason
(such as DHCP), the following script must be used to update the cluster configuration. This
applies to single-node deployments and cluster deployments.
To repair the cluster configuration after an NSX Advanced Load Balancer Controller node’s IP
address is changed, run the change_ip.py script.
/opt/avi/python/bin/cluster_mgr/change_ip.py
Note
1 The change IP script only changes the NSX Advanced Load Balancer cluster configuration.
It does not change the IP address of the host or the virtual machine on which Controller
services are running. For example, it does not update the /etc/network/interfaces file
in a VMware-hosted Controller. One must change the IP address for the VM in the vApp
properties in VMware.
Note Before running the script, make sure that new IPs are working on all nodes and are
reachable across nodes. If one or more IPs are not accessible, the script makes a best-effort
update, but upon restoring connectivity, there is no guarantee the cluster will be back in sync.
The script must run on one of the nodes that is in the cluster. If the script is run on a node that is
not in the cluster, the script will fail. The following is the list of parameters:
n -i ipaddr: Specifies the new IP address of the node on which the script is run.
n -m subnet-mask: If the subnet also changed, use this option to specify the new subnet. Enter
the mask in the following format: 255.255.255.0
n -g gateway-ipaddr: If the default gateway also changed, use this option to specify the new
gateway.
*change_ip.py -i **ipaddr*
This command is run on node 10.10.25.81. Whereas no other nodes are specified, this is assumed
to be a single-node cluster (just this NSX Advanced Load Balancer Controller).
In the following example, the default gateway of the node also has changed.
Note Before executing change_ip.py, ensure that all new IPs are reachable from one another
over SSH ports (22 for regular, 5098 for containers).
This command is run on node 10.10.25.81, which is a member of a 3-node cluster that also
contains nodes 10.10.25.82 and 10.10.25.83.
The script can run on any of the nodes in the cluster. The following example is run on node
10.10.25.82.
Note After executing change_ip.py, in case of failure, use recover.py to convert nodes
to single nodes and create the 3-node cluster again. For more information, see Recover a Non-
Operational Controller Cluster.
To verify, go to the Controller nodes page and ensure all nodes are CLUSTER_ACTIVE.
1 Change the IP address of each Controller node within the cluster to the new IP by manually
editing the network-scripts on the host and changing the interface configuration.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address <ipv4 address>
netmask 24
gateway <ipv4 gw>
2 Ensure that the new Controller IP addresses are reachable in the network from the other
Controller nodes.
The above procedure is for a single node cluster specified in step 2. For a three-node cluster
deployment, change the IPs on all the Controllers and run the command as shown below from
any Controller node to update NSX Advanced Load Balancer Controller IP information for a
cluster:
Where,
n -i ipaddr: Specifies the new IP address of the node on which the script is run.
n -m subnet-mask: If the subnet also changed, use this option to specify the new subnet. Enter
the mask in the following format: 255.255.255.0.
n -g gateway-ipaddr: If the default gateway also changed, use this option to specify the new
gateway.
clusters. You will have a set of identically initialized Controller clusters, ready to be individualized
as needed.
Create setup.json
In most cases, these objects can be created by referring to the NSX Advanced Load Balancer
REST API section.
The following example updates the system configuration by adding 8.8.8.8 to the DNS
configuration:
{
"SystemConfiguration": [
{
"dns_configuration": {
"search_domain": "",
"server_list": [
{
"type": "V4",
"addr": "8.8.8.8"
}
]
}
}
]
}
In the case of complex objects such as the SSLKeyAndCertificate object, the JSON file can
be created by running a diff command against two configuration files. In a typical deployment,
generating setup.json on a test Controller environment is recommended. This generated file
can then be used as a template for actual deployments. An NSX Advanced Load Balancer
Controller configuration snapshot can be taken using the export CLI command.
Beyond this, configuration diff can be taken using a Python script.NSX Advanced Load Balancer
has written expressly to customize initial configuration of another Controller.
User passwords can be encrypted using the following code when creating setup.json with the
User object.
reboot
If the setup.json size is bigger then than the allowable limit, setup.json can be uploaded and
referred to in the deployment phase.
User data can refer to the file using the “url” or “file” tag. Following is an example of my-avi-
config-url.json with URL.
{
"META": {
"init_config": {
"url": "https://s3-us-west-2.amazonaws.com/avi-controller-configs/linuxserver-
awsipam-setup.json"
}
}
}
{
"META": {
"init_config": {
"file": "/vol/linuxserver-awsipam-setup.json"
}
}
}
If the setup.json size is bigger than the allowable limit, cut-paste the my-avi-config-
url.json into the user-data section during launch from AWS Web Console.
{
"META": {
"init_config": {
"s3": "avi-controller-configs/linuxserver-awsipam-setup.json"
}
}
}
n Private through RBAC on VM: use the s3 style. The VM role must have s3:GetObject action
allowed to be able to s3-get the object using IAM.
n Private through RBAC on S3-bucket: use the s3 style. The VM role must have AWS access.
The S3 bucket must have permissions for the account or user or VM role to download the
object.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::139284885014:role/BM-AviController-Role",
"arn:aws:iam::139284885014:root"
]
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::avi-controller-configs/*"
}
]
}
Use the required JSON template in the Custom Data field. For reference, the below JSON
template is for adding 8.8.8.8 to DNS configuration. Copy the JSON configuration mentioned
below, and add it to the Custom Data field in the ARM template.
{
"SystemConfiguration": [
{
"dns_configuration": {
"search_domain": "",
"server_list": [
{
"type": "V4",
"addr": "8.8.8.8"
}
]
}
}
]
}
Controllers communicate with each other over a single management IP address, the Controller
Cluster IP. They also use this path to communicate with all SEs within the fabric.
Although Controllers do not have to exist within the same limitations, consider the following
conditions:
n Controllers must be within the same region (ideally the same data center). It helps
synchronize the databases and perform actions such as log indexing and data retrieval.
n Controllers have the option of sharing a cluster IP address. The cluster IP address is owned
by the primary Controller within the cluster. To share an IP address, all Controllers must have
a NIC in the same network.
n Each Controller must have access to the IP addresses of other Controllers through configured
network routes.
n RTT (round-trip time) value between two Controller nodes must be less than 20 milliseconds.
Considerations
AWS
AWS Availability Zones (AZs) provide redundancy and separate fault domains. All AWS
regions support a minimum of two AZs. To leverage HA provided by AWS AZs, it is
recommended to deploy different NSX Advanced Load Balancer Controller instances of a
cluster in different AZs.
Azure
The Controller cluster must be running inside the Azure cloud. Additionally, consider the
following information:
n Azure credentials (username and password or application ID) which have contri butor
privilege access over the Controller cluster VMs and AviController role access over the
virtual network that is hosting the Controller cluster.
n Subscription_id of the subscription where the Controller virtual machines are running.
OpenStack
OpenStack requires NSX Advanced Load Balancer to maintain a cluster IP address. So, NSX
Advanced Load Balancer deployed into an OpenStack cloud does not support clustering of
NSX Advanced Load Balancer Controllers present in different networks.
In a deployment that uses a single Controller, that Controller performs all administrative functions
and all analytics data gathering and processing.
Adding two additional nodes to create a three-node cluster provides node-level redundancy for
the Controller and maximizes performance for CPU-intensive analytics functions. Whereas the
lone Controller in a single-node deployment performs all administrative functions and analytics
data collection and processing, these tasks are distributed in three-node cluster.
In a three-node Controller cluster, one node is the primary (leader) node and performs the
administrative functions. The other two nodes are followers (secondaries), and perform data
collection for analytics, in addition to standing by as backups for the leader.
Quorum
NSX Advanced Load Balancer Controller-level HA requires a quorum of Controller nodes to be
up. In a three-node Controller cluster, quorum can be maintained if at least two of the three
Controller nodes are up. If one of the Controllers fails, the remaining two nodes continue service
and NSX Advanced Load Balancer continues to operate. However, if two of the three nodes go
down, the entire cluster goes down, and NSX Advanced Load Balancer stops working.
Failover
Each Controller node in a cluster periodically sends heartbeat messages to the other Controller
nodes in the cluster through an encrypted SSH tunnel using TCP port 22 (port 5098 if running as
Docker containers).
The heartbeat interval is ten seconds. The maximum number of consecutive heartbeat messages
that can be missed is four. If one of the Controllers does not hear from another Controller for 40
seconds (four missed heartbeats), the other Controller is assumed to be down.
If only one node is down, quorum is maintained, and the cluster can continue to operate.
n If a follower goes down but the leader node remains up, access to virtual services continues
without interruption.
n If the primary (leader) node goes down, the member nodes form a new quorum and elect a
cluster leader. The election process takes about 50-60 seconds, and during this period, there
is no impact on the data plane. The SEs will continue to operate in the headless mode, but the
control plane service will be unavailable. During this period, users will be unable to create a
VIP through LBaaS or use the NSX Advanced Load Balancer UI, API, or CLI.
In this procedure, the Controller node that is already deployed in the singe-node deployment is
referred to as the incumbent Controller.
Procedure
1 Install one new NSX Advanced Load Balancer Controller node. During installation, configure
the following settings:
n Gateway address
2 Connect the management interface of each new Controller node to the same network as the
incumbent Controller. After the incumbent Controller detects the two new Controller nodes,
the incumbent Controller will become the primary (leader) Controller for the three-node
cluster.
3 Use a web browser to navigate to the management IP address of the primary (leader)
Controller.
4 Navigate to Administration > Controller > Nodes, and click Edit. The Edit CLUSTER pop-up
window appears.
5 In the Controller Cluster IP field, enter the shared IP address for the Controller cluster.
6 In the Public IP Address or Hostname field, enter the management IP addresses of the new
Controller nodes.
Note Password for the admin account is required for each node of the cluster for
configuring cluster in AWS Cloud.
7 After these steps, the incumbent Controller becomes the primary (leader) for the cluster
and invites the other Controllers to the cluster as members. NSX Advanced Load Balancer
then performs a warm reboot of the cluster. This process can take two- three minutes. The
configuration of the primary (leader) Controller is synchronized to the new member nodes
when the cluster comes online following the reboot.
You can create a three-node cluster by adding two additional nodes. This three-node cluster
provides a node-level redundancy for the Controller and maximizes performance for CPU-
intensive analytics functions. However, for a single Controller in a single-node deployment, it
performs all administrative functions; collects and processes all the analytics data. These tasks
are distributed in a three-node cluster.
In a three-node Controller cluster, one node is the primary (leader) node and performs the
administrative functions. The other two nodes are followers (secondaries), and perform data
collection for analytics, in addition to standing by as backups for the leader.
Quorum
The Controller level HA requires a quorum of NSX Advanced Load Balancer Controller nodes to
be up. In a three-node Controller cluster, quorum can be maintained if at least two of the three
Controller nodes are up. If one of the Controllers fail, the remaining two nodes continues service
and NSX Advanced Load Balancer continues to operate. However, if two of the three nodes go
down, then the entire cluster goes down, and NSX Advanced Load Balancer stops working.
Failover
Each Controller node in a cluster periodically sends heartbeat messages to the other Controller
nodes in a cluster, through an encrypted SSH tunnel using TCP port 22 (port 5098 if running as
Docker containers).
Primary (leader)
0110
Heartbeat
messages
0110 0110
The heartbeat interval is ten seconds. The maximum number of consecutive heartbeat messages
that can be missed is four. If one of the Controllers does not hear from another Controller for 40
seconds (four missed heartbeats), then the other Controller is assumed to be down.
If only one node is down, then the quorum is still maintained and the cluster can continue to
operate.
If a follower node goes down but the primary (leader) node remains up, then the access to virtual
services continues without any interruption.
Primary (leader)
0110
n If the primary (leader) node goes down, the member nodes form a new quorum and elect a
cluster leader. The election process takes about 50-60 seconds and during this period, there
is no impact on the data plane. The SEs will continue to operate in the Headless mode, but
the control plane service will not be available. During this period, you cannot create a VIP
through LBaaS or use the NSX Advanced Load Balancer user interface, API, or CLI.
Primary (leader)
node down.
No reply to heartbeats.
Headless mode
(during election of
new primary/leader)
0110 0110
In this procedure, the NSX Advanced Load Balancer Controller node that is already deployed
in the singe-node deployment is referred to as the incumbent NSX Advanced Load Balancer
Controller.
To convert a single-node NSX Advanced Load Balancer Controller deployment into a three-node
deployment, follow the steps below:
1 Install a single new Controller node. During installation, configure the following settings:
n Gateway address
2 Connect the management interface of each new Controller node to the same network as the
incumbent Controller. After the incumbent Controller detects the two new Controller nodes,
the incumbent Controller becomes the primary (leader) Controller node for the three-node
cluster.
3 Use a web browser to navigate to the management IP address of the primary (leader)
Controller node.
4 Navigate to Administration > Controller > Nodes and click Edit. The Edit Cluster window
appears.
5 In the Controller Cluster IP field, specify the shared IP address for the Controller cluster.
6 In the Public IP Address or Host Name field, specify the management IP address of the new
Controller node.
Note To configure cluster in AWS Cloud, each node of the cluster requires admin account
credentials.
The incumbent Controller becomes the primary (leader) for the cluster and invites the other
Controller to the cluster as members.
The NSX Advanced Load Balancer then performs a warm reboot of the cluster. This process can
take two or three minutes. After the reboot, the configuration of the primary (leader) Controller is
synchronized to the new member nodes once the cluster appears online.
Primary (leader)
Cluster IP:
10.30.163.63
10.30.163.68 0110
0110 0110
10.30.163.64 10.30.163.65
n Controller Cluster IP
For more information on how to Enable Per-app SE mode for a Service Engine Group, see
Per-app SE Mode topic in the VMware NSX Advanced Load BalancerConfiguration Guide.
Synchronize the list of sites across all participating Controller sites using a script, Ansible or
Terraform, to create a primary list of Controller sites. Thereafter, this information is propagated
to every Controller deployment using one of the automation methods.
For example, to define the trio of Controller sites mentioned in the subsequent Controller
Site Selector Use section, you must have two JSON payloads to POST to each /api/
controllersite. The two POSTs from any given Controller must point to the other two. Thus, in
this example, there is a total of six POSTs.
Note Adding the local Controller as a Controller site entry is no longer required. If at least one
record does not match the current site, then NSX Advanced Load Balancer automatically shows
the current site’s hostname (if applicable) or IP address.
"name": "Mars",
"address": "192.0.2.20"
}, {
"name": "Venus",
"address": "192.0.2.30"
"name": "Earth",
"address": "192.0.2.10"
}, {
"name": "Venus",
"address": "192.0.2.30"
"name": "Earth",
"address": "192.0.2.10"
}, {
"name": "Mars",
"address": "192.0.2.20"
Note
n A Controller site maps to one Controller name and IP address. Thus, for the feature to work
with any Controller in a cluster, three local Controller names and corresponding IP addresses
must be configured as sites. In the above example, consider three POSTs as shown below:
"name": "Earth",
"address": "192.0.2.10"
}, {
"name": "Earth2",
"address": "192.0.2.11"
}, {
"name": "Earth3",
"address": "192.0.2.12"
n The REST API call api/controllersite reveals the set to which the user has the
PERMISSION_CONTROLLERSITE access right. Lack of PERMISSION_CONTROLLERSITE hides the
Controller site name and drop-down icon from the main menu bar.
n Controller sites can only be added/modified through the CRUD call at /api/controllersite
with X-Avi-Version set in the header. Adding a Controller site to a list of sites requires that at
least two fields be given in the payload, name and address.
n Site configuration is locally significant, that is, adding site2 to site1’s list does not automatically
result in site1 appearing in site2’s list.
2 On the other hand, if there are multiple records, a V-shaped drop-down icon appears to the
left of the ellipsis (three dots).
3 Clicking on the drop-down icon reveals the Controller sites within the set to which the user
has access.
4 Hovering over a particular Controller name causes it to be highlighted. Select the Controller to
switch to that site.
5 The selected Controller opens in a new tab, while the previous tab remains open in the
background. The user can now communicate directly with the new Controller. Due to SSO
being active, no login screen was presented by the first Controller. The login was performed
automatically, behind the scenes.
The NSX Advanced Load Balancer Controller is deployed as a three-node cluster for high
availability and scalability. These nodes must be deployed such that the RTT (round-trip time)
value between two Controller nodes is less than 20 milliseconds. In public cloud deployments
such as AWS, a region has multiple availability zones. In such deployments, as a best practice,
each Controller node should be deployed in a separate AZ.
Controller cluster deployment considerations are straightforward where the region has three or
more AZs. However, in many disaster recovery (DR) deployments, there are only two AZ across
which the three Controller cluster nodes are deployed, as depicted below:
C1 C2 C3
SE SE SE SE SE SE
The Controller cluster will be UP in partition scenarios if at least two nodes are UP and connected.
SEs will attempt to connect to the active partition. If they cannot connect to the active partition,
they will operate without a Controller in a headless fashion and continue to serve application
traffic.
In the above deployment, if AZ-2 goes DOWN, C1 will be brought down due to a lack of quorum. In
such a scenario, manual intervention is needed to bring the Controller cluster UP.
At a high level, the manual workflow provides a way to recover the remaining node as a stand-
alone cluster and permits two new nodes to be added when appropriate. The procedure is
intentionally kept manual to force the user to recover the partitions carefully.
Secure channel credentials for all SEs will be revoked. SEs connecting to C2 or C3 during this
time will detect that the Controller cluster is in manual recovery state; they will reboot themselves
to no longer serve any application traffic. Once an SE comes UP, it will try to connect to C1 to
establish normal operations. REST API commands sent to the Controllers, C2, and C3 will fail with
a status code of 520, indicating that these nodes must be reset to factory defaults using the
clean_cluster.py script.
Controller Cluster
In a Controller cluster, the three Controllers divide the workload among themselves. If one
Controller fails, the remaining two Controllers continue operations as normal with no impact to
data plane traffic.
If the failed Controller was the cluster leader, one of the remaining Controllers takes over as
cluster leader. This change in leadership has no direct impact on operations. If the Controller
cluster IP address has been created, that IP address will move to the new leader, which will begin
ARPing (advertising) the address.
Cluster Quorum
A Controller cluster requires at least two of its three nodes to be up, in order to maintain quorum.
This eliminates the “split brain” scenario in which two devices are simultaneously active (primary)
with potentially conflicting configuration updates.
If a Controller is still online, but has merely lost contact with the other Controllers, it will no
longer be part of the cluster until it has regained connectivity. So if one Controller and multiple
Service Engines are created in each of the three data centers, and one data center has lost
connectivity to the other two data centers, the Controller at the isolated data center will not
accept configuration changes as a standalone. The isolated Controller must either reconnect with
the cluster or be formally demoted to a standalone.
1 If the Controller was in a virtual machine, delete the VM from the cloud orchestrator.
2 From the web interface of another Controller that is still up, delete the IP address of the failed
Controller. Navigate to Administration > Controller.
Note Do not log into the web interface of the new Controller. Only perform initial setup such
as selecting the cloud orchestrator.
4 From the existing Controller, add the IP address of the new Controller. After a few minutes,
the status of the cluster must turn green.
Standalone Controller
In a standalone Controller configuration, a Controller failure leaves the NSX Advanced Load
Balancer system in a headless state. In a headless state, existing Service Engines (SEs) will
continue to operate with the last instructions they were given.
No new configuration changes are possible until a Controller is restored. This can be done
by rebuilding a new Controller, which is disruptive to existing connections, or by bringing the
existing Controller back online, which is transparent to existing data traffic.
While in a headless state, SEs will attempt to buffer client logs if sufficient disk space is available.
If a Controller is temporarily offline, such as when the Controller’s host is rebooted, the SEs will
reconnect after the Controller returns, allowing the buffered client logs to be retrieved.
1 To recover the cluster, you must first convert the remaining healthy Controller node to a
single-node cluster configuration. Thereafter, two new nodes can be added to the cluster.
2 There are two ways of recovering a Controller, that is, with configuration and without
configuration. It is important to recover one node with configuration to ensure it is made
the Controller leader while other nodes are added as followers to the cluster:
n By default, this script reboots the connected SEs, unless the script is run with the
switch.
/opt/avi/scripts/clean_cluster.py --skip-se-reboot
n The only way to login to the Controller node after running the script is to reset the
admin password through the UI.
Typical Recovery
To convert the remaining Controller node to a single-node cluster while preserving the NSX
Advanced Load Balancer configuration, execute the following script from the root account. If you
attempt to execute it from a non-root account, the script will fail with a Permission denied
message. Run sudo and enter the admin password to be promoted to root before running the
script.
root@controller1:/home/admin# /opt/avi/scripts/recover_cluster.py
The script will request confirmation as a precaution and remind the user must run the script as
root.
It is highly recommended to power off the other Controllers that were part of the cluster when
running the recover_cluster.py script. Failure to do so can put the current and other nodes in an
inoperable state.
The script stops all services on the Controller and restarts them. The Controller will be down and
inaccessible for a few minutes.
Once the script finishes, you can log into the Controller node as a single-node cluster. To make
this a highly available three-node cluster, add two new, unconfigured Controllers nodes to the
cluster.
Note Ensure that the Controllers are on the same base and patch version.
GET /api/cluster
{
url: "https://10.10.5.27/api/cluster",
uuid: "cluster-005056ac9e91",
name: "cluster-0-1",
tenant_ref: "https://10.10.5.27/api/tenant/admin",
virtual_ip: {
type: "V4",
addr: "10.10.5.27"
},
nodes: [
{
ip: {
type: "V4",
addr: "10.10.5.16"
},
vm_hostname: "node1.controller.local",
vm_uuid: "005056ac9e91",
name: "10.10.5.16",
}
]
}
In this example, the cluster contains only a single member. When NSX Advanced Load Balancer is
installed, the Controller created during installation is placed in a cluster as the primary Controller.
The management IP address is configured as the cluster IP address.
For controller-ip, specify the management IP address of the individual Controller node, not the
IP address to be assigned to the cluster. The cluster IP is specified under virtual_ip.
PUT /api/cluster
{
uuid: "cluster-005056ac9e91",
name: "cluster-0-1",
virtual_ip: {
type: "V4",
addr: "10.10.5.27"
},
nodes: [
{
ip: {
type: "V4",
addr: "10.10.5.16"
},
vm_hostname: "node1.controller.local",
vm_uuid: "005056ac9e91",
name: "10.10.5.16",
},
{
ip: {
type: "V4",
addr: "10.10.5.15"
},
name: "10.10.5.15",
},
{
ip: {
type: "V4",
addr: "10.10.5.17"
},
name: "10.10.5.17",
}
]
}
PUT /api/cluster
{
uuid: "cluster-005056ac9e91",
name: "cluster-0-1",
virtual_ip: {
type: "V4",
addr: "10.10.5.27"
},
nodes: [
{
ip: {
type: "V4",
addr: "10.10.5.16"
},
name: "10.10.5.16",
}
]
}
The cluster is ready for operation when the cluster_state is CLUSTER_UP_HA_ACTIVE (for a 3-node
cluster) or CLUSTER_UP_NO_HA (for a 1-node cluster).
GET /api/cluster/runtime
{
node_info: {
uuid: "005056ac115e",
mgmt_ip: "10.10.5.15",
has_config: "True",
ip: "node2.controller.local",
vm_mor: "vm-54736",
version: "16.1.1(9014) 2016-03-26 01:05:26 UTC",
vm_uuid: "005056ac115e"
},
node_states: [
{
up_since: "2016-03-26 16:06:21",
state: "CLUSTER_ACTIVE",
role: "CLUSTER_LEADER",
name: "10.10.5.15"
},
{
up_since: "2016-03-26 16:07:08",
state: "CLUSTER_ACTIVE",
role: "CLUSTER_FOLLOWER",
name: "10.10.5.17"
},
{
up_since: "2016-03-26 16:07:31",
state: "CLUSTER_ACTIVE",
role: "CLUSTER_FOLLOWER",
name: "10.10.5.16"
}
],
service_states: [],
cluster_state: {
up_since: "2016-03-26 16:06:21",
progress: 100,
state: "CLUSTER_UP_HA_ACTIVE"
}
}
For more information about Controller cluster architecture, see High Availability for NSX
Advanced Load Balancer Controllers.
In AWS environments, AWS Availability Zones (AZs) provide redundancy and separate fault
domains. All AWS regions support a minimum of two AZs. To leverage the HA provided by AWS
AZs, it is recommended to deploy different Controller instances of a cluster in different AZs.
Each NSX Advanced Load Balancer Controller will receive an IP address from a different subnet
given that an AWS subnet does not span across AZs.
In this scenario, it is recommended to create a FQDN in AWS Route 53, and associate all three
Controller IPs with this FQDN. In addition, Route 53 health checks can be used in conjunction
with multivalue routing when the FQDN is added to a public zone. This ensures that only healthy
Controller IPs are returned.
Procedure
For more information on MSI based authentication, see Support for Managed Services
Identify (MSI) based Authentication for Microsoft Azure topic in the VMware NSX Advanced
Load BalancerInstallation Guide.
2 Configure the Controller cluster IP. To add the cluster IP within the UI, navigate to
Administration > Controller > Nodes > Edit. Enter the Name and the new address to the
Controller Cluster IP field.
3 Click Save.
Note The configured cluster IP must belong to the same VNet as the Controller nodes.
4 Remove a pre-configured cluster IP. If a cluster IP was configured using ControlScripts for a
release prior to 17.2.5, follow the steps below to ensure that it is removed:
Procedure
1 Change the IP address of each Controller node within the cluster to the new IP by manually
editing the network-scripts on the host and changing the interface configuration.
2 Ensure that the new Controller IP addresses are reachable in the network from the other
Controller nodes.
The long command line below contains the Controller IP in a sample /etc/systemd/system/
avicontroller.service file.
4 On each Controller host the administrator would run this trio of commands:
systemctl daemon-relaod
systemctl stop avicontroller
systemctl start avicontroller
5 Corresponding to the sample in step 3, on any one of the Controller containers, the
administrator would run these commands:
cd /opt/avi/python/bin
python change_ip.py -i 10.122.0.111 -o 10.122.0.112 -o 10.122.0.113
Results
For more information on deploying a cluster, see Chapter 5 NSX Advanced Load Balancer
Controller Cluster.
The following sections are for creating OpenStack floating IP and binding that with the cluster IP:
Write Mode
1 Access OpenStack Horizon CLI.
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| description | |
| fixed_ip_address | |
| floating_ip_address | 10.130.170.86 |
| floating_network_id | c1c045f5-2d0f-43e3-ab43-55f990cde9b7 |
| id | 4ec57a12-7357-461a-80f6-d87ae7536335 |
| port_id | |
| router_id | |
| status | DOWN |
| tenant_id | 904fb201a92f443297bffca3b354d52d |
+---------------------+--------------------------------------+
+--------------------------+--------------------------------------+
| Field | Value |
+--------------------------+--------------------------------------+
| description | |
| fixed_ip_address | 172.16.0.65 |
| floating_ip_address | 10.130.170.86 |
| floating_network_id | c1c045f5-2d0f-43e3-ab43-55f990cde9b7|
| id | 4ec57a12-7357-461a-80f6-d87ae7536335|
| port_id | 95665123-64a4-453a-abde-70fdb3d2ae2a|
| router_id | 2d3b93a2-7804-4841-90c4-be15b148d099|
| status | ACTIVE |
| tenant_id | 904fb201a92f443297bffca3b354d52d |
+--------------------------+--------------------------------------+
2 Add the cluster IP and the secondary IP for the cluster leader.
root@172-16-0-66:~# ip a
eth0: (BROADCAST,MULTICAST,UP,LOWER_UP) mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:bd:5a:0f brd ff:ff:ff:ff:ff:ff
inet 172.16.0.66/24 brd 172.16.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.16.0.65/32 scope global eth0:1 Cluster IP
No-Access Mode
For OpenStack No-Access cloud type, the AAP entries need to be configured manually using the
following command.
"fa:16:3e:47:6b:70"} |
| binding:host_id | openstack-
mitaka |
| binding:profile |
{} |
| binding:vif_details | {"port_filter":
true} |
| binding:vif_type |
bridge |
| binding:vnic_type |
normal |
| created_at |
2018-01-12T13:58:02 |
| description
| |
| device_id | 2adedfc3-75d6-4296-ad18-
bfc38873485c |
| device_owner |
compute:nova |
| extra_dhcp_opts
| |
| fixed_ips | {"subnet_id": "5785c1cf-a222-4b0a-9343-003153f37a65",
"ip_address": "172.16.0.133"} |
| id | d0bf0bda-02e2-46bf-
abd2-0d05cc4654df |
| mac_address |
fa:16:3e:47:6b:70 |
| name
| |
| network_id | dd9dab27-9228-4765-96f2-
d56194136ba0 |
| port_security_enabled |
True |
| security_groups | 3cc1092e-538c-4ff7-b4ac-
eeff84731f75 |
| status |
ACTIVE |
| tenant_id |
904fb201a92f443297bffca3b354d52d |
| updated_at |
2018-01-12T14:19:06 |
+--------------------------
+----------------------------------------------------------------------------------------+
Create the neutron port for the VIP by using the following command.
Note When the leader Controller fails (or reboots), a follower Controller will take over the
cluster IP (in this case, 172.16.0.65), and the mapping between floating IP (10.130.170.86) and
cluster IP (172.16.0.65) will not change. Therefore without intervention, the floating IP and cluster
IP association will work as expected.
n How many nodes are supported in an NSX Advanced Load Balancer Controller cluster?
NSX Advanced Load Balancer Controller clusters can include either 1 (standalone mode) or 3
Controller nodes in a cluster.
n How many nodes are needed for the NSX Advanced Load Balancer Controller cluster to be
operational?
A three-node cluster requires a quorum (majority) of the nodes to be present for the cluster
to be operational. It means at least two nodes must be up.
n Can you explain how the three nodes in an NSX Advanced Load Balancer Controller are used
during normal operation?
Among the three nodes, a leader node is elected and orchestrates the process startup or
shutdown across all the active members of the cluster. Configuration and metrics databases
are configured to be active on the leader node and placed in standby mode on the follower
nodes.
This node is removed from the active member list. The work that was performed on this node
is re-distributed among the remaining nodes in the NSX Advanced Load Balancer Controller
cluster.
One of the follower nodes is promoted as a leader. This triggers a warm restart of the
processes among the remaining nodes in the cluster. The warm standby is required to
promote the standby configuration and metrics databases from standby to active on the
new leader.
Note During warm restart, the Controller REST API is unavailable for a period of 2-3 minutes.
The entire cluster becomes non-operational until at least one of the nodes up. A quorum (two
out of three) of the nodes must be up for the cluster to be operational.
n Will there be a disruption to traffic during cluster convergence (single or multiple nodes go
down and come back)?
When single or multiple nodes go down and come back, the cluster is non-operational, the
SEs continue to forward traffic for the configured virtual services. This is referred to as
headless mode.
The analytics (logs and metrics) are buffered on the SEs. When the Controller cluster is
once again operational, the cluster re-synchronizes with the SEs and initiates the collection of
metrics and logs. Data plane traffic continues to flow normally throughout this time.
n Recover a non-operational cluster where two of the three nodes are permanently down and
not recoverable
n Recover the system if all three NSX Advanced Load Balancer Controller nodes are
permanently down and not recoverable.
For detailed information, see Backup and Restore of NSX Advanced Load Balancer
Configuration.
For detailed information, see Changing NSX Advanced Load Balancer Controller Cluster
Configuration.
n Can the NSX Advanced Load Balancer Controller nodes in a cluster have different resource
allocations (memory, CPU, and drive space)?
It is recommended to allocate these same resources to each of the three nodes within
the Controller cluster. In course of time, if there is a need to re-size (change resource
allocations) the NSX Advanced Load Balancer Controller in the cluster, to accommodate
growth, change resource allocations on one NSX Advanced Load Balancer Controller node at
a time. However, it is expected that all nodes within the cluster will eventually be resized to
the same allocations.
n Can the NSX Advanced Load Balancer Controllers in a cluster be in different subnets?
Yes. This configuration is supported and can even be preferred for certain topologies for
improved fault tolerance. However, a limitation with placing the Controllers in separate
subnets is that the cluster IP address is not supported. The cluster IP address requires all
Controller nodes to be in the same subnet.
No. Currently, this is not a supported operation. The leader is chosen during initial
deployment of the cluster or when recovering a fully down cluster. However, the leader
cannot be manually changed while the cluster is operational.
NSX Advanced Load Balancer Controller Controllers participate in election of their leader, and
automatically decides who the new leader must be in case of failure.
n What timers are used during cluster failover? Are the cluster failover timers configurable?
Leader failure
If the leader Controller of the cluster fails, this triggers an internal warm restart of the
Controller processes. Typically, this takes around 2-3 minutes after it is detected that the
leader has failed.
In the case of an ungraceful power-off of the leader, it can take up to 30 seconds to detect
that the leader has failed.
These timers are tuned based on testing but are not configurable.
Yes. Nearly any configuration changes can be made on any of the Controller nodes.
Exceptions:
n What is the recommended cluster deployment option for multiple data centers in different
regions?
NSX Advanced Load Balancer recommends deploying the Controller Cluster only within a
single region. However, the member nodes are deployed across multiple availability zones
within the region. If there are multiple regions, it is recommended to deploy one Controller
Cluster per region. (For more information, see Clustering NSX Advanced Load Balancer
Controllers of Different Networks).
n How to import and export NSX Advanced Load Balancer metrics database?
n Stop the process supervisor by running the following command first on the follower
nodes and then on the leader.
n Run the following to first start the process supervisor on leader and then on follower so
that the imported pg_metrics data is replicated from leader to the followers.
Note It will take some time for the cluster to become HA_ACTIVE based on the metrics
database size.
What are the observations leader node disconnects from the NSX
Advanced Load Balancer cluster?
Following are the observations when a leader node disconnects from the NSX Advanced Load
Balancer cluster:
1 The leader node restarts and breaks the NSX Advanced Load Balancer cluster due to a lost
quorum.
2 One of the follower nodes posts a message that the DB replication is not completed and it
cannot become a leader due to that.
3 Another follower node will post DB replication from the leader and becomes the
leader node.
What will happen when none of the follower is not able to complete
database replication in an NSX Advanced Load Balancer cluster?
1 On the follower node, the following process is used to replicate the database:
2 Once the streaming replication is set up, NSX Advanced Load Balancer monitors that the
replication continues to occur every minute. If it detects a failure five consecutive times, then
it declares that the replication has failed and attempt a full replication.
3 On trying to do a full replication, NSX Advanced Load Balancer always does a full copy of the
entire database data directory into the next directory. Only when it is complete it moves this
to the current directory for the database. If there is a failure as a part of the full copy of the
database files, then it will continue to have a valid, current directory.
4 On deciding to do a full backup, it is essential to record this to ensure that this node does
not become a leader if there is a leader failure during this time. With this scheme, a follower
node must always be in sync and can take over as a leader. If the full sync fails, the safety
mechanism will prevent the node from taking over as leader, but with manual intervention,
you can promote one of the nodes as the leader.
Does the cluster_mgr logs show the sync up every minute once the
full replication attempts?
Logs for the full replication process can be found in /var/lib/avi/log/
postgres_service_main.log and postgres_service_metrics.log.
Does the recent versions of NSX Advanced Load Balancer still use
zookeeper ? If not, why does it still run on NSX Advanced Load
Balancer and what has changed?
The recent versions of the NSX Advanced Load Balancer do not use zookeeper. The zookeeper
process is run for backward compatibility. When NSX Advanced Load Balancer is upgraded from
previous versions to 17.2, the Controllers will have to publish the leadership information in ZK for
the SEs that are not yet in 17.2. Once the upgrade is complete, SE will use the new scheme for
leadership notifications. At some point, ZK will be removed when all upgrades will be from 17.2.x.
The tenant associated with a user account defines the resources that the user can access within
the NSX Advanced Load Balancer. When a user logs in, the NSX Advanced Load Balancer
restricts access to only those resources that are in the same tenant. If a user is associated with
multiple tenants, each tenant still isolates the resources that belong to that tenant from the
resources in other tenants. To access resources in another tenant, the user must switch the focus
of the management session to the other tenant.
Note
n For information on switching a management session from one tenant to another, see
Switching Between Tenants.
n Certificates from the admin tenant can be shared by non-admin tenants. For more
information, see Sharing Certificates Across Tenants.
Default Tenant
By default, all resources belong to a single, global tenant, namely, admin. The admin tenant
contains all NSX Advanced Load Balancer resources.
The default admin user account belongs to the admin tenant and so, can access all resources.
If no additional tenants are created, all new NSX Advanced Load Balancer user accounts are
automatically added to the admin tenant.
Tenant-to-Role Mapping
Within each user account, the role selected for the user is mapped to a tenant. If only one tenant
is defined (the default admin tenant), this tenant is automatically mapped to the role selected
for the user. It allows the user to access all resources to the extent (write, read, or no access)
allowed by their role.
Creating additional tenants allows a user account to have multiple roles. In this case, each role
can be mapped individually to a tenant within the user account. Optionally, a single role can be
mapped to all tenants.
If a single role is mapped to all tenants, the user can switch the management session to other
tenants as needed.
The All Tenants View tenant cannot be mapped to any roles within a user account. The All
Tenants tenant is automatically made available to all superuser accounts.
n Create a Tenant
n Tenant-Scoped Clouds
Create a Tenant
This task helps you to create a tenant.
Procedure
When Per Tenant IP Domain is selected, each tenant gets its own routing domain that is
not shared with any other tenant. When Share IP Domain across all tenants is selected, all
tenants share the same routing domain.
6 Click Save.
Procedure
3 Under Tenant & Role, click Add and select the role from the Role drop-down menu.
6 Click Save.
Results
Each tenant can optionally have its own isolated data plane. This will depend on the global
configuration of the NSX Advanced Load Balancer deployment.
In NSX Advanced Load Balancer, Virtual Routing Forwarding (VRF) contexts can be created to
isolate traffic within a system.
Using the UI
This task helps you to configure the tenant settings using UI.
Procedure
1 Navigate to Administration > System Settings > EDIT > Tenancy Mode.
When Per Tenant IP Domain is selected, each tenant gets its own routing domain that is
not shared with any other tenant. When Share IP Domain across all tenants is selected, all
tenants share the same routing domain.
n Service Engines are managed within the tenant context, not shared across tenants to
enable the Tenant Context mode.
n Service Engines are managed within the provider context, shared across tenants to
enable the Provider Context mode.
4 Select Read or No Access as required in the Tenant Service Engine Access field.
5 Click Save.
Note The configuration made using the UI will remain as the global configuration when
creating a tenant. These values can be overridden for a specific tenant using the CLI or API.
Note In the global configuration, se_in_provider_context is set to True. However, this can be
changed for a tenant.
Procedure
2 Click the username in the upper right corner of the display, and select All Tenants from the
drop-down menu.
The resources of newly selected tenant are now accessible through the web interface instead
of the previously selected tenant.
Results
Note If you are logged in with a superuser account, a read-only All Tenants View tenant is also
available.
Note When you switch the tenant, the corresponding Application dashboard opens.
Default Behavior
System default certificates are used by objects in any tenant. For example, these include
System-Default-Cert, System-Default-Cert-EC, System-Default-Portal-Cert, System-Default-
Portal-Cert-EC256, System-Default-Root-CA, and System-Default-Secure-Channel-Cert, a set
of objects that can be expected to expand over time. Objects created in a specific tenant
(including the admin tenant) can only be viewed and used in their respective tenant. Certificates
are automatically chained and will only be chained to certificates in the respective tenant.
n All certificates from the admin tenant are viewed from non-admin tenants.
n Certificates from the admin tenant can be used in non-admin objects, that is, virtual services,
pools, and so on.
n Application certificates in non-admin tenants will be chained to issuer certificates in the admin
tenant.
n NSX Advanced Load Balancer will not chain certificates from the admin tenant to issuer
certificates in non-admin tenants. As a result, if there is an Intermediate certificate in the
admin tenant and the corresponding CA certificate is in the non-admin tenant, these objects
will not be linked.
n If there are any cross-tenant links (that is, an Intermediate certificate in the admin tenant
and Application certificate in the non-admin tenant), the NSX Advanced Load Balancer will
prevent changing the shared_ssl_certificates flag.
n You can configure this feature using NSX Advanced Load Balancer REST API or CLI. This
feature is currently not supported on the NSX Advanced Load Balancer UI.
Note
n When certificate sharing is enabled in NSX Advanced Load Balancer before version 21.1.4, the
certificate with the most days to expiry is always selected.
n When certificate sharing is enabled in NSX Advanced Load Balancer version 21.1.4, the
Intermediate or CA certificate with the highest expiry in the current tenancy is always
selected. If the current tenant has no Intermediate or CA, the corresponding Intermediate
or CA from the admin tenant (if any) is selected.
Usage Guidelines
The following guidelines are applicable as the certificates in the admin tenant can be chained to
any certificate in the system:
n Toggle the shared_ssl_certificates flag to True and create shared Intermediate or Root
certificates in the admin tenant before creating Application certificates.
n Although certificate additions or updates in the admin tenant are CPU-intensive, these actions
must have minimal impact, as they are infrequent operations.
CLI Configuration
[admin:10-10-28-16]: > configure controller
properties
| enable_api_sharding | True |
| vs_scaleout_ready_check_interval | 60 sec |
| shared_ssl_certificates | True |
+--------------------------------------------+--------------------+
[admin:10-10-28-16]: > configure sslkeyandcertificate admin-intermediate
[280/18075]
MIIFZzCCA0+gAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMx
CzAJBgNVBAgMAkNBMQwwCgYDVQQKDANBdmkxFTATBgNVBAMMDEludGVybWVkaWF0
ZTAeFw0xNzEyMjAyMzM0MzVaFw0zNzEyMTUyMzM0MzVaMEkxCzAJBgNVBAYTAlVT
MQswCQYDVQQIDAJDQTEMMAoGA1UECgwDQXZpMR8wHQYDVQQDDBZTYW1lLU5hbWUt
SW50ZXJtZWRpYXRlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy0kq
S48Ngxg1KJ1hmwMxbSEJnGuz0bfxf/FbcVK0OQZzOfl7K1nrg8CIjLyywEkgzBqf
/b1GwEwNRNvCxAgIP78kCw39chdGzW2jRcjiWPV6OrOizrkXHKlhCJ7LnONSeQH1
rGehFSzpLT8g6KY+DCkeVQBVscV4cFJFTL484EoOhgxMuqj0jij3T+GctqsK5p2Y
VCy71ZEbJvvET3x6/rDNIJU9njJxCvlJyk3T78sTSsW7+xjhCRVsvBAHyUhUGWuC
9ol6EcJdOBUVUKIJX8t+qT1iGtMEd2oV0rUv+2cvHJrhZW24BSVnebW05n32z9Je
oPcHgdrH0ZJN9O0DV46QP1HTdVe7GvY1Fd+UjUFh4oIjwQyYSpO/smBHUffCmtyX
wljCbmjYM2yKyQe04C/+s8ZO+AFFtqx6srvnElQTXtfxkTWYPSrodDKmxqY81aR9
TFd5wWtApMeFT9DK5dDlneBpqn0gDE+JixlEx+pEZM6SDdO1arAg3PKZotuzndo0
1c0mqG6Lp5r464xi5g4kbPHNe1PFe+2tDCEW9BuYADe0v8PvpHMbGJNxOt+w8CcV
R/muH/KoKYs8Y9Ej03MRob1r7Xpv4/NO/1KLHhggxlihiUib1GVDguRNJmMYloo+
8FfoSMixPRJxUg03yZA479e4QSNI+5AryxzohXUCAwEAAaNjMGEwHQYDVR0OBBYE
FEamhG8kGg3PCElsgH8XYIWO04BXMB8GA1UdIwQYMBaAFEqs0+NaumvRXZkP+sTw
NMNvbr61MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
DQEBCwUAA4ICAQCVeQKhOIDK0z8XdohL/vkypGGayBtU17lFfwZEiWuIeeLnZDrB
vzz1T1j91tx6MBWFEbP2FoJYCwaU9YSuOP8mhtmJM4v1MgC3aOGdMa3nKo2PbS9M
ECMLFB6Jpo7zVjVxwEz7WXA7/YJgR0g5ft/turJnbbUis0K0FBO/aYzc9gyBvg8I
GTB6GX6DDNuwT5EOjkynT3SqnRrnD2piZ0oQ2IIDMaYm/r/DFaMLoU6GRLmj74N0
P3Lefks4JX5C2KKEuM3/6/udMlmNrObjkIACe34icImkdxSXjmKj8Mg4YG8PBRU1
/j1yizB6GokGq2//0BkRMzBLJfUifOVa9mH/C303kA/CvJ42nQyDPLU77nunng3f
T//+/dQYk+OuMTTuVul2WSef+wW+kEspE8uTo/GH1ZmMRV0T7aPxt8/ASDbhEcQM
Okhbo49AhxuTHlOWS3xKxVIbxJ4P/P0v8c5bb/4D5gdGgBCoXQptiBRtS2suBt1M
g0eCtusMuUqPkwB5o5IU2MPGbHiiPzB4up5ZJHYe97rtKduM1cD+0v+w7ZxDrqdD
ebfAJjqaZLKNWEmy5fYt0lWUgDsA8aWUSLN2j/R3BbtXHcClmsZap3CSFzJlhbPz
9tQBVsfx6UJYZR2eAXTpEtEMYous6tKHcRS04/mCPBq+WhoYG39aX85g2Q==
-----END CERTIFICATE-----
END
[admin:10-10-28-16]: sslkeyandcertificate:certificate> save
[admin:10-10-28-16]: sslkeyandcertificate> save
+------------------------
+------------------------------------------------------------------------------+
| Field |
Value |
+------------------------
+------------------------------------------------------------------------------+
| uuid | sslkeyandcertificate-2348ba24-1a56-4e9d-9833-
c8c3c1158714 |
| name | admin-
intermediate |
| type |
SSL_CERTIFICATE_TYPE_CA |
| certificate
| |
| version |
2 |
| serial_number |
4098 |
| self_signed |
False |
| issuer
| |
| common_name |
Intermediate |
| organization |
Avi |
| state |
CA |
| country |
US |
| distinguished_name | C=US, ST=CA, O=Avi,
CN=Intermediate |
| subject
| |
| common_name | Same-Name-
Intermediate |
| organization |
Avi |
| state |
CA |
| country |
US |
| distinguished_name | C=US, ST=CA, O=Avi, CN=Same-Name-
Intermediate |
| signature_algorithm |
sha256WithRSAEncryption |
| not_before | 2017-12-20
23:34:35 |
| not_after | 2037-12-15
23:34:35 |
| fingerprint | SHA1
Fingerprint=CD:96:22:87:B2:58:39:7C:7A:26:4B:3A:18:B2:99:CD:DB:73:B5:79 |
|
| |
| expiry_status |
SSL_CERTIFICATE_GOOD |
| days_until_expire |
365 |
| key_params
| |
| algorithm |
SSL_KEY_ALGORITHM_RSA |
| rsa_params
| |
| key_size |
SSL_KEY_4096_BITS |
| exponent |
65537 |
| status |
SSL_CERTIFICATE_FINISHED |
| ca_certs[1]
| |
| name |
Intermediate |
| format |
SSL_PEM |
| certificate_base64 |
False |
| key_base64 |
False |
| tenant_ref |
admin |
+------------------------
+------------------------------------------------------------------------------+
[admin:10-10-28-16]: > switchto tenant t1
Switching to tenant t1
[t1:10-10-28-16]: > show sslkeyandcertificate
+------------------------------------+------------------------+------------------------+------
+-----------+
| Name | Issuer | Subject | Self
| Algorithm |
+------------------------------------+------------------------+------------------------+------
+-----------+
| System-Default-Cert | System Default Cert | System Default Cert | True
| - |
| System-Default-Cert-EC | System Default EC Cert | System Default EC Cert | True
| - |
| System-Default-Portal-Cert | Default Portal Cert | Default Portal Cert | True
| - |
| System-Default-Portal-Cert-EC256 | Default Portal EC Cert | Default Portal EC Cert | True
| - |
| System-Default-Root-CA | ca.local | ca.local | True
| - |
| System-Default-Secure-Channel-Cert | ca.local | node.controller.local | -
| - |
| admin-intermediate | Intermediate | Same-Name-Intermediate | -
| - |
+------------------------------------+------------------------+------------------------+------
+-----------+
[t1:10-10-28-16]: > configure sslkeyandcertificate t1-app
jXs64nmmO/kGyGAXduIEoA4POMj7OIZUn8FlSvn0U5gUDUHlfuewuCzfRE0D8+x0
O1n06vhD4II59Z13T7IOAywvdio5p0ZBOVnxFNJRJ1oizqHIywgGKOOnqj59iBr9
pw/LTthM1mozfUxVYxftSwDr91C7PTaYDE9prmw8wH1TL6I4skxKRVmagFwY0rtr
ViNhNigPjUB3xlEtv6RuwFeEmfcZMzkLCAoXbg1yv6Av5tGJwdCVwDwrpP6I/FHz
PwQdFmZRGZJI8QqdEcWYI/ewXYevCfDrQIWH+gFVIQKBgQDrcCmclzSqQt4xczJ2
ajXAaxnxLSJC/WYOIsIp3L5b/gqs+SUAIJXoVZMinOcygtJs3J4f0Zuy9NkddNn9
JVeMXs7rr7quXKSzX0100acB1NR4Sfq1RWboOxoiSgrUSx8D/ooaJE0JSlj0DtHl
+FVlSECAK2wpM8dFEMf9cAEIeQKBgQDOoRlQzkdnoDVL+gyIXnsA3ArnXDcig1x1
tSj0VqCEaGHhjngYHsmissaIw9ABlwZkt9maylX9PrLaAceGXPzeBvlK0PcgImZ+
2hYVp00znj4//JOsFe9joruKfaXrTLPvY8N0jYAmip6FJJ1eq4x8rL8gU/NdlMQf
5diVimhizQKBgCGs82bAgfnwgpOUJJ2nZ3TUXOuQRxxJ3nUbJ6aROnEyDxjash4o
iwimZNtIkhE5gRutGrj2ZEzelMeP1TZORw1+6h3wDsWt3qkBcrTI4Bh09scV3dRb
zvJcscpByPbAn/kUSXCfzJ0Nk1elXwSD1sMb6I3sqBXkoBYS5mgrwxoRAoGAXJmB
uN7YzS3U9LmYiDyfLyFtmYWQB92KwA1xzx5LTUtiIi0w0M5rWoh3xK7MNwoxiU2D
LYVjx9wjVuPZQPPHNtE1Qzwmo7YG7O5bW1TgmjNeflp463PhFmvFVCk/BBYZxTyW
SVNojN0ucUiZZeXHTdA0zw4QUG3s/saIq2udoDkCgYBS9FJxYZV/3eWZTV7E8RHO
4ABpujonzZcrxB/pIlQJhehVABopbMAGE0aGc7gGacu0DKsLNYL8Wkdqgs6WN9Yo
erlGXlJelgs4CSlZulInntFgdqC9Rj0sHjx6gCVEgg1lGkB++YrCLj2YuYN7L9JW
wk/YYUmjGLjqcHvBNDl0Gw==
-----END PRIVATE KEY-----
END
[t1:10-10-28-16]: sslkeyandcertificate> certificate
[t1:10-10-28-16]: sslkeyandcertificate:certificate> certificate --
-----BEGIN CERTIFICATE-----
MIIFAzCCAuugAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UEBhMCVVMx
CzAJBgNVBAgMAkNBMQwwCgYDVQQKDANBdmkxHzAdBgNVBAMMFlNhbWUtTmFtZS1J
bnRlcm1lZGlhdGUwHhcNMTcxMjIwMjMzNDU2WhcNMzcxMjE1MjMzNDU2WjA3MQsw
CQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExDDAKBgNVBAoMA0F2aTENMAsGA1UEAwwE
QXBwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL4Iak5x+rG5S+Ww
JrX6JhS7sTKu8k5sNJ2ishuNu7mpemovuVJwZCrq6FsoowAYz8kiIjvmE4B4c32F
hr/S/wGd1X8AnXMakrcrlqG5V+u2w0geTqrRJLDdi0Hrf/yeHBSLP9kGC2F8In96
ugbtEESHy46k+Fcsl/zyjVQ4XkVxusWxbmq9dAcxFIorYj3AWRJKA0wKg4Y4HtZf
7poMbRkBm316hCQ9A07HD10Rq+o5kWqQdNKTJ9bIe7DrTl2ZGzYLPwhkyGERm+ot
Sl7ocwWinHBPO3/k3JbQUklbUrzVZLjppv+04g4tuSA1X3AtYw14q8ARbNg841JA
PME6GuUCAwEAAaOCAQUwggEBMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZA
MDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlm
aWNhdGUwHQYDVR0OBBYEFBFU4BzZ35LC8gZlhXQG6pB9sDxNMGgGA1UdIwRhMF+A
FEamhG8kGg3PCElsgH8XYIWO04BXoUOkQTA/MQswCQYDVQQGEwJVUzELMAkGA1UE
CAwCQ0ExDDAKBgNVBAoMA0F2aTEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlggIQAjAO
BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEL
BQADggIBAAfp7d3STNGOQvPxMb+w9b4MjxXAdcFLCLiowcnh6wRS5/ALIjr+7oAt
5T+SzFx1jiZltRf7wk5Ot48+lKwSJ93oaqow82QAZZFeNvkYecL/HHqW7squC7Su
lmdxQ0DT/fkpedKu3koWjUvf90zb/LotdKN9GN4R2KwKY+p/73w1cDMxyqyPiSOH
dCX1fkG1du4HEujG+zVTlEO5Wc94zer4+C9g/QwTVkBH11MOLd9RSlStadYzy8Qs
wu1pPEXZbePA7urZGqgiYUTYKbW+Ck/EKqt8NxvyqvmYBqmfuEnOW1W7XH7Zlzli
dAFEfZ5U9we1YlduDT7KUHizBn8Uex1O1TCjn2XMt+5KhJ8yfNjqbwTyg7G1pHcG
ifl+u/PYTyrLwnf0s09/iw27oacSczDxB/yRe5W6wmhsgL0Rry1tZvAcIHPR2c5t
xstiAJVZVp+WSqJRbCR+KZYZS7IX3J09gtZy8ZDaEhCGtiE/liin4yxLEP4cgbCd
ctIdYP+3pYFC7Ij4BvT+cHtKFAIQ8gD3pSx+NHjX/cWnhjQIo4ljt+ash9YQz+70
hbsp3zDB+Qbnc6j1MuITHQneKKxVPBkvYK7bcqKmKRfjOIpFgtClWd9+YRBriBKo
CayuZ7LuJYYgVqnU6waCJaA9eZC/BSNUqqHzBYV49oBUpyDIWOTW
-----END CERTIFICATE-----
END
[t1:10-10-28-16]: sslkeyandcertificate:certificate> save
[t1:10-10-28-16]: sslkeyandcertificate> save
+------------------------
+------------------------------------------------------------------------------+
| Field |
Value |
+------------------------
+------------------------------------------------------------------------------+
| uuid | sslkeyandcertificate-9ec6948b-f57c-49ac-
b9da-28092a3fd72a |
| name | t1-
app |
| type |
SSL_CERTIFICATE_TYPE_VIRTUALSERVICE |
| certificate
| |
| version |
2 |
| serial_number |
4097 |
| self_signed |
False |
| issuer
| |
| common_name | Same-Name-
Intermediate |
| organization |
Avi |
| state |
CA |
| country |
US |
| distinguished_name | C=US, ST=CA, O=Avi, CN=Same-Name-
Intermediate |
| subject
| |
| common_name |
App1 |
| organization |
Avi |
| state |
CA |
| country |
US |
| distinguished_name | C=US, ST=CA, O=Avi,
CN=App1 |
| signature_algorithm |
sha256WithRSAEncryption |
| not_before | 2017-12-20
23:34:56 |
| not_after | 2037-12-15
23:34:56 |
| fingerprint | SHA1
Fingerprint=18:B1:FD:DC:AF:F0:62:0C:73:E1:56:FC:75:AE:86:93:2E:56:1E:75 |
|
| |
| expiry_status |
SSL_CERTIFICATE_GOOD |
| days_until_expire |
365 |
| key_params
| |
| algorithm |
SSL_KEY_ALGORITHM_RSA |
| rsa_params
| |
| key_size |
SSL_KEY_2048_BITS |
| exponent |
65537 |
| status |
SSL_CERTIFICATE_FINISHED |
| ca_certs[1]
| |
| name | Same-Name-
Intermediate |
| ca_ref | admin-
intermediate |
| ca_certs[2]
| |
| name |
Intermediate |
| format |
SSL_PEM |
| certificate_base64 |
False |
| key_base64 |
False |
| tenant_ref |
t1 |
+------------------------
+------------------------------------------------------------------------------+
[t1:10-10-28-16]: >
Tenant-Scoped Clouds
For additional configuration flexibility, isolation, and delegation of ADC administration, the NSX
Advanced Load Balancer supports the creation of a cloud inside a tenant.
The Tenant-scoped clouds feature is currently restricted to AWS, Azure, Linux Server Clouds,
NSX-T, and no-orchestrator clouds. Attempts to choose other cloud types result in an error code.
Features
Configuration Flexibility
n Provider Mode — It is a configuration in which SEs are shared across tenants. In provider
mode, all the network resources of the cloud remain in the admin tenant and cannot be
moved. To configure VRF contexts and move port groups into them, the NSX Advanced
Load Balancer user must have write privileges for the admin tenant.
Isolation
The tenant-scoped cloud and its associated objects (VRF context, SEs, SE groups) are only
visible in the cloud’s tenant. They are not visible in other tenants or the admin tenant.
Administration
The admin user is authorized and responsible for performing the highest-level configuration
operations, such as user creation and authorization, tenant creation, and all infrastructure
associated with the admin tenant. However, the admin user can and likely prefers to delegate
the creation of clouds scoped to their respective tenants to tenant administrators.
1 Creates two VRF contexts for the cloud in the particular tenant. One is assigned data-plane
traffic and the other is control-plane (management) traffic.
2 Creates the first SE group for the cloud in this tenant (it will be named Default-Group).
3 Changes default permissions to enable the user having the Tenant-Admin role for creating
and managing tenant-scoped clouds and associated objects.
n When a new tenant is selected, the name of the selected tenant is displayed in place of
admin on the top right of the toolbar.
Note The admin user is still logged in, and only the tenant context is changed.
n After navigating to Infrastructure > Clouds, click the CREATE drop-down menu. Select the
desired cloud the user intends to create.
Note It is not necessary for the admin user to create the cloud within the tenant.
n Typically, the tenant administrator of the selected tenant is logged in. No other tenants
are listed when the selected tenant is clicked in the top right corner of the toolbar. It is
preferrable to be limited to a single tenant.
n The user can also opt to create other clouds with the selected tenant.
Note The steps to create a cloud are same as for clouds that are not a tenant-scoped. It
depends on the tenant context of the user.
The All Tenants view is intended for viewing, updating, and deleting objects. New objects cannot
be created in this view.
Note The All Tenants view is supported only for administrative user accounts configured to
be a superuser. To use the feature, you must log in with an NSX Advanced Load Balancer user
account that has the role System-Admin and the superuser attribute enabled.
To switch the focus of the management session to the All Tenants view, use any of the following
methods.
Using the UI
This task helps you to switch the focus of the management to the All tenants View using UI.
Procedure
switchto tenant *
Switching to tenant *
Specifying /* (wildcard) instead of a tenant name gives access to objects across all tenants.
Example: Example 1:
An administrator manages an application in both test and production environments. The virtual
service of each application must be deployed on a different SE group. For ease of management,
both applications can be in the same tenant (tenant 2 in the diagram), though arguments can be
made for separating these different environments into two separated tenants (such as tenant 1
and 3 in the diagram).
Example: Example 2:
Tenant 1 Tenant 2
SE Group 1
A cloud service provider manages multiple customer applications. Each customer is assigned to
a unique tenant, ensuring complete configuration isolation. The service provider can allow all
tenants to have isolated SEs, or they can choose to place multiple tenants in the same SE group
to reduce idle resources.
The NSX Advanced Load Balancer defines a set of system default profiles as a part of the
installation. Though these objects can be edited, they can neither be renamed nor deleted. In
addition to these profiles, the administrator can create, edit and delete custom profile objects
suited to their specific deployment. Both the system default profiles and any custom profiles that
are created in the admin tenant are automatically shared across all the tenants in the system.
Tenants are able to view and use these profiles, but cannot delete the shared admin profiles.
Tenants can chose to override the default profile parameters to that which best suits their
application deployment. A tenant can do this by either editing the shared admin profile or
creating new custom profiles under their tenant context. Editing the shared admin profile creates
a copy-on-write effect, such that a new profile with the same name (but a different UUID) is
created in the specific tenant’s context. Making changes to this profile object does not affect
other tenants in the system. Deleting such a profile created using copy-on-write brings the
shared admin profile back into the tenant context.
Navigate to Templates > Profiles > Application. In the Application Profile page, a couple of
custom profiles have been created by the administrator. Note that the default profiles (System-
xxx) cannot be deleted (check box is disabled for selection), but the custom profiles can be
selected for deletion (adjacent check box can be selected).
In the context of tenant avidev, though the shared admin profiles are visible, none of the profiles
can be deleted.
By clicking the edit icon, tenant avidev edits the System-HTTP and Custom-HTTP profiles.
The formerly disabled check boxes turn selectable, indicating that the profiles have undergone a
copy-on-write operation and can now be selected for deletion.
Tenant avidev deletes the System-HTTP and Custom-HTTP profiles. The shared admin profiles
are now visible and cannot be deleted.
User accounts are maintained locally within NSX Advanced Load Balancer or remotely using an
external AAA server.
When the same user account exists locally and remotely, NSX Advanced Load Balancer
authenticates the credentials locally first and then authenticates the remote user account.
For SSH access, the NSX Advanced Load Balancer Controller will also attempt to authenticate the
user after failing to find the user in the local or remote auth databases. Local and remote users
are not created in Linux and may not have Linux access, with the exception of admin account.
Note If remote authentication (LDAP, TACACS, SAML, and more) is enabled, you can deactivate
local authentication in the NSX Advanced Load Balancer Controller by deactivating the Enable
Local User Login option in the Edit System Settings screen.
For authenticating users remotely to log into NSX Advanced Load Balancer. Auth Profile
discusses different ways of remote authentication supported in NSX Advanced Load Balancer.
n Auth Profile
n User Roles
n User Accounts
Auth Profile
An Auth profile is a set of Authentication, Authorization, and Accounting (AAA) attributes used
by NSX Advanced Load Balancer users to log into NSX Advanced Load Balancer.
1 Navigate to the Templates > Security > Auth Profile and click Create.
4 Click Save.
2. Under the General tab, enter the Name of the profile and select the Type of the Auth Profile as
LDAP.
5. Click Save.
Note For Controller authentication, multiple LDAP servers are supported only if they belong to
the same cluster. Otherwise, the Controller tries to authenticate with the first reachable server.
3. Enter the Port on which NSX Advanced Load Balancer queries the LDAP servers. Use port 389
for LDAP and 636 for LDAPS (SSL).
Note Just configuring the port does not determine if the LDAP security mode is LDAPS. Hence,
explicitly select LDAPS as the LDAP Connection Security Mode to ensure secure LDAP is in use.
4. In the Base DN field, enter the top level path in the directory server object hierarchy.
Note Using a specific base DN expedites all queries to the LDAP server in contrary to a generic,
high level base DN which makes the queries reach out to more parts of the directory's hierarchy.
The base DN must be set to the topmost (most general) path to which the account has access.
Administrator Bind
n The administrator account provided will be used to search for users and user group
memberships across the LDAP server.
n Enter the Admin Bind DN and Admin Bind Password. The account used must have
access to search the directory tree for both users and user groups.
n NSX Advanced Load Balancer uses the configuration to search for users or groups.
An LDAP search typically requires:
n The scope value limits the search to one of the following: base (one-level deep) or
entire subtree.
Anonymous Bind
n Anonymous bind is useful when you do not have access to an administrator account
on the LDAP server(s). Anonymous bind can only be used to authenticate the user and
cannot be used to authorize the user.
n User DN Pattern used to bind an LDAP user after replacing the user token with the
real user name. The pattern must match the user record path in the LDAP server.
n User Token which is replaced with the real user name in the user DN pattern.
n User ID Attribute is the unique property that identifies a single user record. This value
must match with the user name used at the login prompt.
Note Authentication profiles that use anonymous bind cannot be used for role or tenant
mapping.
6. Enable Ignore Referrals for the group search to skip referrals links that connect to another
LDAP server.
Note Enabling the option Ignore Referrals can quicken the group searches by preventing delay
in LDAP group search due to unnecessary referral searches.
7. Under User, define the scope of search for users who log into NSX Advanced Load Balancer.
User Search DN
LDAP user search DN is the root of search for a given user in the LDAP directory. Only user
records present in this LDAP directory sub-tree are allowed for authentication. Base DN value
is used if this value is not configured.
LDAP user search scope defines how deep to search for the user starting from user search
DN.
User ID Attribute
LDAP user ID attribute is the login attribute that uniquely identifies a single user record. The
value of this attribute must match the user name used at the login prompt.
8. Under Group, define the parameters to search for a user's group membership.
Group Search DN
n LDAP group search DN is the root of search for a given group in the LDAP directory.
Only matching groups present in this LDAP directory sub-tree will be checked for user
membership.
n Define the LDAP group search scope using filters for the group starting from the group
search DN.
n Scope Base
n Scope Subtree
Group Filter
n A search can find many different types of objects under the search DN. Specify the Group
Filter to pick up objects specific to the group only.
n NSX Advanced Load Balancer appends a user-specific group membership filter to the
configured group filter to check a specific user’s group membership.
n Enter the LDAP group attribute that identifies each of the group members.
n Enable this option if the group member entries have full DNs instead of just user ID
attributes.
After configuring the LDAP settings, configure the settings under the HTTP Authentication tab.
2 Under Required User Group Membership, click Add to identify the groups which
the user must be a member of. Each group is identified by the DN, for
example, ’cn=testgroup,ou=groups,dc=LDAP,dc=example,dc=com’.
3 In the field Auth Credential Cache Expiration, specify the maximum allowed length of time for
which a client’s authentication is cached.
Note Depending on whether the LDAP Auth Profile has Administrator Bind or Anonymous Bind
configured, the VERIFY AUTH PROFILE screen displays a different set of options.
In the VERIFY AUTH PROFILE screen, enter the Username and Password , and click Verify.
Testing whether a user can bind successfully verifies that the LDAP authentication profile is
configured correctly to authenticate users with the same user DN pattern.
In the VERIFY AUTH PROFILE screen, select the required option to verify and enter the
Username.
n Searches the LDAP server’s database for the specified user name, and returns the
corresponding user entry from the LDAP database.
n This option is useful for listing all attribute key-value pairs for any given user. The user
search settings configured in the authentication profile are used.
n If the Username field is left empty, NSX Advanced Load Balancer pulls the entire list of
user records from the LDAP database.
n Lists all group memberships for the specified user. The group search settings configured
in the authentication profile are used.
Test base DN
n This option is useful for testing administrator permissions and for reading the DN tree of
the LDAP server.
n User is either not a member of any group or the group search settings are incorrect
For step-by-step procedure to create an LDAP profile, see Configuring LDAP Settings.
Active Directory common settings Administrator Bind With the configuration for
administrator bind, the group
membership includes the full DN.
The LDAP profile configured with Administrator Bind and user search configuration is as shown
below:
The Group search configuration for the LDAP profile is as shown below:
Active Directory common settings Anonymous Bind If the LDAP/AD user can bind
with the DN [email protected] and
password, it validates the user login.
Open LDAP Profile with Administrator Bind and User search configured is as shown below:
Open LDAP Anonymous Bind If the LDAP user can bind with the DN
“cn=jdoe, ou=People, dc=example,
dc=com” and password, it validates
the user login.
Group member is full DN or not Auth Profile test page can print the full DN tree from base
DN level. For group entries the member attribute value
shows whether it is full DN or not.
TACACS+ Authentication
NSX Advanced Load Balancer supports authentication and authorization of NSX Advanced Load
Balancer users with Terminal Access Controller Access Control System (TACACS+). TACACS+ is
an open standards protocol that handles authentication and accounting.
4 Under the TACACS+ tab, click Add to enter TACACS+ server IP address.
Note You can add multiple servers. If the first server does not respond, NSX Advanced Load
Balancer tries the next server. If there is no response from this server as well, NSX Advanced
Load Balancer tries to connect to the next server. Each server is tried once. If all the servers
fail or timeout, the request is failed.
7 Select the TACACS+ Service type used in all authentication and authorization queries.
8 Under Authorization Attributes, click Add and enter the set of attribute value pairs under
Name and Value to identify the host. The TACACS+ server configures user-level authorization
based on these attributes. Cisco Access Control Servers (ACSs) typically expect authorization
attribute values for “service” and “protocol” to be populated to identify and authorize an NSX
Advanced Load Balancer user. Authorization attributes from a TACACS+ server can be used
to map users to various roles and tenants.
10 Click Save.
1 AUTHEN START packet from NSX Advanced Load Balancer to TACACS+ server. Contains:
n action=login
n authen_type=ascii
n service=
n user=
n remote_addr=
2 AUTHEN REPLY packet from TACACS+ server to NSX Advanced Load Balancer. It contains
status of type GETPASS indicating that password needs to be supplied for the user message
field with text “Password.”
3 AUTHEN CONTINUE packet from NSX Advanced Load Balancer to TACACS+ server. It
contains user message field with actual password from user.
4 AUTHEN REPLY packet from TACACS+ server to NSX Advanced Load Balancer. Contains:
n FAILED status
5 AUTHOR START packet from NSX Advanced Load Balancer to TACACS+ server. Contains:
n Authorization attribute name, value and whether or not they are mandatory
6 AUTHOR REPLY packet from TACACS+ server to NSX Advanced Load Balancer. It contains
one of the following:
Encryption
All TACACS+ packets are encrypted, whereas the 12-byte header is passed in the clear.
Encryption is part of the TACACS+ standard and is compatible with all TACACS+ servers.
Error Handling
If an error is indicated in the Status field of any reply packet during this process, the user login is
rejected and results in a failure.
To set up an ISE TACACS+ server as a remote authentication and authorization system for NSX
Advanced Load Balancer, follow the steps given below:
The ISE server is generally configured with external Identity Sources (in this case OpenLDAP).
n The ISE LDAP settings used to fetch LDAP groups to use them for Authorization conditions
are as shown below:
n ISE server recognizes all NSX Advanced Load Balancer Controller cluster nodes as valid
Network Devices.
n ISE device policy sets default condition updated to assign different shell profiles based on
group membership.
n The NSX Advanced Load Balancer TACACS+ auth profile must be configured with the same
shared secret that was assigned to the device in ISE. The “service” attribute is generally
required to identify and authorize a NSX Advanced Load Balancer user. Authorization
attributes from a TACACS+ server can be used to map NSX Advanced Load Balancer users
to various roles and tenants.
In the case of an ACS server, service=avishell is required for user authorization; while in the
case of an ISE server, service=avishell is known to cause authorization failure.
n NSX Advanced Load Balancer TACACS+ authorization role and tenant mapping configured to
assign different roles based on TACACS+ attribute value.
Shrubbery TAC_PLUS
n TAC_PLUS server is a much simpler alternative to ISE/ACS. This is relevant in development or
testing environments. Conceptually, users are assigned to groups and groups have request
and response attributes.
The NSX Advanced Load Balancer TACACS+ auth profile can be configured in the same way as
an ISE or ACS.
Note You can configure granular role-based access control by adding application parameters
into the Workspace One Access catalog item and then mapping those parameters to different
roles in NSX Advanced Load Balancer. For more information, see Authorization: Tenant and Role
Mapping Examples.
To enable SAML and map user roles, follow the steps below.
1 Log in to the NSX Advanced Load Balancer Controller with admin credentials.
4 Select the Enable Local User Login option. If this option is not selected, and there is a
configuration issue, you will not be able to log back into the Controller.
5 Select the Auth Profile created with SAML as the Type and select the required Mapping
Profile.
6 Click Save.
SAML authentication is now configured on the NSX Advanced Load Balancer Controller.
Note
n Logging into the NSX Advanced Load Balancer CLI using IdP credentials is not yet supported.
n SAML-based authentication using the Python SDK is supported for Okta and OneLogin.
n The service provider (SP) never directly interacts with the identity provider. A browser or the
Python SDK acts as the agent to carry out all redirections.
n The service provider needs to know to which identity provider to redirect before it has any
idea who the user is.
n The service provider does not know who the user is until the SAML assertion comes back
from the identity provider.
n SAML authentication flow is asynchronous. The SP does not know if the IdP will ever
complete the entire flow. Owing to this, the SP does not maintain any state of any
authentication requests generated. When the SP receives a response from an IdP, the
response must contain all necessary information.
For more information, see SAML Authentication for Single Sign-On topic in the VMware NSX
Advanced Load BalancerConfiguration Guide.
Example of Okta:
In this collection of code snippets, the OktaSAMLApiSession class is used to authenticate a user
for Okta IdP, get the Controller session, and create the VS. From avi.sdk.saml_avi_api import
OktaSAMLApiSession:
OR
resp = api.get('virtualservice')
for vs in resp.json()['results']:
print vs['name']
OneLogin Example
OR
resp = api.get('virtualservice')
for vs in resp.json()['results']:
print vs['name']
To access the NSX Advanced Load Balancer Controller through SSH, a registered user must have
a valid token. Once a token is created, one can initiate an SSH connection to the Controller using
CLI as the SSH user. A CLI shell will be created. Once the shell has been created, a login prompt
will be presented. Provide the required username and the token as the password.
Procedure
2 Click the three dots in the top right corner of the dashboard.
4 Enter the Token Lifetime for the token’s validity in hours and click Generate.
Note
n To generate a single use token, enter 0.
n The maximum value that can be entered in this field is 87600 hours.
n In case another token is generated before the first one expires, the first token still remains
valid.
Procedure
3 Paste the token that was generated using the CLI as the Password.
Results
You have now successfully logged into your Controller using your account or Service Account.
Prerequisites
Before initiating the configuration, complete the following prerequisites:
n Configure a DNS record for the NSX Advanced Load Balancer Controller. This will be used for
the fully qualified domain name (FQDN) that is used when signing into the system.
4 In the Download SAML Metadata tab, click Copy URL next to Identity Provider (IdP)
metadata.
1 Log in to the NSX Advanced Load Balancer Controller with admin credentials.
2 Navigate to the Templates > Security > Auth Profile and click CREATE.
5 Copy the contents of the idp.xml file and paste in the IDP Metadata field.
9 Click Save.
n Entity ID
n SSO URL
n Signing Certificate
Get the entity ID and the SSO URL from the VERIFY SERVICE PROVIDER SETTINGS screen as
shown below.
3 The VERIFY SERVICE PROVIDER SETTINGS screen displays the Entity ID and the Single
Sign on URL. Copy this information and paste in a text editor.
1 From the NSX Advanced Load Balancer UI, navigate to Templates > Security > SSL/TLS
Certificates.
3 From the Export Certificate screen, click Copy to clipboard to copy the Key and the
Certificate.
5 Click DONE.
Configuring the NSX Advanced Load Balancer Catalog Item in Workspace ONE
Access
Once the SAML profile is created in the NSX Advanced Load Balancer Controller, the Workspace
ONE catalog entry can be created.
3 Click New.
4 In the New SaaS Application screen, enter a Name for the new NSX Advanced Load Balancer
entry in the App Catalog.
5 Under the Definition tab, if you have an icon to use, click Select File and upload the icon for
the application and click Next to view the Configuration tab.
Field Description
Single Sign-On URL Use the Single Sign on URL copied from the
VERIFY SERVICE PROVIDER SETTINGS screen in NSX
Advanced Load Balancer.
Field Description
The Configuration tab in the New SaaS Application screen is as shown below.
8 Copy the value of the System-Default-Portal-Cert certificate and paste it into the Request
Signature field.
9 Enter the FQDN or IP address of the appliance as the Application Login URL. This enables
SP-initiated login workflows.
10 Click Next to select Access Policies to use for this application. This determines the rules used
for authentication and access to the application.
12 Click Save & Assign and select the users or groups that will have access to this application
and the deployment type.
13 Click Save.
NSX Advanced Load Balancer Go SDK is a Go Package that provides other APIs to communicate
with the NSX Advanced Load Balancer REST APIs. NSX Advanced Load Balancer GO SDK
package also provides utilities, which can be used to simplify and automate load balancing
configurations on an NSX Advanced Load Balancer Controller. The following are the essential
features for the NSX Advanced Load Balancer GO SDK package:
n Uses NSX Advanced Load Balancer session class and provides utilities to simplify integration
with the NSX Advanced Load Balancer Controller.
n Helps in session authentication and keeps a cache of sessions to avoid multiple connections
and tear downs across the different API sessions invocation.
n Automatically updates session cookies and CSRF Tokens from the NSX Advanced Load
Balancer Controllers and provides helper APIs and templates for NSX Advanced Load
Balancer Objects.
n X-AVI-TENANT (tenant) header handling and provides the sample source code for common
load balancing examples.
SDK Directories
NSX Advanced Load Balancer Go SDK package is the source for the Go SDK for NSX Advanced
Load Balancer Controller configuration. It is not required to download packages. Go will take care
of package installations.
The following are the important NSX Advanced Load Balancer Go SDK directories:
n Create session
n Create a pool with one server, create an SSL virtual service, and fetch an object by name
2 clients: Contains NSX Advanced Load Balancer clients to establish a connection between the
Go SDK and NSX Advanced Load Balancer Controller using the NSX Advanced Load Balancer
session class. Each resource has its client to establish the connection.
3 session: Contains all the generic codes of the REST API calls for the NSX Advanced Load
Balancer session and helper routines from REST API calls. It creates and maintains a session
for the given resource.
4 models: Contains all models required to capture the API response. These are the structures to
grab and store data of corresponding NSX Advanced Load Balancer REST API calls.
Prerequisites
Go Lang package must be installed before installing the NSX Advanced Load Balancer Go SDK
package. To install the Go Lang package, see Go Lang Installation.
$ mkdir -p src/github.com/avinetworks/
$ cd src/github.com/avinetworks/
$ git clone https://github.com/avinetworks/sdk.git
#GOPATH will be path till src dir.
$ export GOPATH=~/src
Usage Examples
To create a session, a pool, and a basic virtual service (my-test-vs), execute create_vs.go
file. Before executing this script, specify NSX Advanced Load Balancer Controller IP address,
username, password, and tenant in create_vs.go file.
package main
import (
"github.com/avinetworks/sdk/go/clients"
"github.com/avinetworks/sdk/go/models"
"github.com/avinetworks/sdk/go/session"
)
The sample syntax mentioned below creates a session with the following attributes:
n Tenant: admin
Creating a Pool
The syntax mentioned below creates a pool with the following attributes:
pobj := models.Pool{}
pobj.Name = "my-test-pool"
serverobj := models.Server{}
serverobj.Enabled = true
serverobj.IP = &models.IPAddr{Type: "V4", Addr: "10.90.20.12"}
pobj.Servers = append(pobj.Servers, &serverobj)
npobj, err := aviClient.Pool.Create(&pobj)
if err != nil {
fmt.Println("Pool creation failed: ", err)
return
}
The syntax mentioned below created a virtual service with the following attributes:
n Name: my-test-vs
n IP Address: 10.90.20.51
n Port Number: 80
vsobj := models.VirtualService{}
vsobj.Name = "my-test-vs"
vipip := models.IPAddr{Type: "V4", Addr: "10.90.20.51"}
vsobj.Vip = append(vsobj.Vip, &models.Vip{VipID: "myvip", IPAddress: &vipip})
vsobj.PoolRef = npobj.UUID
vsobj.Services = append(vsobj.Services, &models.Service{Port: 80})
The sample syntax mentioned below fetches the virtual service details with the name
my-test-vs and provides the following output: Cloud UUID: f39f950a-e6ca-442d-b546-
fc31520991bb.
err = aviClient.AviSession.GetObject(
"virtualservice", session.SetName("my-test-vs"), session.SetResult(&obj),
session.SetCloudUUID("cloud-f39f950a-e6ca-442d-b546-fc31520991bb"))
fmt.Printf("VS with CLOUD_UUID obj: %v", obj)
The syntax mentioned below delete the desired virtual service using the Object ID for the
virtual service.
aviClient.VirtualService.Delete(nvsobj.UUID)
Deleting a Pool
aviClient.Pool.Delete(npobj.UUID)
$ go run create_vs.go
package main
import (
//"flag"
"fmt"
"github.com/avinetworks/sdk/go/clients"
"github.com/avinetworks/sdk/go/session"
)
func main() {
// Create a session and a generic client to Avi Controller
aviClient, err := clients.NewAviClient("10.10.25.42", "admin",
session.SetPassword(""),
session.SetTenant("admin"),
session.SetInsecure)
if err != nil {
fmt.Println("Couldn't create session: ", err)
return
}
mr := MetricRequest{Step: 1, Limit: 1, EntityUUID: "*", MetricID:
Compilation
Use the following syntax to compile the NSX Advanced Load Balancer Go SDK package.
The NSX Advanced Load Balancer Go SDK package can also be integrated with any third-party
Go code package. The following is an example of importing the NSX Advanced Load Balancer Go
SDK package into a third-party Go code package.
import
(
"github.com/avinetworks/sdk/go/clients"
"github.com/avinetworks/sdk/go/session"
The following is an example entry of vendor.json file for the Terraform provider:
"package": [ {
"path": "github.com/avinetworks/sdk/go/clients",
"revision": "796ddcccdc37a5a9771bfbb716b159ae5c9b4b11",
"revisionTime": "2018-04-06T16:51:27.185773",
"version": "18.1.3",
"versionExact": "18.1.3"
},
{
"path": "github.com/avinetworks/sdk/go/session",
"revision": "796ddcccdc37a5a9771bfbb716b159ae5c9b4b11",
"revisionTime": "2018-04-06T16:51:27.185773",
"version": "18.1.3",
"versionExact": "18.1.3"
} ]
Additional Information
The location on GitHub for NSX Advanced Load Balancer Go SDK package: https://
github.com/avinetworks/sdk/tree/master/go
User Roles
Each NSX Advanced Load Balancer user account is associated with a role. The role defines the
type of access the user has to each area of the NSX Advanced Load Balancer system. Roles
provide granular RBAC within NSX Advanced Load Balancer.
The role, in combination with the Chapter 6 Tenant Settings (optional), comprises the
authorization settings for an NSX Advanced Load Balancer user.
Access Types
For each NSX Advanced Load Balancer resource (object type) and within each group of
resources (system area), the user can have the following privileges:
n Write: The user has full access to create, read, modify, and delete resources.
n Read: The user can only read the existing configuration of resources. For example, the user
can see how a virtual service is configured and view the health and analytics data of the
virtual service but is unable to modify the configuration or delete the virtual service.
n No Access: The user has no access to the resources and cannot even read or enumerate
these resources.
n Assorted: The user has a mixture of the above privileges for different resources within the
system area.
Procedure
The pre-defined roles in NSX Advanced Load Balancer are listed. Each user role has different
levels of access to different settings in NSX Advanced Load Balancer.
2 Click the + icon in the table to expand the access settings for a role.
3 Click the edit icon against a role to configure the access settings for the role according to
your requirement.
Results
If multi-tenancy is configured, a user can be assigned to more than one tenant and have a
separate role for each tenant.
Create a Role
If none of the pre-defined roles exactly fit the access requirements for some user accounts, you
can create custom roles according to your requirement.
Procedure
4 Configure the access for each system area under Role Access. By default, all the roles are set
to no access.
a To set access to all the resources within a system area, click the required access icon on
the title row of the system row.
To provide write access to all the profiles, click the write icon on the title row of the
Profiles system area:
b To give write, read, or no access for some resources, click the relevant icon for each
resource. Automatically, the assorted access is enabled on the title row of the system
area, indicating multiple types of access.
5 Optionally, configure Label Filters for the role to provide object-based granular access.
g Click Save.
Roles can be assigned to a user account when the account is created or at any time later. In
either case, select the Role from the Role drop-down menu in the configuration popup for the
user account.
Procedure
2 To configure a new account, click Create. To edit an existing account, click the edit icon.
3 Under Tenant & Role, click Add and select the Role from the Roles drop-down menu. To
create a custom role, click Create.
LDAP group
A role is assigned to users in any group or specifically to users who are either members or
not members of specific groups.
LDAP attributes
For users who match the LDAP group filter, the role is assigned to those who either do or do
not have specific attributes and values.
The mappings are configured within NSX Advanced Load Balancer rather than the LDAP or
TACACS+ server.
To map LDAP or TACACS+ users to NSX Advanced Load Balancer roles, use the following steps.
Multiple mappings can be configured if needed for any combination of user group name and
attribute:value pair.
Prerequisites
n NSX Advanced Load Balancer authentication or authorization is set to remote, and an LDAP
or TACACS+ Auth profile is applied.
Procedure
1 Navigate to Templates > Security > Auth Mapping Profile and click Create.
2 In the CREATE AUTH MAPPING PROFILE under the General tab, enter the profile Name.
3 Select the Type of auth mapping profile to which these rules are applied and click ADD
button. Select LDAP to define LDAP Group Match.
Note Depending on the type selected, the auth profile settings are displayed.
n Member: Users must be members of the specified groups. If entering multiple group
names, use commas between the names.
n Contains: The user must have the specified attribute, and the attribute must have one of
the specified values.
n Does Not Contain: The user must not have the specified attribute and value(s).
n Regex:
n Attribute Regex:
n Attribute Value: Assigns the role whose name matches an attribute value from the LDAP
server.
n Group Name: Assigns the role whose name matches a group name on the LDAP server.
n Group Regex:
n Selected: Displays a Roles drop-down menu. Select the role from the menu.
8 If using multitenancy, users also can be mapped to tenants. Tenants can be mapped by
selecting User Tenant from the ADD drop-down menu. For more information, see Chapter 6
Tenant Settings.
9 Click Save.
Results
The new mapping appears in the Tenant and Role Mapping table.
Note The terms labels and markers are used interchangeably throughout the section.
n Multiple values (value 1, value 2, value 3…), mapped to a single key for an object.
Example:
User 1 has to transfer a pre-prod application to prod, for which User 2 has access.
In this case, the object has to be configured with “key” : “list of labels” for transferring the
application.
Any user who has access to the object with labels configured in the role, can use additional
labels which the user does not have access to.
“app“: [“pre-prod”, “prod”] After the transfer, the new app owner (User 2) can remove “app“:
“pre-prod“ from the object to discontinue access to User 1.
Example:
A user with labels in a role needs to access certain standard profiles, which have no labels.
n A new object, LabelGroup is introduced to track the labels allowed or suggested for a given
tenant. For each tenant, there can be associated label groups. At the tenant level, the labels
can either be enforced or deprecated.
Using Markers
The steps to configure the object using markers are as follows.
The pool configuration shows that the key and the corresponding values are assigned as shown
below.
+---------------------------------------+-------------------------------+
| Field | Value |
+---------------------------------------+-------------------------------+
| uuid | pool-0f373267-
d62d-47b5-90e6-486abdd5da53 |
| name | pool-123 |
| default_server_port | 80 |
| graceful_disable_timeout | 1 min |
| connection_ramp_duration | 10 min |
| max_concurrent_connections_per_server | 0 |
| lb_algorithm | LB_ALGORITHM_LEAST_CONNECTIONS|
| lb_algorithm_hash |
LB_ALGORITHM_CONSISTENT_HASH_SOURCE_IP_ADDRESS |
| inline_health_monitor | True |
| use_service_port | False |
| capacity_estimation | False |
| capacity_estimation_ttfb_thresh | 0 milliseconds |
| vrf_ref | global |
| fewest_tasks_feedback_delay | 10 sec |
| enabled | True |
| request_queue_enabled | False |
| request_queue_depth | 128 |
| host_check_enabled | False |
| sni_enabled | True |
| rewrite_host_header_to_sni | False |
| rewrite_host_header_to_server_name | False |
| lb_algorithm_core_nonaffinity | 2 |
| lookup_server_by_name | False |
| analytics_profile_ref | System-Analytics-Profile |
| markers[1] | |
| key | owner |
| values[1] | eng |
| values[2] | marketing |
| tenant_ref | admin |
| cloud_ref | Default-Cloud |
| server_timeout | 0 milliseconds |
| delete_server_on_dns_refresh | True |
| enable_http2 | False |
| ignore_server_port | False |
| routing_pool | False |
+---------------------------------------+-------------------------------+
Create Roles
Create the Role named Eng with write access to the pool object.
+-------------------------+-------------------------------------------+
| Field | Value |
+-------------------------+-------------------------------------------+
| uuid | role-870880cf-6093-4dbb-83bb-b6e0566dfc83 |
| name | role-eng |
| privileges[1] | |
| type | WRITE_ACCESS |
| resource | PERMISSION_POOL |
| filters[1] | |
| match_operation | ROLE_FILTER_GLOB_MATCH |
| match_label | |
| key | owner |
| values[1] | *eng* |
| enabled | True |
| allow_unlabelled_access | False |
| tenant_ref | admin |
+-------------------------+-------------------------------------------+
Note For this role, allow_unlabelled_access is disabled. This means, the unlabelled objects are
not visible to the user. For unlabelled objects to be visible, this option has to be set to True.
Similarly, the role marketing can be configured with the required permissions to the object.
+-------------------+-------------------------------------------------+
| Field | Value |
+-------------------+-------------------------------------------------+
| uuid | labelgroup-dee35ef6-b3c3-4eae-956a-9b32b6a87d26 |
| name | labelgroup-123 |
| labels[1] | |
| match_operation | ROLE_FILTER_EQUALS |
| match_label | |
| key | owner |
| values[1] | eng |
| values[2] | marketing |
| values[3] | testing |
+-------------------+-------------------------------------------------+
+--------------------------------+--------------------------------------+
| Field | Value |
+--------------------------------+--------------------------------------+
| uuid | tenant-b7a85c33-26c3-40eb-a25c-
f86a58d3e5ff |
| name | t-1 |
| local | True |
| config_settings | |
| tenant_vrf | False |
| se_in_provider_context | True |
| tenant_access_to_provider_se | True |
| enforce_label_group | True |
| label_group_refs[1] | labelgroup-123 |
+--------------------------------+--------------------------------------+
Creating an object with markers that does not qualify the assigned key:value rules in the label
group, displayed as error.
For example, if the pool object is configured with the marker “Key”: [“sales”], an error is
displayed as shown below:
Supported Objects
The labels framework is supported for the following config objects:
n VIRTUALSERVICE
n POOL
n POOLGROUP
n NETWORKPROFILE
n HTTPPOLICYSET
n DNSPOLICY
n SECURITYPOLICY
n IPADDRGROUP
n STRINGGROUP
n SSLPROFILE
n SSLKEYANDCERTIFICATE
n NETWORKSECURITYPOLICY
n APPLICATIONPERSISTENCEPROFILE
n ANALYTICSPROFILE
n VSDATASCRIPTSET
n PKIPROFILE
n SERVERAUTOSCALEPOLICY
n AUTOSCALELAUNCHCONFIG
n HARDWARESECURITYMODULEGROUP
n PRIORITYLABELS
n POOLGROUPDEPLOYMENTPOLICY
n GSLBSERVICE
n GSLBGEODBPROFILE
n GSLBAPPLICATIONPERSISTENCEPROFILE
n TRAFFICCLONEPROFILE
n WAFPOLICY
n WAFPROFILE
n ERRORPAGEPROFILE
n ERRORPAGEBODY
n L4POLICYSET
n WAFPOLICYPSMGROUP
n PINGACCESSAGENT
n NETWORKSERVICE
n NATPOLICY
n SSOPOLICY
n PROTOCOLPARSER
n IPREPUTATIONDB
n IpamDnsProviderProfile
n SERVICEENGINEGROUP
This field is set to False by default. To enforce label-based permissions on cloud objects, set the
field restrict_cloud_read_access to True as shown below.
Unsupported Permissions
The following permissions classified under Operations and Administrations are not supported for
role-based access control per app using labels:
n Operations
n Administration
n The number of labels for objects is limited to 4. There is no limit of values to each label or
marker key.
n The number of characters for the labels key and value is limited to 128.
n A user with no filters can access all objects as per the privileges configured in the role (as per
the default behavior).
RBAC can be implemented at a field-level. This section covers the use of sub-resources to
implement RBAC per field.
n Enable or disable GSLB service groups, but restrict updating any other fields in the GSLB
object
n Enable or disable a virtual service, but restrict updating any other virtual service configuration
n Add, remove, or update the pool servers, but restrict updating any other pool configuration
Sub-resources
To implement per-field RBAC, sub-resources for the existing resources are introduced. These
sub-resources are associated with a specific field, feature, or a set of fields within the object.
When a sub-resource is configured on a resource with write access, it will allow update to the
object only if those sub-resources are the only fields updated. Read access is allowed for the
full object, but delete and create are not allowed from that permission. Sub-resources can be
combined to allow users to configure multiple fields or features in an object.
To define access for sub-resources, the flags allow edit to only [subresource(s)] and
allow edit of entire object except for [subresource(s)] are introduced.
+--------------------------+-------------------------------------------+
| Field | Value |
+--------------------------+-------------------------------------------+
| uuid | role-c5d28445-995c-44b8-9677-610bb20cb2e7 |
| name | Pool-Enabled-Role |
| privileges[1] | |
| type | WRITE_ACCESS |
| resource | PERMISSION_POOL |
| subresource | |
| exclude_subresources | False |
| subresources[1] | SUBRESOURCE_POOL_ENABLED |
| tenant_ref | admin |
+--------------------------+-------------------------------------------+
Sub-resources enable the user to execute a specific function within the object.
Sub-resource Function
Note Prior to NSX Advanced Load Balancer version 22.1.1, it was only possible to control the
update (PUT) action on any resource field. Starting with NSX Advanced Load Balancer version
22.1.1, if the access is not allowed for any field, creation of objects is not permitted as well.
NSX Advanced Load Balancer supports user profile mapping for remote users.
To configure remote authentication using the NSX Advanced Load Balancer UI,
2 In the Edit System Settings screen, select Remote as the Authentication method.
3 Select Enable Local User Login to allow users from the local user database to log in with their
user credentials.
5 From the Select Auth Profile, select an existing remote auth profile or click the vertical menu
icon (three dots) to create a new auth profile.
6 Click Save.
Note Tenant and role mapping are available only with remote authentication.
Multiple remote authentication profiles can be configured using the NSX Advanced Load
Balancer UI under the following conditions:
n Any number of auth profiles (more than 2) can be created provided they are of the same
type. Consider the following examples to understand this further:
n TACACS Fails with an error All the profiles are not of the same
n TACACS type
n LDAP
n Both profiles cannot be SAMl. So if SAML is the first auth profile, then the second profile
has to be any profile other than SAML
Note The role and tenant need to configured to allow only the least privileges.
If the user is not assigned any more role or tenant pairs, the least privileged access will take
effect after login.
1 From the NSX Advanced Load Balancer UI, navigate to Templates > Security > Auth Mapping
Profile.
Note If multiple tenants are created in the mapping rules, the first tenant selected is taken as
the default tenant by default.
8 Click Save.
Alternatively, default tenant for remote users can be configured using the field
default_tenant_ref through the CLI as shown below:
| mapping_rules[1] | |
| index | 0 |
| is_superuser | True |
| default_tenant_ref | admin |
| tenant_ref | admin |
+----------------------+---------------------------------------------------------+
[admin:10-102-64-241]: >
Selected Tenant ref Only selected tenant values Any User-specified Tenant
that is part of selected
tenant list otherwise Must
check will throw an error
while creating a new
mappingFor example, if the
selected tenant list has
T1 and T2 but the user
has provided T3 as default
tenant then must check
will throw an error "Default
tenant is not in selected
tenants list.If the user has
not selected any tenant
but has provided default
tenant ref then the error
**Please add at least one
tenant in the selected list**
is displayed.
Note In case of Attribute Regex, Attribute value, Group Name, if the user has entered a tenant
that is not part of the user tenant list (retrieved at runtime on the basis of Attribute Regex,
Attribute Value, Group Name, Group Regex match), then the first entry in the retrieved list will be
assigned as default tenant from the tenant list. For example, U1 can be assigned T1, T2 but T3 is
provided as the default tenant at that time either T1 or T2 will become the default tenant based
on which one is first entry in the retrieved tenant list.
n Application Admins:
n Can only create, read, update, and delete virtual services and other profiles
Separate mapping rules are required to map users from each group to different role or tenant
assignments.
n Tenant Application Admins: have access to a few tenants — app owner for a few tenants
n Tenant Application Operators: have access to a few tenants — cannot modify anything
n Tenant Application Admins or Operators: have access to a few tenants as app owners and
other tenants as app operator folks
In this example, members of group Service Admins E have read or write access (Application-
Admin role) in tenants Tenant AE and Tenant SE, whereas they have read-only access
(Application-Operator role) in a few other tenants. Service Operators have only read-only access
in their respective tenants.
Multiple mapping rules are configured based on various group and attribute criteria.
The LDAP server is configured with John Doe as a member of the groups - Enterprise Admins
and Service Operators.
After the user John Doe logs in, and all authorization rules are applied to the user session.
Multiple role or tenant combinations are used to determine user privileges during user login. The
user record shows the user successfully matched all four rules and role or tenant pairs were
appropriately applied.
Mapping rules make a member of the group Service Operators a super user.
Due to the super user access, user John Doe gets access to all tenants with every role.
Mapping rules are updated to keep user John Doe from having any privileges.
When user John Doe logs in, the user interface reports no privileges to login.
Example:
LDAP DATA
user: test_user
n lb_ap1234_test
n lb_ap7890_test
"attribute_match": {
"values": [ "lb_?P{tenant}\\w*)_test" ],
"name": "tenant",
"criteria": "AUTH_MATCH_REGEX"
}
"assign_tenant": "ASSIGN_MATCHING_ATTRIBUTE_REGEX",
"assign_role": "ASSIGN_FROM_SELECT_LIST"
"role_refs": ["https://10.10.24.204/api/role/[Role-UUID]" ],
}
Result:
With this rule mapping and LDAP configuration, test_user will get(Tenant-admin) assigned in
tenants ap1234 and ap7890.
Note Ensure the user profile is already created. For more information on how to create and
configure a user profile, see Configuration and Use of No-Lockout-User-Account-Profile on NSX
Advanced Load Balancer.
Alternate authentication profile configuration is only supported through the CLI. Owing to the
absence of UI support, to configure the alternate authentication profile, one of the following is
required:
n The Enable local user login option in Administration > System Settings > EDITAuthentication
must be enabled.
Note
n An Alternate authentication profile is only supported when the primary authentication profile
is SAML.
NSX Advanced Load Balancer will fallback to alternative auth configuration when primary auth is
SAML and alternative auth is configured.
API or CLI will fallback to alternative auth configuration when the primary auth is SAML and
alternative auth is configured.
UI will also fall back to alternate auth if it is forced to local login even when the configured auth
profile is SAML through https://<controller-ip>/#!/login?local=true.
The administrator controls this feature through NSX Advanced Load Balancer CLI or REST API.
The setting for it is maintained within the UserAccountProfile object. By default, all the users in
the system are attached to Default-User-Account-Profile, as shown below. The admin can create
a new user account profile with different thresholds if required.
If the threshold has been reached, the user can choose to invalidate existing sessions using the
--clear-sessions option of the shell command.
root@10-10-24-52:/home/admin# shell
Login: admin
Password:
Caution Maximum concurrent session count has been reached. Clear the sessions using shell
–clear-sessions
The sessions are considered invalid when one of the following is observed:
n The user’s CLI sessions will end with no indication on-screen. The next command typed will
trigger the re-validation of a new CLI session, and the command will be executed.
n A REST API user’s next API call will fail to validate. Or, if the REST API user is executing calls
within a session, the session is ended.
n Default-User-Account-Profile
n No-Lockout-User-Account-Profile
By default, all the users in the system are associated with Default-User-Account-Profile.
The main difference between the default and the no lockout user profile is the value set for Max
Login Failure Count. Max Login Failure Count is the number of login attempts allowed before the
lockout of the user account. By default, this value is set to 3 for the default profile.
For the no lockout user profile, Max login Failure Count is set to 0. It means that a user can have
unlimited login failures without the risk of an account getting locked.
1 Login to the NSX Advanced Load Balancer Controller using admin credentials.
3 Provide the username of your choice. In this example, we are using GSLB-User.
5 Use desired Tenant and Role for this new user and click Save.
Note Use the user that was created in the previous step while doing GSLB configuration.
For example, the user “admin” must be replaced with the newly created user (GSLB-User) with
No-Lockout-User-Account-Profile.
For more information on NSX Advanced Load Balancer GSLB site configuration, see GSLB
Configuration topic in the VMware NSX Advanced Load BalancerInstallation Guide.
User Accounts
A valid account is required for access to NSX Advanced Load Balancer through the web
interface, REST API, or CLI. User accounts can be maintained locally in NSX Advanced Load
Balancer or remotely through an external authentication, authorization, and accounting (AAA)
server.
Note
n To configure or manage NSX Advanced Load Balancer user accounts, you need a user
account with write access to the Accounts section. This is defined by the role assigned to the
user account.
n The admin user account is a unique account used for initial setup of NSX Advanced Load
Balancer. This account cannot be deleted.
Field Description
Super User Super user access provides write access to all resources
within NSX Advanced Load Balancer.
Tenant (Role) Access settings (write, read, or no access) for each type
of resource within NSX Advanced Load Balancer.
Starting with NSX Advanced Load Balancer 22.1.3, the User Account Table UI is enhanced and
appears as shown below:
Field Description
The admin account that is created during the installation of the Controller automatically has
Super User access enabled.
Optionally, super user access can be enabled in other user accounts, on an individual basis.
To enable super access for a NSX Advanced Load Balancer user account, select the Super User
check box in the account configuration.
A non-admin user that is also a super-user can be associated with the NSX Advanced Load
Balancer Controller by using the attach <Avi Controller IP> command. This provides the
Controller container access to the user as an avidebuguser. The avidebuguser is also a sudo user.
Attach option is available only if the local or remote user is configured as a super-user.
For detailed information about configuring user accounts, see Create a User Account.
For more information on Super User Account, see the following topics:
n Accessing NSX Advanced Load Balancer Linux CLI as a Non-Admin User Using an SSH client
n Configuring SAML with Workspace One for NSX Advanced Load Balancer
A user can attach to the Service Engine using the attach serviceengine <se_ip> command.
The admin user is authenticated using a token and logs into the SE as admin. An illustration
follows:
Any non-admin super-user is also authenticated using tokens and logs into the SE as
avidebuguser. This user also has super-user privileges on the SE.
http://www.opensource.org/licenses/gpl-2.0.php and
http://www.opensource.org/licenses/lgpl-2.1.php
Last login: Wed Aug 17 14:32:15 2022 from 10.16.113.99
avidebuguser@10-10-26-42:~$
Controller-to-SE Communication
This requires an SSH user who exists on both the Controller and the SEs, and a copy of the SSH
user’s public key on the NSX Advanced Load Balancer SEs. Though SSH setup is automated for
some installation types such as installation into VMware with write access, other installation types
require manual setup of these SSH resources. For more information, see Public Key Management
on SE Hosts topic in the VMware NSX Advanced Load BalancerInstallation Guide.
Note An SSH user and key that already exists can be used. They must still be added to the
Controller using these steps. When creating the user account, the existing key for the user can
be added by copying and pasting it or by importing the key file.
2 Click Create.
3 Enter the SSH user name (for example, root) in the Name field.
4 In Keys section, select Generate SSH Key Value Pair to create a key pair for the user.
Note If the user already exists, you can add the user to the NSX Advanced Load Balancer
by entering the user name, selecting Import Private Key, and either copying and pasting or
importing the key file.
2 Click the three dots next to the SSH user and select Download Public Key.
admin
n The admin account exists on both the Controller and Service Engine of NSX Advanced Load
Balancer.
n It is the default administrator user-name for the system and cannot be changed.
n From Linux prompt, use shell command to access the CLI shell.
n admin is the only NSX Advanced Load Balancer account with its password automatically
synchronized with Linux.
n Default password for admin user - The initial default password of the Controller admin user is
changed from admin (that was available in older releases of NSX Advanced Load Balancer)
to a strong password. This password is available in the portal where release images are
uploaded and is accessible only to customers having an account on the portal. Additionally,
SSH access to the Controller with this default password is not allowed until the user changes
the default password of the admin user. Once the password is changed, SSH access to
the admin user is permitted. For more information on default password, see Strong Default
Admin Password.
n This account is always authenticated through the local user-db. It does not use any
configured remote authentication.
cli
n This account is used to launch a remote CLI shell to the Controller when authenticating with
any user that is not an admin. You must SSH to the Controller using CLI as the user name. You
will be presented with the CLI shell access user name and password prompt, which will be the
user credentials.
n It is password-less from the Linux perspective with the CLI shell as the default shell that
prompts for a user name/password.
aviseuser
n This account exists on the Controller and SE.
avictlruser
n This account exists on Controller only.
Procedure
3 In the Username field, enter the name that the user will supply when signing into NSX
Advanced Load Balancer, such as jdoe or [email protected].
4 In the Password field, either enter a case-sensitive password or click the Generate button to
create a random password for the new user.
5 In the Email field, enter the email address of the user. This field is used when a user loses
their password and requests to have it reset. See Password Recovery.
6 In the Role field, select the areas of the NSX Advanced Load Balancer system to which
the user account will be allowed access. For each system area, the role defines whether
the user account has read, write, or no access. NSX Advanced Load Balancer comes with
predefined roles. In addition, users who have write access to the Accounts section of NSX
Advanced Load Balancer can customize the predefined roles and create new roles. For more
information, see User Roles.
7 If the user requires the same privileges as the admin account, select the Super User check
box.
8 Click Save.
This applies only to accounts in local user database of NSX Advanced Load Balancer.
2 Click the user icon in the top, right corner of the application.
3 Click My Account.
5 To change the password, enter the Old Password, the New Password and re-enter the New
Password for confirmation.
6 Enter the Email address. This is the address that the NSX Advanced Load Balancer will use
when you request a password recovery.
7 Select the Time Zone. The format can be UTC Time or Local Time. The NSX Advanced
Load Balancer obtains the time from the specified NTP server. This format is used in the
timestamps that appear in logs or metrics.
Note The UI supports Japanese and Simplified Chinese along with the default option English.
9 Under Session Timeout, enter the maximum number of minutes a management session can
remain idle before being terminated by the Controller.
10 Under DNS Refresh Period, enter the period for refresh pool and GSLB DNS job in minutes.
11 Click Save.
Only administrators with write access can modify this parameter by navigating to Administration
> Controller.
The account can timeout based on the global settings defined by an administrator with
appropriate privileges.
You can change this setting through the GUI by logging in to the NSX Advanced Load Balancer
UI and navigating to My Account > Session Timeout.
You can change this setting through the CLI by navigating to show controller properties
api_idle_timeout.
The administrator controls this feature through the NSX Advanced Load Balancer CLI or REST
API. The setting for it is maintained within the UserAccountProfile object. By default, all the users
in the system are attached to Default-User-Account-Profile, as shown in the following example. If
required, the admin can create a new user account profile with different thresholds.
The administrator controls this feature through the NSX Advanced Load Balancer CLI or REST
API. The setting for it is maintained within the UserAccountProfile object. By default, all the users
in the system are attached to Default-User-Account-Profile, as shown in the following example. If
required, the admin can create a new user account profile with different thresholds.
+-------------------------------+---------------------------------------------------------+
| Field | Value |
+-------------------------------+---------------------------------------------------------+
| uuid | useraccountprofile-6753548e-7ac5-4601-939b-ad4394405db4 |
| name | Default-User-Account-Profile |
| max_password_history_count | 0 |
| max_login_failure_count | 20 |
| account_lock_timeout | 30 |
| max_concurrent_sessions | 0 |
| credentials_timeout_threshold | 0 |
+-------------------------------+---------------------------------------------------------+
CLI commands to set credentials_timeout_threshold:
[admin:10-10-24-52]: > configure useraccountprofile Default-User-Account-Profile
Updating an existing object. Currently, the object is:
[admin:10-10-24-52]: useraccountprofile> credentials_timeout_threshold 60
Overwriting the previously entered value for credentials_timeout_threshold
[admin:10-10-24-52]: useraccountprofile> save
+-------------------------------+---------------------------------------------------------+
| Field | Value |
+-------------------------------+---------------------------------------------------------+
| uuid | useraccountprofile-6753548e-7ac5-4601-939b-ad4394405db4 |
| name | Default-User-Account-Profile |
| max_password_history_count | 0 |
| max_login_failure_count | 20 |
| account_lock_timeout | 30 |
| max_concurrent_sessions | 0 |
| credentials_timeout_threshold | 60 |
+-------------------------------+---------------------------------------------------------+
SSH access to the Controller with this default password is not allowed until the user changes the
default password of the admin user. Once the password is changed, SSH access to the admin
user is permitted. The primary reason behind this change is to mitigate the risk of having a newly
created Controller being attacked through SSH using the simple password. The password can be
changed through the Welcome screen in NSX Advanced Load Balancer UI, NSX Advanced Load
Balancer REST API, or through a remote CLI shell. This change strikes a good balance between
security and ease of automation and keeps the existing automation workflows such as the NSX
Advanced Load Balancer UI welcome screen, adding Controller nodes to a cluster unchanged.
Customers must change the password of the admin user to a strong password first before any
other change is implemented in the Controller.
The strong password enforcement feature does not affect remotely authenticated accounts. It
also does not impact the password requirements for the underlying Linux operating system of
the NSX Advanced Load Balancer.
n Minimum of 8 characters
n Uppercase letters
n Lowercase letters
n Digits
n Special characters
You can specify the minimum permissible password length when password complexity is
enforced. The configurable minimum password length can be from 6-32 characters with the
default as 8 characters.
You can configure minimum password length using the following CLI command.
Note Only an account that has the System Administrator role can change this setting.
bash# shell
: > configure systemconfiguration
: systemconfiguration> portal_configuration
: systemconfiguration:portal_configuration> password_strength_check
Overwriting the previously entered value for password_strength_check
: systemconfiguration:portal_configuration> exit
: systemconfiguration> exit
+-------------------------------------+----------------------------------+
| Field | Value |
+-------------------------------------+----------------------------------+
| uuid | default |
| portal_configuration | |
| enable_https | True |
| redirect_to_https | True |
| enable_http | True |
| enable_clickjacking_protection | True |
| allow_basic_authentication | False |
| password_strength_check | True |
+-------------------------------------+----------------------------------+
The administrator controls this feature through NSX Advanced Load Balancer CLI or REST API.
The settings for this feature are maintained within the UserAccountProfile object. By default,
all the users in the system are attached to Default-User-Account-Profile, as shown below. If
required, the admin can create a new user account profile with different thresholds.
delete adminkey
DELETE https://<controller-ip>/api/adminkey?key
Password Recovery
This section discusses ways to recover passwords for different user types.
Note An administrator can change passwords of other users through the User account page,
but can change their own password only through their account page.
n User-initiated
If SMTP email has been configured for NSX Advanced Load Balancer, locally authenticated users
can make a reset-password request through the GUI. In the NSX Advanced Load Balancer UI,
the Forgot Your Password? link is available below the Password field. Clicking the link brings
up a window which prompts for the email addressof the user. If the provided email address has
been configured through the Administration > Account > User page, an email containing a link
to reset the password is sent to the email id. If SMTP has not been configured, the Forgot your
password? link does not appear.
Note The user account must have a valid email configured for the account, and NSX Advanced
Load Balancer must have access to an SMTP server.
n Admin-initiated
Any administrator or user who has write privileges to user objects can change the password for a
local user. From the admin account, navigate to Administration > Account > User and edit the
account to be reset. Input a new password or select the Generate button to create a random
password for the user.
Note Though the password is reset on saving, the administrator must still copy and manually
send this new password to the user.
User Profile
The User Profiles section is used to control a user access to NSX Advanced Load Balancer. You
can configure and control different attributes related to the user account. By default, there are
two user profiles available:
1 Default-User-Account-Profile
2 No-Lockout-User-Account-Profile
Procedure
2 From this screen, Create new user profiles, edit or Delete existing user profiles, as required.
Procedure
2 Enter a Name.
3 Under Max Password History Count, enter the maximum number of passwords to be
maintained in the password history.
5 Under Login Failure Count Expiry Window, enter the time (in minutes) within which only
login_failure_attempts from the past will be considered for account lockout. Set this to 0
if you do not want to do a time-based account lockout and consider all failed login attempts
irrespective of time frame.
7 Enter Credentials Timeout Threshold (in days), after which the credentials are invalid.
8 Click Save.
What to do next
To completely avoid the risk of your account getting locked, you can use the Configuration and
Use of No-Lockout-User-Account-Profile on NSX Advanced Load Balancer. By default, this user
profile has Max login Failure Count and Login Failure Count Expiry Window set to 0.
You can reboot the Controller node using the following CLI:
You can reboot the Controller node using the following API command:
/cluster/reboot/node
cluster/reboot
For more details on the CLI used here, see CLI Top-Level Commands section in this guide.
Note
n Increasing overall disk capacity by adding a new, additional disk to the Controller VM is not
supported.
n It is recommended to configure the same disk size for all Controllers in a cluster.
2 Increase the disk size through the hypervisor or public cloud console.
4 SSH to the Controller VM, and confirm that the new disk size using the command sudo df
-h.
5 Perform the above steps on the follower nodes first, followed by the leader nodes.
If the Controller is part of a cluster, it is recommended to perform the changes on the follower
nodes, followed by the leader node.
Note
n It is recommended to configure the same resource parameters for all Controllers in a cluster.
Follow the below steps to increase vCPU or Memory of an NSX Advanced Load Balancer
Controller:
6 Perform the above steps on the follower nodes, followed by the leader nodes.
2 Increase disk size for the physical or virtual machine using the tools appropriate to your
environment.
6 Power down the Controller cluster leader. One of the two already-upgraded followers
automatically become the new leader.
7 Proceed with steps 2-4 for the third and final Controller. The third controller must have joined
as the second follower.
Any user capable of logging into the admin tenant is authorized to perform a backup of the entire
configuration, that is, of all tenants. A restore operation spans all the same entities but can only
be performed by the administrator(s) capable of logging into one of the Controllers using SSH or
SCP.
It is a best practice to store backups in a safe external location in the unlikely event that
a disaster destroys the entire NSX Advanced Load Balancer Controller (or cluster), with no
possibility of remediation. A recommended backup schedule could be daily or even hourly, based
on how often the configuration changes.
Note The scheduled backups get stored in /var/lib/avi/backups/ on all NSX Advanced
Load Balancer Controller in the cluster.
1 To configure the backup, click EDIT to view the EDIT CONFIGURATION BACKUP screen.
3 Enter the Passphrase and confirm the passphrase to encrypt all sensitive fields contained
within the backup. Choose a phrase that is not easy to guess and guard it carefully. Data
cannot be restored without the passphrase.
a Enter a value from 0 to 60 as the Frequency to determine how often backups are to be
taken. 0 indicates the backup sequence has no end time.
b Enter the Frequency Unit for backups to occur. By default, the Frequency Unit is taken
every day. Use this field to change the unit to minutes, hours, weeks, or months.
7 You can choose to save local (on Controller) and remote backup locations independently. In
the Backup Destination section, configure the following:
a Select Enable Local Backups (On Controller), to preserve the number of indicated
backups on the Controller.
b Select Enable Remote Server Backup to save the backup on a remote server.
c In the Server Address field, enter an FQDN or IP address reachable from the Controller.
d In the Home Directory field, provide a remote destination address with write permissions.
e Use the drop-down menu to select User Credentials from a previously-defined SSH user.
Alternatively, click the three dots at the end of the field to Create new user credentials.
| backup_file_prefix | sftp |
| remote_file_transfer_protocol | SFTP |
| tenant_ref | admin |
+-------------------------------+----------------------------------------------------------+
[admin:10-102-64-234]: >
You can specify the value of start_date_time from the CLI (not possible using the UI).
PUT : api/scheduler/
{'_last_modified': u'1476209663670990',
'backup_config_ref': 'https://10.10.24.52/api/backupconfiguration/
backupconfiguration-5d65f12e-5da1-49e0-b703-ec65ae9a39c6',
'enabled': True,
'frequency': 1,
'frequency_unit': u'SCHEDULER_FREQUENCY_UNIT_WEEK',
'name': u'Default-Scheduler',
'run_mode': u'RUN_MODE_PERIODIC',
'scheduler_action': u'SCHEDULER_ACTION_BACKUP',
'start_date_time': u'2016-10-09T15:35:46.220623',
'tenant_ref': u'https://10.10.24.52/api/tenant/admin',
'url': 'https://10.10.24.52/api/scheduler/scheduler-b5f7e673-8818-44d1-8f74-45238cc08235',
'uuid': u'scheduler-b5f7e673-8818-44d1-8f74-45238cc08235'}
GET https://[CONTROLLER-IP]/api/configuration/export?full_system=true
GET https://[CONTROLLER-IP]/api/configuration/export?full_system=true&passphrase=[PASSPHRASE]
Use the following POST method and include passphrase in the JSON data.
Make sure to replace [CONTROLLER-IP] with the IP address of the NSX Advanced Load Balancer
Controller (if using a single Controller node) or the IP address of the Controller cluster.
Provide the value of the following attributes to save the backup file on the Amazon S3 bucket for
the required instance.
Note For enabling backup of the NSX Advanced Load Balancer Controller, you must have write
access permission to the S3 bucket.
For detailed information on the Access Key ID and Secret Access Key, see AWS User Cross-
Account AssumeRole topic in the VMware NSX Advanced Load BalancerInstallation Guide.
partition, rename or delete the prev partition. The prev partition can either be root1 or root2mv
root1/root2 prev_back.
1 sudo cat/proc/cmdline
You can observe an output with either root1 or root2 as a current partition.
cd /host
ls -lrth <- This is to see if you have root1 and root2 directories.
mv root2 prev_bak ----> as root2 is prev partition
Thereafter, the following script can be used to automate the configuration recovery process.
/opt/avi/scripts/restore_config.py
This script imports the backup configuration onto the NSX Advanced Load Balancer Controller.
If restoring a Controller cluster, this script restores the configuration and re-adds the other two
nodes to the cluster.
1 Create three new Controllers with the same IP address as the original cluster members. (NSX
Advanced Load Balancer currently supports only static IP addresses). At this point, other
than having an IP address, each Controller node must be in its factory default state.
2 Log in to one of the NSX Advanced Load Balancer Controller nodes using SSH or SCP. Use
the default administrator credentials.
Note Starting with NSX Advanced Load Balancer 22.1.3, the following options are no longer
supported.
1 --do_not_form_cluster
2 --vip
3 --followers
2 Reform the cluster by inviting the two new nodes to the cluster.
n The two new Controllers need to be spawned (make sure not to make any changes to them).
Execute the following command to reset the nodes to factory default states.
Run the below command with the above optional arguments to restore a 3-node cluster.
If the followers argument is not added in the above command, the cluster can be formed
manually from the UI, CLI, or API after a successful restore configuration. The other Controllers
need to be in a factory default state to be accepted for cluster formation.
During a restore config, the SE package is re-signed, and existing SE packages are deleted.
If a restore config fails due to a configuration import error, the logs can be found
in /opt/avi/log/portal-webapp.log.
Upgrade Overview
NSX Advanced Load Balancer supports improved and more flexible methods for upgrading the
NSX Advanced Load Balancer system.
The followings are the additional features for the Flexible Upgrades:
n The upgrade is possible per SE group. The transition of all the SE groups to the new version
might occur over a long period.
System (NSX Advanced System (NSX Advanced System (NSX Advanced System (NSX Advanced
Load Balancer Controller Load Balancer Controller Load Balancer Controller Load Balancer Controller
and SE Groups) and SE Groups) and SE Groups) and SE Groups)
NSX Advanced Load NSX Advanced Load NSX Advanced Load NSX Advanced Load
Balancer Controller only Balancer Controller only Balancer Controller only Balancer Controller only
Some or all the SE groups Some or all the SE groups Some or all the SE groups Some or all the SE groups
Use Cases
n Scenarios where it is not possible to upgrade all SE groups to the newer version at the same
time due to various business reasons such as logistics, confidence in the new software, and
so on
n The configuration is blocked during the entire duration of the NSX Advanced Load Balancer
Controller and SE upgrade. This is not acceptable in many deployments. With the new
upgrade feature, the process is flexible and can be performed on an SE group basis. The
configuration is blocked for the entire duration if a system upgrade is performed till all SEs
are upgraded
n Using SE groups for data plane separation. Based on the SE group segmentation, the
upgrade is performed depending on the following attributes:
n Tenant
n Flexible scheduling
n Self-service upgrades
Patch Overview
NSX Advanced Load Balancer supports patch upgrades by which hotfixes are placed into effect.
n System — Patch upgrade for NSX Advanced Load Balancer Controller and all SE groups
n Controller — Patch upgrade for the NSX Advanced Load Balancer Controller
Note The following are a few points for a patch upgrade process:
n An image with a patch can be applied.
n The image and the patch must have the same base version.
n Compatibility checks prevent incorrect patches from getting applied to different versions.
Prerequisites
This section discusses about the prerequisites of Image Management and Service.
The Controller must have additional disk space to host these images.
NSX Advanced Load Balancer Controller images for the major versions include the following:
As a part of the upload process, the image service extracts files, and metadata from the package.
This information is not only displayed to the user, but it is also used in the upgrade process.
Note
n Image service provides an ability to upload, query, and delete NSX Advanced Load Balancer
image(s) to the system.
n Image service supports the upload of NSX Advanced Load Balancer patch packages.
n Image upload can happen only on the cluster leader. It is not allowed from a cluster member.
Image Bundling
NSX Advanced Load Balancer supports composite image or image bundle. The composite image
consists of the following:
The upgrade workflow using the image bundle, or the composite image is the same as the
standard image. When using the image bundle for an upgrade, a patch image can be applied in
addition to the base image.
Note When upgrading from versions 18.x or lesser to 21.1 and higher, in the NSX Advanced Load
Balancer Controller, change the DefaultTimeoutStartSec (File: /etc/systemd/system.conf) to
120 seconds to avoid timeout during the upgrade.
For uploading the package, use the upload image filename <path-of-the-package>
command as shown below.
The following show command returns the details of the image metadata. Use the show image
<image-name> command as shown below.
For more information about differences in CLI commands and APIs, see Comparison Table for
Differences in CLIs Commands and APIs.
n Use the following REST API to upload the image for controller.pkg.
n URI: /api/image
n Method: POST
n Use the following REST API to upload the image for controller_patch.pkg.
n Use the following API to delete the image provided, if it is not in use.
n For the CLI: This is directly integrated into the normal workflow, and there is no separate
command.
n For the REST API: Add /preview/ at the end of APIs to get previews for that particular flow.
Starting with NSX Advanced Load Balancer 22.1.3, for commencing an upgrade operation, all the
CLI upgrade requests must go with the skip_warning option. Without the skip_warning option,
the system state for any operation will lead to PRE_CHECK_WARNING and halt.
Similarly, use the skip_warning option while performing the patch upgrade.
cat /bootstrap/VERSION
For software upgrade operations, the NSX Advanced Load Balancer Controller provides visibility
into the pre-operation and post-operation states of the system, summarizing and highlighting the
significant differences in the state or health of the system caused by the performed operation.
When performing a software upgrade, the NSX Advanced Load Balancer Controller will take an
operational state snapshot pre-upgrade and another post-upgrade to allow the admin to perform
a quick validation of the current state of their environment compared to the state before the
upgrade.
n Virtual Services
n Service Engines
n Pools
n GSLB Services
The operational snapshots are taken during the following software operations:
n Upgrade
n Patch
n Rollback Patch
| Name | Status |
+----------------------------------------------------+----------------+
| upgrade_controller_fitb_2021-06-22-08:20:40.957288 | FB_IN_COMPLETED|
+----------------------------------------------------+----------------+
2 Check if the summarized state changes for a particular operation from the above listed
operations.
| | | state:
OPER_UP, | state: OPER_UP, |
| |
| last_changed_time: 21-06-12-17:45:27
| last_changed_time: 21-06-12-17:45:27 |
| |
|
| |
| vs-1 | virtualservice-1aa470fa-
e43f-47f3-b720-0836bf87bad8 |
| |
| | | state:
OPER_UP, | state: OPER_DOWN, |
| |
| last_changed_time: 21-06-12-17:45:27
| last_changed_time: 21-06-12-17:45:27 |
| |
|
| |
| pool-1 | pool-fb65d17e-
c28a-413c-a44e-17bdb705fd1b |
| |
| | | state:
OPER_UP, | state: OPER_UP, |
| |
| last_changed_time: 21-06-12-17:45:27
| last_changed_time: 21-06-12-17:45:27 |
| |
|
| |
| gslb-svc1 | gslbservice-
b3fed408-fa96-40a0-b240-df8e8c524dfb |
| |
| | | state:
OPER_UP, | state: OPER_UP, |
| |
| last_changed_time: 21-06-12-17:55:33
| last_changed_time: 21-06-12-17:55:33 |
| |
|
| |
+---------------+-----------------------------------------------------
+------------------------------------------------
+------------------------------------------------+
4 Check for the summary of state changes for all the objects of a particular type (virtual service
in this example).
+----------------------+
| vs-2 | virtualservice-7e22eec4-fc6b-40d9-9306-84259f54948a | NO |
- |
| vs-1 | virtualservice-1aa470fa-e43f-47f3-b720-0836bf87bad8 | YES | OPER_UP ->
OPER_DOWN |
+------+-----------------------------------------------------+--------------
+----------------------+
6 Check for the state changes for all objects under a particular serviceenginegroup(parent
obj) object.
+--------+-----------------------------------------------------
+------------------------------------------+------------------------------------------+
| vs-2 | virtualservice-7e22eec4-fc6b-40d9-9306-84259f54948a
| | |
| | | state:
OPER_UP, | state: OPER_UP, |
| | | last_changed_time:
21-06-12-17:45:27 | last_changed_time: 21-06-12-17:45:27 |
| |
| | |
| vs-1 | virtualservice-1aa470fa-e43f-47f3-b720-0836bf87bad8
| | |
| | | state:
OPER_UP, | state: OPER_DOWN, |
| | | last_changed_time:
21-06-12-17:45:27 | last_changed_time: 21-06-12-17:45:27 |
| |
| | |
| pool-1 | pool-fb65d17e-c28a-413c-a44e-17bdb705fd1b
| | |
| | | state:
OPER_UP, | state: OPER_UP, |
| | | last_changed_time:
21-06-12-17:45:27 | last_changed_time: 21-06-12-17:45:27 |
| |
| | |
+--------+-----------------------------------------------------
+------------------------------------------+------------------------------------------+
Pre-upgrade Checklist
This section provides a list of checks to be performed before initiating upgrade of NSX Advanced
Load Balancer.
NSX Advanced Load Balancer supports a simple system upgrade method wherein all NSX
Advanced Load Balancer Controller nodes and SE nodes are upgraded to the newer software
version in one upgrade sequence. Following are the list of checks to be performed before
upgrading the NSX Advanced Load Balancer:
n Check if all the three nodes of the Controller cluster are Active.
For more information about Controller clusters, see Chapter 5 NSX Advanced Load
Balancer Controller Cluster and Changing NSX Advanced Load Balancer Controller Cluster
Configuration.
n Check if there is adequate disk space on all the Controller nodes before the upgrade. Ideally,
the disk usage must not be more than 60%. For more information, see NSX Advanced
Load Balancer Controller Sizing topic in the VMware NSX Advanced Load BalancerInstallation
Guide.
n If the disk usage is more (greater than 80%), look for any core archives or packages uploaded
to the Controller nodes and clear them. Core archives are under /var/lib/avi/ archives.
n Ensure all servers are connected. Run Show serviceengine. Check if all the service engines
are UP unless they are disabled. For more information, see De-activating SE topic in
the VMware NSX Advanced Load BalancerMonitoring and Operability Guide. The upgrade
command does a pre-check to ensure that no Service Engines are disconnected from the
Controller, so we do not inadvertently finish the upgrade without these Service Engines.
n Ensure that all the SEs are on the version required. Run show version controller and show
version serviceengine.
n Check CPU and memory of all Controllers to ensure compliance with minimum
recommendations.
Note For NSX Advanced Load Balancer (formerly Avi Vantage) lifecycle information, see the
Product Life Cycle Matrix and the Lifecycle Policy.
Post-upgrade Checklist
This section provides a list of checks to be performed after successful upgrade of NSX Advanced
Load Balancer.
NSX Advanced Load Balancer supports a simple system upgrade method wherein all NSX
Advanced Load Balancer Controller nodes and SE nodes are upgraded to the newer software
version in one upgrade sequence. The list of checks performed post-upgrade are:
n Execute show upgrade status to ensure that the upgrade is successful. The status should
be UPGRADE_COMPLETED.
n Execute show version controller and show version serviceengine to ensure that the
service engines are on the version expected.
n Ensure all the three nodes of the Controller cluster are active.
n Inspect the Application Dashboard to ensure the application’s health is as expected. If you
have traffic tools to test the availability of the virtual services, ensure that this is running
successfully. For more information, see Virtual Service Health Monitoring topic in the VMware
NSX Advanced Load BalancerMonitoring and Operability Guide.
Upgrade Guide
This section explains about the Upgrade Guide.
Upgrading NSX Advanced Load Balancer System (NSX Advanced Load Balancer
Controller and SE Groups)
The configuration and placement of virtual services are blocked if it is a system-level upgrade
till all the SEs are upgraded. Once these operations are completed, configuration on NSX
Advanced Load Balancer Controller (except the configuration of virtual service and VIP) is
allowed, irrespective of the SE group upgrade status.
Note It is recommended to increase the default timeout value from 90 seconds to 120 seconds
before performing the upgrade. This is to avoid the upgrade going to timeout.
The following are the various options available for NSX Advanced Load Balancer system
upgrade:
n Use the upgrade system image_ref <image name> command to upgrade the system to a
base image.
n Use the following to upgrade the system to a base image and a controller patch.
n Use the following to upgrade the system to a base image and an SE patch.
n Use the following to upgrade the system to a base image, an NSX Advanced Load Balancer
Controller patch, and an SE patch.
SE Upgrades
The Controller allows you to pick up the number of SE-groups per Controller node.
seupgrade_fabric_pool_size:
This property allows the Controller to pickup number of SE groups per Controller to upgrade.
The default value of seupgrade_fabric_pool_size is 20. However, you can update this based on
the requirement or the load.
seupgrade_copy_pool_size:
seupgrade_copy_pool_size = n, where ‘n’ is the number of SE within SE group will be picked for
copy.
The default value of seupgrade_copy_pool_size is 5. However, you can update this based on the
requirement or the load.
4 Save.
SE Upgrades
The Controller allows you to pick up the number of SE-groups per Controller node.
seupgrade_fabric_pool_size:
This property allows the Controller to pickup number of SE groups per Controller to upgrade.
The default value of seupgrade_fabric_pool_size is 20. However, you can update this based on
the requirement or the load.
seupgrade_copy_pool_size:
seupgrade_copy_pool_size = n, where ‘n’ is the number of SE within SE group will be picked for
copy.
The default value of seupgrade_copy_pool_size is 5. However, you can update this based on the
requirement or the load.
4 Save.
The following are the various REST API options available for the NSX Advanced Load Balancer
system upgrade:
API:/api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'system': true
}
n Use the following API to upgrade the system to a base image and a controller patch.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'controller_patch_uuid': 'image-e3aaad68-5aaf-485a-8bd9-1db3ec562d6a',
'system': true
}
n Use the following API to upgrade the system to a base image and an SE patch.
API:/api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'system': true,
'se_patch_uuid': 'image-e3aaad68-5aaf-485a-8bd9-1db3ec562d6a',
'skip_warnings': True
}
n Use the following API to upgrade the system to a base image, an NSX Advanced Load
Balancer Controller patch, and an SE patch
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'controller_patch_uuid': 'image-e3aaad68-5aaf-485a-8bd9-1db3ec562d6a',
'system': true,
'se_patch_uuid': 'image-e88aaad68-5aaf-485a-8bd9-1db3ec562d6a'
}
Using the UI
The NSX Advanced Load Balancer supports improved and more flexible methods for upgrading
the system. The Controller supports all the upgrade workflows through the UI.
Following are the additional features for Flexible Upgrades using the NSX Advanced Load
Balancer UI:
n Upgrading System
n Upgrading only Service Engine Group – You can upgrade a single SE group or multiple SE
groups, as needed. The transition of all the SE groups to the new version can occur over a
long period. Upgrades of different SE groups are supported with different patch versions.
The following sections explain the different options available for the NSX Advanced Load
Balancer software’s upgrade process through the UI.
Upload the Software
To upload the NSX Advanced Load Balancer software:
1 Login to the NSX Advanced Load Balancer UI, and navigate to Administration > Controller
> Software. Click Upload From Computer to upload the NSX Advanced Load Balancer
software to the Controller.
2 Once the file is selected, the upload of the software image starts. The status of the image
upload progress is displayed on the UI.
3 After the image upload is complete, the software package is available under the Software
tab.
2 Select the Upgrade All Service Engine Groups check-box for selecting the SE groups update
along with the Controller upgrade. Click Continue to proceed with the Controller and SE
groups software upgrades.
The following screen appears for the final checks before the upgrade proceeds.
3 Do not select the check-box for the SE group update if the requirement is to upgrade the
Controller only.
4 When selecting the SE group update, the following two options are available if the SE groups
updates fail:
n Continue – The upgrade process for SE groups continues in the event of an error, failure,
or any other issues.
n Suspend – The upgrade process will not progress in the event of an error, failure, or other
such issues.
5 Confirm that the backup of configuration has been performed, when prompted for.
6 The progress for the update process is available on the UI under the In Progress section.
7 Once the upgrade process is complete, the latest software version will be available under the
Administration > Controller > System Update tab. The current tag is displayed next to the
updated software version.
8 Once the Controller upgrade is successful, the Service Engine group upgrade is initiated,
as the SE group upgrade was chosen in step no. 2. The following screenshot exhibits the
message regarding the SE group update status.
9 Once the SE group update is successful, the upgrade status gets changed to successful, as
shown below.
SE Group Update
Use the same steps as mentioned in the previous section to update one or more than one SE
group. Navigate to Administration > Controller > SEG Update, select the required SE group, and
click on UPGRADE to proceed with the update process.
Starting with NSX Advanced Load Balancer 22.1.3, SE group upgrade can be initiated in both
admin and non-admin tenants as required.
n Use the upgrade controller image_ref <image name> command to upgrade the
Controller to a base image.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4'
}
n Use the following API to upgrade the Controller to a base image and the NSX Advanced Load
Balancer Controller patch.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'controller_patch_uuid': 'image-e3aaad68-5aaf-485a-8bd9-1db3ec562d6a'
}
Tracking NSX Advanced Load Balancer Controller and Service Engine Upgrade
Status in AWS Cloud
The upgrade version and the last upgrade date information are available for the Controller and
SEs for deployment in the AWS cloud.
n AVI_VERSION - the latest NSX Advanced Load Balancer version for the Controller and
Service Engine
n AVI_UPGRADED_ON - the date and the timestamp when the software version upgrade was
completed.
The above screenshot depicts NSX Advanced Load Balancer at version 21.1.1, and the upgrade
was successfully completed on 2021-07-21 at 06:26:10 UTC.
Note On initial deployment, AVI_UPGRADED_ON shows the build date for the Controller and SE
software.
n For REST API: add /preview/ at the end of APIs described in V2 APIs to get previews for that
particular flow
n For NSX Advanced Load Balancer CLI: This is directly integrated into the normal work-flow
and there is no separate command.
Must-Checks
This section describes various must-checks. The following table describes the detailed
information on various error and warning messages. Use the steps mentioned in the recovery
steps to proceed further with upgrade process.
Must-Check Name
and Type Must-Check Message Description Recovery Steps Operation
CheckLicense(Error) License <name> is This check ensures Please reach out All upgrade
either expired or that there is a the customer success operations
will expire within minimum of 7 days of team to extend the
<num_days> days license validity license duration
CheckClusterState(Er Controller cluster is The cluster should 1 Use the show All upgrade
ror) not ready. All the be ready prior to clustercomman operations
cluster nodes should initiate any upgrade d to ensure that
be ACTIVE before operations. all the cluster
initiating the process. members are up
and in a
consistent state.
2 Wait till the
cluster is ready
to attempt
the upgrade
operation.
ControllerUpgradeDi Node <node> does There is insufficient 1 This requires the All upgrade
skSpace(Error) not have enough disk space on one or user to actively operations
disk space for more of the cluster intervene and
upgrade operations, members. initiate cleanup.
The available space 1 Use the from 2 Check for cores
is <avail_space>, imageproperties and initiate a
Required space is to determine if cleanup.
<req_space>. the existing free- 3 Check for tech-
disk size meets support tarballs
the requirements and initiate a
of the new image. cleanup.
2 The from-image 4 Check for
properties can unused-images
be retrieved by through show
show image image and initiate
<from-image> a cleanup.
command 5 Check if images
are present
in non-standard
directories (/
home/admin,
etc.) and clean
up.
6 Check for /tmp/
and initiate a
cleanup.
7 Perform a du -sh
from the root
and cleanup the
outliers.
Must-Check Name
and Type Must-Check Message Description Recovery Steps Operation
CheckControllerDiskS Node <node There is insufficient Please refer to the Upgrade, patch
pace(Erorr) name> does not disk space on one or recovery steps upgrade, SE group,
have enough disk more of the cluster mentioned for the and SE group resume
space for upgrade members. ControllerUpgradeDi
operations, The skSpace error.
available space
is <avail_space>,
Required space is
<req_space>
CheckControllerRollb Node <node There is insufficient Please refer to the Rollback and rollback
ackDiskSpace name> does not disk space on one recovery steps patch
have enough disk or more of the mentioned for the
space for upgrade cluster members ControllerUpgradeDi
operations, The during rollback skSpace error.
available space operations. The free-
is <avail_space>, disk threshold for
Required space is rollback operations
<req_space> is generally less
than the free-
disk threshold for
upgrade operations.
SeGroupUpgradeDis Node <node There is insufficient 1. Check for cores (Upgrade, patch) se
kSpace(Error) name> does not disk space on one or and initiate a group and (upgrade,
have enough disk more ServiceEngines. cleanup. patch) system
space for upgrade 1 Use thefrom 2. Check for /tmp
operations, The imageproperties and initiate a
available space to determine cleanup.
is <avail_space>, the if the 3. Use the du -sh
Required space is existing free-disk command from the
<req_space> size meets the root directory and
requirements of clean up the outliers.
the new image.
2 The from-image
properties can
be retrieved by
the show image
<from-image>
command.
n Stop Cleanup
n If the error happens in the context of a patch, then the patch will be rollback.
n If an error is encountered during the execution of rollback mechanism, then it will be treated
as upgrade cancelled.
Stop Cleanup
Whenever the rollback operation is triggered and it fails, then the NSX Advanced Load Balancer
Controller or SE group will be moved to the abort state. In Flexible Upgrades, these states can
be cleaned up and NSX Advanced Load Balancer Controller and SE group are transitioned to a
known stable state.
Note SE group resume option is supported only from NSX Advanced Load Balancer release
18.2.8.
n Ignore_failure — This field overrides the earlier suspend on failure. The upgrade will take
place in an unconditional manner and will proceed even if there is a failure in the subsequent
upgrade iteration. Default value is false.
n Skip-suspended — This field will skip the SE(s) that are suspended in the previous upgrade
iteration and proceed with the remaining SE(s) in the group. The default value is false.
The following options are available for resuming SE Group Upgrade with Options:
API: /api/segroup/resume
POST /api/segroup/resume
JSON data:
{
"se_group_uuids": [
"serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
],
"skip_warnings": true
}
Note When skip_warnings": true is used, upgrade proceeds without exhibiting warnings
messages and upgrade previews.
Option: Skip suspended SE’s and continue with the upgrade, update the se_group
action_on_error with CONTINUE_UPGRADE_OPS_ON_ERROR.
{
"se_group_options": {
"action_on_error": "CONTINUE_UPGRADE_OPS_ON_ERROR",
"skip_suspended": true
},
"se_group_resume_options": {
"action_on_error": "CONTINUE_UPGRADE_OPS_ON_ERROR",
"skip_suspended": true
},
"se_group_uuids": [
"serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
],
"skip_warnings": true
}
{
"se_group_options": {
"action_on_error": "SUSPEND_UPGRADE_OPS_ON_ERROR",
"skip_suspended": true
},
"se_group_resume_options": {
"action_on_error": "SUSPEND_UPGRADE_OPS_ON_ERROR",
"skip_suspended": true
},
"se_group_uuids": [
"serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
],
"skip_warnings": true
}
For each cloud, there is a se_group_template_uuid. This is used to ensure that the newly created
SE Group follow the se_group_template_uuid.
Any SE group can be designated as the template. If an SE group (Seg1) is assigned as the default
SE group template, then the newly created SE group (Seg2) picks the base and patch image
from Seg as shown below.
Upgrading SE Group
This interface is used to upgrade all or some of the SE groups.
Using UI
The following section details the steps to perform SE Group Update through the NSX Advanced
Load Balancer Controller UI.
Navigate to Administrator > Controller > SEG Update, select the required SE group, and click
UPGRADE to proceed with the update process.
Starting with NSX Advanced Load Balancer 22.1.3, SE group upgrade can be initiated in both
admin and non-admin tenants as required.
Disruptive
This option disables a non-disruptive mechanism to facilitate a faster upgrade. If enabled, the
SE(s) are upgraded in a disruptive manner. The default value is false.
Suspend-on-failure
This option suspends the upgrade of subsequent SE(s) within a SE-group when a failure is
encountered in the SE upgrade path. The default value is false.
The followings are the different APIs for the SE group upgrade:
n Use the following API to upgrade the SE group to the Controller image.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'se_group_uuids': [
'serviceenginegroup-e553b1a6-4851-4e82-ad12-cecc4bbda6c7'
]
}
n Use the following with the additional SE Group options — Disruptive and Suspend_on_failure.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'se_group_uuids': [
'serviceenginegroup-e553b1a6-4851-4e82-ad12-cecc4bbda6c7'
],
'disruptive':true,
'suspend_on_failure': true
}
n Use the following API to upgrade the SE group to the Controller image and the SE patch
image.
API: /api/upgrade
Method: POST
JSON Data:
{
'image_uuid': 'image-b8adc2bd-d27f-469d-b78d-5e2bc14a14e4',
'se_patch_uuid': 'image-e3aaad68-5aaf-485a-8bd9-1db3ec562d6a',
'se_group_uuids': [
'serviceenginegroup-e553b1a6-4851-4e82-ad12-cecc4bbda6c7'
]
}
CONTINUE_UPGRADE_OPS_ON_FAILURE This option is used to continue the This option parallelizes the SE
upgrade or patch upgrade operations upgrade in the SE group upgrade if
on the SE group even if the SE(s) SEs do not have scaled-out virtual
hit an issue and does not come services. If SEs have scaled-out virtual
up during the upgrade operations. services, then they continue with
Service disruption can be observed. serial upgrades.
Disruptive This option is used to disable the This option is disabled by default.
non-disruptive nature of SE upgrades. All SE(s) will be upgraded in parallel,
It is used to upgrade all the SE(s) irrespective of scaled-out virtual
in the group to the next version service existence. Traffic/Service
irrespective of the traffic disruption. disruption will take place.
The following error was observed in the secure_channel.log (in /var/log/upstart in SE CLI):
AVI-SE:/var/log/upstart
Authenticated to 10.1.1.1 ([10.1.1.1]:22).^M
Resolution
The errors observed in the SE log file suggest that the entry for the localhost mapping to
127.0.0.1 is missing in /etc/hosts. This issue occurs when name resolution for the local host from
SE is not successful as shown in the following snippet.
Check /etc/hosts file by using cat command. Note that the localhost entry was missing as
shown below.
127.0.0.1 app-node3.avi-systest.local--nameless-abc-xyz
{127.0.0.9, 10.140.88.197}
127.0.0.9 node1.controller.local
127.0.0.8 node2.controller.local
127.0.0.7 node3.controller.local
root@app-node3:/#
To solve this issue, add the localhost entry 127.0.0.1 localhost to the localhost file. After
adding the localhost entry, try again upgrading the SEs.
If ssh fails, add an entry to /etc/hosts file with the localhost 127.0.0.1 and retry ssh.
Patch Guide
This section discusses about the patch upgrade options.
n System — Patch upgrade for NSX Advanced Load Balancer Controller and all SE groups.
n Controller — Patch upgrade for the NSX Advanced Load Balancer Controller alone.
Note The following are a few points for a patch upgrade process:
n An image with a patch can be applied.
n The image and the patch must have the same base version.
n Compatibility checks prevent incorrect patches from getting applied to different versions.
Patch Process
1 Download a patch package from the NSX Advanced Load BalancerCustomer Portal.
3 Use the patch shell command to apply the desired patch as follows:
a The controller_patch and the se_patch provide the administrator with an option to
patch some but not all aspects of the NSX Advanced Load Balancer.
b By applying the se_patch, one has the flexibility to upgrade just some SE groups.
n All Controllers must be on the same (base+patch) version to form a cluster. For instance,
assume: A – is the major release and x.y – is the maintenance version. You cannot form a
cluster with one Controller on A.x.y, one on A.x.y 2p1, and one on A.x.y 2p2.
n Before attempting to cluster patch Controllers, run reboot clean CLI commands on each node.
Note When you reboot and clean, it will reset and reboot the system’s configuration and
reboot the cluster. It is recommended to take a backup before performing a reboot and
clean.
n All patches from a maintenance release are incorporated into successive maintenance
releases.
n Once a NSX Advanced Load Balancer Controller is upgraded to a new maintenance release,
all underlying SE groups must be upgraded to the same release as well.
n A patch family is the one in which the leading digit is the same. For instance, 1p1, 1p2, and 1p3
are patches in the 1px family.
n Fixes accumulate within a patch family. For instance, the 1p2 patch contains new fixes unique
to it, plus all the fixes from 1p1. The 1p3 patch includes fixes from both the 1p1 and 1p2
patches. Additionally, the 2p1 patch is the first in a new patch family and does not contain 1px
fixes.
n Choose any patch applicable to a particular maintenance release as the first patch to be
applied to that base version.
For example, in a patch family comprised of 1p1, 1p2 and 1p3, any one of the three can be
the first applied.
n Apply any subsequent patch, as long as it is within the same patch family. For instance,
you can apply 1p5 to 1p1.
n The following options are not advisable while choosing a patch version:
n Applying a patch from a patch family other than the one already chosen.
For instance, you cannot apply patch 2p1 once any 1px patch has been applied.
n Apply a patch that would imply an upgrade to a different NSX Advanced Load Balancer
maintenance release.
The following are the ways to upload patch image to the NSX Advanced Load Balancer
Controller.
n Copy the downloaded patch image to the NSX Advanced Load Balancer Controller/tmp
directory and then upload it on NSX Advanced Load Balancer Controller using image API.
Note The leader Controller ensures that the follower Controllers are on the same version. The
Controller machine on the base version of NSX Advanced Load Balancer might be previously
patched. Upload patch package by using image the API /api/image/.
1 Use the upload image filename <file path> command to start uploading the image.
| type | IMAGE_TYPE_PATCH |
| tenant_uuid | admin |
| name | 20.1.1-5000-2p2-20200217.063645 |
+-------------------+------------------------------------------------------+
Time Taken: 2.15626502037
3 Log in to the NSX Advanced Load Balancer shell using admin credentials. Use the show
upgrade status and show upgrade status detail commands to check the upgrade
status.
This ensures that the NSX Advanced Load Balancer Controller is upgraded and the desired patch
is applied, at the same instance.
Note
n The patch should be of the same version as that of the Controller upgrade.
n se_group_options and se_group_resume options are available in the NSX Advanced Load
Balancer CLI.
n Disruptive Patch
n Controller Patch
n SE Group Patch
n System Patch
Disruptive Patch
The disruptive patch option is set to False by default. The se_group_refs attribute governs the
scope of the upgrade. If the non-disruptive rolling upgrade of Service Engines are not required,
this flag can be set to True to go through the upgrade process quickly. This flag can be set to
True, when the require.
The below command initiates an upgrade with the disruptive flag set to True.
skip_warnings This is flag when set as true skips few optional must checks.
Controller Patch
SE Group Patch
If the se_group_refs option is not enabled, all SE groups are upgraded. When enabled, it
identifies a specific SE group for patching. If more than one SE group require patching, each
will require a separate patch command.
Note If the se_group_refs option is not enabled, all SE groups are upgraded.
System Patch
Use the following command to patch the NSX Advanced Load Balancer Controller along with
system patch.
skip_warnings This is flag when set as true skips few optional must checks.
Note
n SEs check for the version present on the Controller. In the event of a mismatch, the SE is
rebooted and upgraded with the new patch available on the Controller.
n If a patch 18.2.6-5p1 is applied to the SE group, then all the entities in the system (SEs and
Controller) — can only be upgraded to 5p1 or some member of the 5px patch series. For
example, a different patch series 6p1 can be applied to the NSX Advanced Load Balancer
Controller and 5p1 to the SE group.
1 Use the upgrade system image_ref <image name > controller_patch_ref <SE
patch name> command for the NSX Advanced Load Balancer.
2 Use the upgrade system image_ref <image name> se_patch_ref <SE patch name>
command for the NSX Advanced Load Balancer.
2 A software image containing patch files for the Controller and Service Engines can also be
uploaded using the same process. The following screenshots exhibit the patch upload for the
Controller and Service Engine. Patch upgrades for only Service Engines are also supported.
3 To upgrade the Service Engine group with the patch image, use the patch upgrade file for
Service Engines. The process to patch upgrade the Controller or Service Engine Groups is the
same as mentioned for the main software release. For more information, see Using the UI.
4 Navigate to Administration > Controller > SEG Update, select the required Service Engine
Group, and click UPGRADE, as shown below.
5 For Service Engine Group update, select only the SE patch, as shown below.
6 Once the patch update for the SE group is completed, the UI exhibits the status as successful,
as shown below. The selected SE group is updated with the 22.1.3-2p1 patch.
Note Patch name and patch UUID is retrieved from the image service.
NSX Advanced Load Balancer supports use of PATCH to perform the following operations:
n Unset scalar fields - This causes the fields to be reset to their default values, if applicable.
n Delete an entry from a list in an object - According to section 5.1.1 of RFC2616, “The Method
token indicates the method to be performed on the resource identified by the Request-URI.
The method is case-sensitive.” So spell it “PATCH” to avoid “400 bad request” errors from
NSX Advanced Load Balancer when executing the HTTP PATCH request.
{
"add": {
}
}
or
{
"replace": {
}
}
or
{
"delete": {
}
}
For scalar fields, add or replace are equivalent as they replace the value of the scalar field with
the value provided. In case of a list, add indicates that the specified set of entries needs to be
added to the list and replace indicates that the list itself is replaced with what is specified in the
request. Action delete is used to remove specified entries from the list.
Examples
The following examples use PATCH to update server information in a pool. The pool is identified
by its UUID.
n Add Servers to a Pool- This request to the NSX Advanced Load Balancer API adds two new
servers (1.1.1.1 and 1.1.1.2) to an existing pool.
API: /api/pool/pool_uuid
Data:
{
"add": {
"servers": [
{
"ip": {
"addr": "1.1.1.1",
"type": "V4"
}
},
{
"ip": {
"addr": "1.1.1.2",
"type": "V4"
}
}
]
}
}
n Update Server Information in a Pool - This request to the NSX Advanced Load Balancer API
updates one of the servers in an existing pool.
API: /api/pool/pool_uuid
Data:
{
"add": {
"servers": [
{
"ip": {
"addr": "1.1.1.1",
"type": "V4"
},
"ratio": 10
}
]
}
}
n Replace Servers in a Pool with a new set of Servers - This request replaces the entire server
list with a new server list. The other fields of the pool remain intact.
API: /api/pool/pool_uuid
Data:
{
"replace": {
"servers": [
{
"ip": {
"addr": "3.3.3.3",
"type": "V4"
},
},
{
"ip": {
"addr": "3.3.3.4",
"type": "V4"
},
}
]
}
}
n Delete a Server from a Pool- This request deletes one of the servers from an existing pool.
API: /api/pool/pool_uuid
Data:
{
"delete": {
"servers": [
{
"hostname": "www.example.com",
"ip": {
"addr": "3.3.3.3",
"type": "V4"
},
"resolve_server_by_dns": true
}
]
}
}
n Updating Scalar Fields - The examples in this section set some scalar fields. The following
request enables HTTP request queuing and sets the default server port to 8080.
API: /api/pool/pool_uuid
Data:
{
"delete": {
"default_server_port": 8080
}
}
The following request resets the default server port to the system default, by deleting its explicit
setting from the pool.
API: /api/pool/pool_uuid
Data:
{
"replace": {
"request_queue_enabled": True,
"default_server_port": 8080
}
}
Supported Objects
PATCH is officially supported for the following objects and fields:
Object Fields
Cloud linuxserver.hosts
GslbService enabled
addrs
IpAddrGroup prefixes
ranges
MicroServiceGroup service_refs
health_monitor_refs
Pool
servers
kv
StringGroup
type
dns_virtualservice_refs
SystemConfiguration
global_tenant_config
Object Fields
snmp_configuration.community
VirtualService http_policies
Asynchronous Patch
Adding pools and deleting pools at a high rate requires applying patches at a high rate. The size
of the deployment often adds more load on the Controller and increases the latency.
The Asynchronous Patch feature allows patch requests to be queued, consolidated in fixed
intervals, and updated together with minimal latency.
2 Pass the async_mode as a query parameter in the patch request. For example, PATCH /api/
pool/<pool-uuid>?async_mode. The response displays a unique patch_id, which can be
used to view the status of the request. The patch consolidation is initiated, thereby merging
the pending requests in the queue.
{
"uuid": <uuid of the pool>,
Caveats
n Currently, this feature is available only for the servers field (with IP4) in the pool object.
n All patch requests to the Controller within an async_patch_merge_period must have the
same API version (HTTP_X_AVI_VERSION)
n Patch updates are not installed until the next update cycle, as defined in the time interval. So
the patch updates are not real time.
Rollback
Rollbacks are non-disruptive. When a rollback operation is performed, the NSX Advanced Load
Balancer Controller or SEs will transition to the previous major version of the software. Selective
rollback is possible for the Controller and SE groups.
Use the following CLI and REST API for performing rollback for a patch version for the NSX
Advanced Load Balancer system (Controller and SE groups).
POST api/rollback
Rollback - Patch
Rollback of a patch release transitions the software to a version without the specific patch. It will
not roll back to the previous major version.
Selective ability to rollback the patch on the NSX Advanced Load Balancer Controller and SE
groups is available.
This interface is used to roll back the patch and not the major version.
n System: rollback patch for NSX Advanced Load Balancer Controller and all SE groups
n Controller: rollback patch the NSX Advanced Load Balancer Controller only.
Note See Additional Options for Flexible Upgrades for the following additional options:
n Rollback - Error Recovery
n Abort Cleanup
Show Commands
The following show commands provide software version visibility in the system:
Note
n If the Controller is at the highest version, whereas the SE groups are at lower versions,
commands might not work due to the higher version of the Controller.
n Due to the API version semantics, fields might not be available as they are deprecated in the
annotation.
n Due to API endpoint deprecation, some internal commands might not work.
n Upgrade-specific events
n Patch-specific events
n Rollback-specific events
Additional APIs
The following GET API calls are applicable:
n The following REST API provides information about all the images present in the system.
n The following API provides information about a specific image whose UUID is passed as a
slug.
n Use the following API to delete the image provided if not in use.
n Inventory API - api/image-inventory: This API provides the image inventory on the system.
It filters based on various options such as retrieve all packages for a version and so on.
Following a factory reset, on logging in to the Controller through the web interface, the initial
setup wizard starts.
On reboot clean, a new self-signed certificate is generated for the Controller UI. If you are logged
into the UI, the browser might not redirect the page to login, as it sees a certificate change.
Refresh the page in the browser to get back to the login page.
Note
n In the write access mode deployments, if an SE is not given a new configuration within a
configured interval, it is deleted. In the web interface, this interval is configurable on the
Advanced tab for the SE group, in the Delete Unused Service Engines After field.
n When reboot clean is issued, the SE virtual machines get picked up by the new Controller and
are put in the default cloud. You cannot use or remove them other than from the underlying
environment, e.g., VMware vCenter.
n In case of a cluster, reboot clean is applicable only from a leader node in the cluster.
n On performing a reboot clean on a leader node in the cluster, the cluster remains intact,
including the UUID. You have to reset the password from the NSX Advanced Load
Balancer UI.
n In case of a no-access deployment, the SEs are moved from the no-access cloud to the
default cloud, as the cloud config is deleted.
n Licenses.
n Pool configurations.
n SSL certificates, including certificates that might have been used for the Controller UI.
CentOS Linux
To prevent CentOS from being updated beyond a release level, it’s necessary to appropriate
set the $releasever parameter. Create a new file, /etc/yum/vars/releasever, containing the
value of the highest point release to which an update is acceptable.
The first code automatically restricts to the release that is currently running.
[main] distroverpkg=7.2
2 Check if docker thinpool has more space to increase from 10GB to 30GB (more if
devicemapper volume has the capacity).
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=/dev/mapper/docker-thinpool",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true",
$ sudo systemctl daemon-reload and $ reboot #, for both kernel and devicemapper
changes to take effect.
5 Verification:
$ docker info # pool base device size should show as 30GB (won’t reflect inside
container yet, new container needs to be created for that).
6 Verify cluster is in active state (from controller CLI: show cluster nodes).
2 Check if docker thinpool has more space to increase from 10GB to 30GB (more if
devicemapper volume has the capacity).
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=/dev/mapper/docker-thinpool",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true",
4 Run the following commands for both kernel and devicemapper changes to take effect:
$ reboot #
5 Verification:
$ docker info # pool base device size should show as 30GB (wont reflect inside container
yet, new container needs to be created for that).
6 Verify cluster is in the active state (from controller CLI: show cluster nodes), SE is OPER_UP
(show servicengine </code>), VLANs if any are still present on SE, basic traffic validation.
For SE Hosts
Follow the step-by-step procedure and run the commands from follower nodes to the leader
node. Wait for the SE to become OPER_UP after each host is configured:
2 Verify SE is OPER_UP (from controller CLI: show servicengine </code>), VLANs if any are still
present on SE, basic traffic validation.
Note
n The above changes will take effect for the Docker Container (controller/SE) on the next
upgrade.
n You must rebuild the controller container if the upgrade is not being performed. As a result,
the cluster will take effect for the above changes.
For more information on deleting and re-adding the cluster nodes, see Changing NSX Advanced
Load Balancer Controller Cluster Configuration.
NSX Advanced Load Balancer provides a wide ranging breadth of functionality common in
competitive application delivery controllers, or load balancers. But it also extends the load
balancer’s capabilities and value by incorporating extensive analytics data, a centralized control
plane and modern distributed data plane architecture. Ultimately this creates an extremely
intuitive load balancer fabric which is highly automated to reduce operational complexity and
time to deploy, learn, and manage.
Concepts
While F5 and NSX Advanced Load Balancer provide many similar high level features, there are
important differences architecturally, in the operations of various features, and even in the names
of features and concepts.
To successfully migrate from F5, a VMware engineer will walk you through the differences to
ensure the optimal deployment of NSX Advanced Load Balancer. Some customers choose to
recreate the F5 configuration as exactly as possible. Other customers have room to re-architect
and modernize their load balancing infrastructure.
Control Plane
Architecturally, NSX Advanced Load Balancer is managed by a Controller or a redundant cluster
of Controllers. Rather than logging into and managing each pair of load balancer appliances, the
NSX Advanced Load Balancer fabric is managed by the Controller cluster. A single Controller
cluster may manage hundreds of Service Engines, even if they are deployed in different
clouds such as VMware or OpenStack. Customers may also choose to deploy more than one
Controller cluster, though this is usually done for geographically separate data centers. One
cluster could manage both test and production environments separated by different tenants, or
each could have their own cluster created.
Data Plane
NSX Advanced Load Balancer load balancers, called Service Engines (SEs), may be deployed
similar to BIG-IP in active/standby pairs (using NSX Advanced Load Balancer's Legacy HA mode),
or they may preferably be deployed in elastic HA mode, with fully active groups. There are a
number of configuration options to carve out separate groups through tenants, VRFs, clouds,
and SE groups. Each application may have its own load balancer, or all applications may share
a group of Service Engines. When migrating from BIG-IP, the appliance-pair versus fabric choice
is one of the first architectural questions that should be answered to determine how to best
consolidate and minimize unused load balancer capacity.
Migration
Migration from existing, live environments is a delicate process. NSX Advanced Load Balancer
provides migration services, with a combination of migration tools and engineers with decades of
experience in load balancing.
Automated
BIG-IP LTM configurations can be automatically imported into NSX Advanced Load Balancer’s
JSON config format. The BIG-IP to Vantage configuration migration tool imports virtual services,
pools, and most adjacent functionality configured in the bigip.conf file. Additional configuration
objects that can be automatically imported include groups, SSL keys and certificates. This
eliminates the potential of errors when converting BIG-IP configuration files that are often tens
of thousands of lines long. The configuration utility provides a complete output, showing every
configuration setting that has been converted.
Manual
Some functionality from BIG-IP LTM cannot be automatically converted. For instance, F5’s iRules
are not migrated. NSX Advanced Load Balancer’s experience is that about 75% of all iRules
can be converted to native point-and-click features, though a professional services engineer will
manually inspect the iRule to make that determination. iRules that cannot be performed as native
features will be rewritten in NSX Advanced Load Balancer’s DataScript format, which is similar in
logic and function, but based on the more modern Lua language.
Only LTM configuration is migrated; other modules must be done manually. If a feature or
functionality cannot be converted directly, the VMware engineer will work with the customer to
provide a workaround or determine the best course of action.
Cutover
Once the configuration is migrated to the NSX Advanced Load Balancer deployment, it is time to
begin testing. All virtual services are migrated and left in a disabled state so they do not cause an
ARP conflict. There are various methods for testing the configuration prior to cutting over. Most
often, the virtual service is given a new IP address and marked as enabled.
The virtual service is deployed onto a Service Engine and is available for testing. This can involve
accessing the virtual service directly, by using an alternate name in DNS, or by altering a client
host file. In this test scenario, SNAT is typically recommended to ensure no changes are required
on the servers, yet traffic will synchronously return through the NSX Advanced Load Balancer's
load balancers rather than the server’s default gateway.
Once the virtual service is ready to go live, the virtual service is disabled on the BIG-IP and
enabled on NSX Advanced Load Balancer. If additional IP addresses are available, NSX Advanced
Load Balancer can be configured to use a unique IP for the virtual service. The cutover is
performed by changing the IP address advertised through DNS. Traffic will gracefully bleed off
the BIG-IP as new traffic is processed through NSX Advanced Load Balancer with no disruption
to live traffic.
NSX Advanced Load Balancer has no specific preference for which load generators should
be used. Our intent and goal is for any published HTTP performance numbers to be fully
repeatable via the industry standard ApacheBench (AB), which is freely available for most Linux
distributions.
NSX Advanced Load Balancer provides an Ubuntu virtual machine, downloadable from our
Portal. This VM includes a default web server and AB, which can be used to quickly spin up
clients and servers to test NSX Advanced Load Balancer load balancing and performance.
The most common issue when testing with a load generator is the client or server running out
of capacity. When this happens, responses become slow, packets are dropped, and the load
generator will report the device under test did not perform well. Load generators make no
distinction in results when the bottleneck is the client, the device under test, or the server. If the
performance doubles when adding a second load generator or a second server, then its a safe
assumption that the Service Engine was not the bottleneck.
This section is not a definitive guide to load generators or their optimization. VMware strongly
recommends working with one of our engineers to ensure best results.
Free load generators generally are software that generate traffic and validate the timing and
success of the responses. Commercial load generators, such as Ixia or Spirent provide both the
clients and servers. With systems that include the servers, often the servers do not start until the
test starts. Service Engines health checking the servers will find them down for a few seconds
after clients begin sending requests.
For more information on general guidelines on performance, see Sizing Service Engines topic in
the VMware NSX Advanced Load BalancerConfiguration Guide.
n Health monitors: Disable active and passive health monitors from within the pool. This
ensures there is no lag between the servers being turned on, clients sending traffic, and
NSX Advanced Load Balancer waiting for a successful health monitor response.
n Slow Ramp: Set the pool’s Slow Ramp time to 0, effectively disabling the ramp. This ensures
NSX Advanced Load Balancer sends connections as fast as it receives them. The assumption
in a load test is the clients and servers will not be the bottleneck.
n Logs: Disable Non-Significant client logs if they have been enabled. It is never recommended
to attempt to log hundreds of thousands of requests per second, as there is a performance
penalty for this task. Significant logs (errors) will still be performed, which is the default state
of a virtual service.
n Reserve CPU
n Reserve Memory
By deploying and hosting NSX Advanced Load Balancer Controller on VMware, VMware’s native
solutions can be utilized for maintaining high availability for NSX Advanced Load Balancer
Controller. This section focuses on how a single node NSX Advanced Load Balancer Controller
cluster is being hosted within VMware and how using native solutions we can maintain and
restore Controller availability both proactively and reactively to an infrastructure impact.It
focuses on how to use the VMware environment in conjunction with a deployed Controller.
However, setting up the VMware environment is not within the scope of this section.
Note
n It is highly recommended to maintain up-to-date configuration archives. A single node cluster
implies there is only one host maintaining the configuration. During disaster recovery, for
example, after a storage failure, NSX Advanced Load Balancer Controller will have to be
restored from the configuration archive.
n For more information on VMware HA/ DRS/ vMotion on Controller cluster and Service
Engines, see NSX Advanced Load Balancer High Availability in VMware vCenter Environment
topic in the VMware NSX Advanced Load BalancerInstallation Guide.
VMware Solutions
VMware provides native mechanisms for maintaining availability of critical applications and virtual
machines. vMotion and VMware High Availability (VMware HA) were tested, and any impact to
availability of a single node NSX Advanced Load Balancer Controller was measured and data
integrity validated.
vMotion
vMotion allows live migration of a virtual machine from one host to another with no downtime.
This is a proactive approach to maintaining availability of a virtual machine’s services, migrating
virtual machines prior to server maintenance, or move virtual machines off a degraded or failing
server.
For more information, see vMotion Overview and Best Practices for Configuring Resources for
vMotion.
For more information, see About VMware HA and Best practices for Configuring Resources for
VMware.
Validation Scenarios
The following scenarios were tested for validating, restoring, and maintaining the availability of a
single node NSX Advanced Load Balancer Controller running on VMware:
n Server failure
Setup Specifications
The following setup specifications were used when validating the scenarios:
Use Cases
vMotion Live Migration
During the vMotion live migration, NSX Advanced Load Balancer Controller was migrated
from one server to another, all the while being powered on.
Expectation
Result
During the process, NSX Advanced Load Balancer Controller remained available with
intermittent occurrences of increased latency to the API. After migration, all services are
restored and the Controller is back to functioning normally. There was no data path impact
(load balanced applications) for the duration of the test scenario.
vmotion
ESXi 1 ESXi 2
Server Failure
The ESXi server hosting the NSX Advanced Load Balancer Controller was made to fail.
Expectation
Unavailability of Controller for 3 – 5 minutes, with additional 2-3 minutes before the controller
services are up and running. VMWare high availability restores the availability of the NSX
Advanced Load Balancer Controller.
migrate
ESXi 1 ESXi 2
Result
On ESXi host failure, it took between 3-5 minutes for vCenter to detect the host failure,
migrate the NSX Advanced Load Balancer Controller and power on.In the next 2-3 minutes,
Controller services were up and the APIs were available.There was no data path impact (load
balanced applications) for the duration of the test scenario.
For more information on configured SE group, see Elastic HA for NSX Advanced Load Balancer
Service Engines topic in the VMware NSX Advanced Load BalancerInstallation Guide or Legacy
HA for NSX Advanced Load Balancer Service Engines topic in the VMware NSX Advanced Load
BalancerConfiguration Guide.
For more information on VMware integration, see Installing NSX Advanced Load Balancer in
VMware vSphere Environments topic in the VMware NSX Advanced Load BalancerInstallation
Guide.
Note These recommendations are applicable when the NSX Advanced Load Balancer Controller
and NSX Advanced Load Balancer Service Engines are hosted on the same VMware server
cluster.
Note vMotion and DRS are not recommended for Service Engines.
Modify the Service Engine group to specify which hosts/clusters the Service Engines can/can
not be created on. By doing so, you can specify hosts that the Controller will not be hosted
on. For more information, see Performing an Include-Exclude Operation on a Cluster and Host
topic in the VMware NSX Advanced Load BalancerConfiguration Guide.
Configurations in VMWare
To keep the NSX Advanced Load Balancer Controller separate from the Service Engines, we
will be using VM Affinity rules within VMWare. VM Affinity rules are configured such that the
controller runs on servers different from the servers hosting the Service Engines.
For more information, see VMware VM Affinity and VMware VM Affinity Setup.
Elastic HA - No Access
When deploying Service Engines in an elastic HA mode, it is recommended to host NSX
Advanced Load Balancer Controller on different servers than the Service Engines. If the Service
Engine and NSX Advanced Load Balancer Controller are hosted on the same server, then in
a failure scenario, the virtual services hosted on that Service Engine will be impacted until the
controller services are completely restored.
Note vMotion and DRS are not recommended for Service Engines.
None required.
Configurations in VMWare
To keep the NSX Advanced Load Balancer Controller separate from the Service Engines, we
will be using VM Affinity rules within VMWare. VM Affinity rules are configured such that
the controller runs on servers different from the servers hosting the Service Engines. We will
use one rule for defining which hosts are eligible for the controller and another for servers
for which the Service Engines are eligible for. By doing so, you can specify different hosts
for NSX Advanced Load Balancer Controller than those that are specified for the Service
Engines. These rules should keep the Service Engines separated from the NSX Advanced
Load Balancer Controllers, thus reducing the risk to data plane traffic in the event of a host
failure.
For more information, see VMware VM Affinity and VMware VM Affinity Setup.
When deploying Service Engines in the Legacy HA mode, it is recommended that NSX
Advanced Load Balancer Controller is hosted on different servers than the Service Engines.
If the primary Service Engine and Controller are hosted on the same server, in a failure
scenario, the virtual services hosted on that Service Engine will be impacted until the
controller services are completely restored.
Note vMotion and DRS are not recommended for Service Engines.
Modify the Service Engine group to specify which hosts or clusters in which the Service
Engines can/cannot be created on. By doing so, you can specify hosts that NSX Advanced
Load Balancer Controller will not be hosted on.
For more information, see Performing an Include-Exclude Operation on a Cluster and Host
topic in the VMware NSX Advanced Load BalancerConfiguration Guide.
To keep the NSX Advanced Load Balancer Controller separate from the Service Engines, we
will be using VM Affinity rules within VMWare. VM Affinity rules are configured such that NSX
Advanced Load Balancer Controller runs on servers different from the servers hosting the
Service Engines.
For more information, see VMware VM Affinity and VMware VM Affinity Setup.
Legacy HA - No Access
When deploying Service Engines in an elastic HA mode, it is recommended to host NSX
Advanced Load Balancer Controller on different servers than the Service Engines. If the Service
Engine and NSX Advanced Load Balancer Controller are hosted on the same server, in a failure
scenario, the virtual services hosted on that Service Engine will be impacted until the NSX
Advanced Load Balancer Controller services are completely restored.
Note vMotion and DRS are not recommended for Service Engines.
If the server resources are not sufficient to keep the NSX Advanced Load Balancer Controller
separate from all the Service Engines, it is recommended to not select Distribute Load within
the Legacy HA configuration. This will result in only a single Service Engine being primary for all
virtual services.
If there are not enough compute resources available preventing the controller from being
hosted separately from all Service Engines, do not configure Distribute Load within the
Legacy HA setup.
For more information, see Legacy HA for NSX Advanced Load Balancer Service Engines topic
in the VMware NSX Advanced Load BalancerConfiguration Guide.
Configuration in VMware
To host the NSX Advanced Load Balancer Controller separately we will be using the VM
Affinity rules within VMware. We will use one rule for defining which hosts are eligible for
the controller and another for servers for which the Service Engines are eligible for. By doing
so, you specify different hosts for the controller than those specified for the Service Engines.
These rules should keep the Service Engines separated from the Controllers, thus reducing
the risk to data plane traffic in the event of a host failure.
If there are not enough server resources available to keep NSX Advanced Load Balancer
Controller hosted separately from all the Service Engines, setup the Affinity rules to keep
the controller separate from the primary Service Engine. This will prevent impact to the data
plane traffic in the event of the server hosting NSX Advanced Load Balancer Controller fails.
For more information, see VMware VM Affinity and VMware VM Affinity Setup.
In conclusion, VMware’s native solutions can be relied upon to provide High Availability
for NSX Advanced Load Balancer Controller when a business decides that a single node
Controller suits them the best.
n The Controller
The NSX Advanced Load Balancer Controller is the control plane for the NSX Advanced
Load Balancer solution. It provides a single point of management and operations, including
configuration, visibility, analytics, and metrics. It uses big data analytics to analyze the data
and present actionable insights to administrators on intuitive dashboards.
The NSX Advanced Load Balancer Service Engines (SEs) are the data-plane component. SEs
collect real-time application analytics from traffic flows between end users and applications.
The SEs are high-performance data-plane entities which perform the actual load balancing
(LB) and web application firewall (WAF) functions. All configurations for a given SE are
managed by the respective Controller Cluster.
AVI CONSOLE
REST API
AVI CONTROLLER
For more information on the NSX Advanced Load Balancer Architecture, see the Load Balancing
topic in the VMware NSX Advanced Load Balancer Configuration Guide.
Avi-Managed Customer-Managed
n The NSX Advanced Load Balancer provides continuous monitoring, configuration backups,
software upgrades and patches, security alerts, and performance tune-ups
n Proactive support
Case 1: No additional connectivity requirements from NSX Advanced Load Balancer SaaS to
customer environment
In this scenario, NSX Advanced Load Balancer SaaS communicates with public API endpoints
for respective Infrastructure as a service (IaaS) cloud infrastructure where the customer
workloads are provisioned. This works automatically, with no additional configuration or
access policy requirement. The NSX Advanced Load Balancer SaaS supports the following
cloud types in this mode:
n Microsoft Azure
In addition, the NSX Advanced Load Balancer SaaS can work with no-orchestrator clouds. In
this case, SE provisioning is done by the customer manually (or with the help of automation
tools such as Ansible or Terraform). NSX Advanced Load Balancer SaaS does not require
inbound access to the customer virtualization infrastructure. The cloud types supported in
this mode are:
Case 2: NSX Advanced Load Balancer SaaS requires connectivity to customer’s orchestration
environment
In this scenario, the NSX Advanced Load Balancer SaaS communicates with the infrastructure
typically residing in a private network. Once NSX Advanced Load Balancer SaaS is allowed to
communicate with the virtualization infrastructure, it can communicate continuously with the
virtualization orchestrator and provide fully automated provisioning. The NSX Advanced Load
Balancer SaaS supports the following cloud types in this mode:
Note
n In both Case 1 and 2 above, the Service Engines need to communicate with NSX
Advanced Load Balancer SaaS. This might require allowing communication between
the NSX Advanced Load Balancer Service Engines and the Controller IPs, over secure
communication channels such as HTTPS and SSH.
2 An NSX Advanced Load Balancer representative will contact you and provide a URL through
which to connect. Log in to create an NSX Advanced Load Balancer account.
Once the previous step completed, you will be provided with a login ID and the URL with
which you can access NSX Advanced Load Balancer SaaS.
Depending on the cloud type, please refer to the respective document mentioned below:
Amazon Web Service See Installing NSX Advanced Load Balancer in Amazon
Web Services topic in the VMware NSX Advanced Load
BalancerInstallation Guide.
Linux server cloud See Considerations for Deploying NSX Advanced Load
Balancer in Linux Server Cloud topic in the VMware NSX
Advanced Load BalancerInstallation Guide.
n Configuring NSX Advanced Load Balancer SaaS Controller Using Service Account
n Accessing the NSX Advanced Load Balancer SaaS CLI Using SSH
To access the Controller through SSH, a registered user must have a valid token. Once a token
has been created, one can initiate an SSH connection to the Controller using cli as the SSH
user. A CLI shell will be created. Once the shell has been created, a login prompt will be
presented. Provide the required username and the token as the password. This topic explains
the process needed to configure a service account for use on an NSX Advanced Load Balancer
SaaS Controller.
Note
a To generate a single use token, enter 0.
b The maximum value that can be entered in this field is 87600 hours.
c In case another token is generated before the first one expires, the first token still remains
valid.
7 To test your credentials use the following Python code using the Requests library.
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
data = {
'username': '<service account name>',
'password': '<your token that was generated in step 5>
}
login = requests.post('https://<your controller name>.saas.avinetworks.com/login',
verify=False, data=data)
print(login.status_code)
The status code 200 is returned for a successful query, and the status code 401 is returned
for the failed query.
Note
a To generate a single use token, enter 0.
b The maximum value that can be entered in this field is 87600 hours.
c In case another token is generated before the first one expires, the first token still remains
valid.
For more information on Accessing the NSX Advanced Load Balancer SaaS CLI, see NSX
Advanced Load Balancer CLI Access to a SAML-Authenticated NSX Advanced Load Balancer
Controller topic in the VMware NSX Advanced Load BalancerAdministration Guide.