Capabilities that Support IPv6

This section describes the capabilities in FlexNet Publisher that support IPv6. It includes information about both license file–based licensing and trusted storage–based licensing.

When working with a software publisher to obtain a software package that supports IPv6, you should collect and provide the IP addresses of systems (FlexEnabled clients and license servers) that will be used in the license file.

Note: 

In the license and options files, FlexNet Publisher supports only the site-local form of the IPv6 address (those addresses prefixed with FEC0).
While an IPv6 address can be used in license or options files, the best-practice recommendation is to use hostname or IPv4 address.
A mix of IPv4 and IPv6 addresses in the license and/or options file is not supported.

License File

In a license file, the SERVER line can define an IPv6 address as the hostid and host value.

In FEATURE, INCREMENT, and UPGRADE lines, an IPv6 address can be used as the HOSTID value when using the INTERNET type.

The following keywords (used with duplicate grouping) support IPv6 addresses:

The DUP_GROUP keyword, using HOST as the type.
The SUITE_DUP_GROUP keyword using HOST as the type.

Options File

An options file can contain an IPv6 address to specify host restrictions when using the:

INTERNET type in these keywords: EXCLUDE, EXCLUDEALL, EXCLUDE_BORROW, INCLUDE, INCLUDEALL, INCLUDE_BORROW, MAX, and RESERVE.
HOST type in these keywords: EXCLUDE, EXCLUDE_ENTITLEMENT, EXCLUDEALL, EXCLUDE_BORROW, INCLUDE, INCLUDE_ENTITLEMENT, INCLUDEALL, INCLUDE_BORROW, MAX, and RESERVE
HOST_GROUP keyword (it takes IP addresses).

License Search Path

Entries in the license search path that use the ‘port@host’ convention to identify the license server, can specify an IPv6 address as the ‘host’ value.

FlexEnabled Application

Entries in the license search path that use the port@host convention to identify the license server, can specify an IPv6 address as the host value.

The following activation functions take either a URL (when connecting to FLEXnet Operations) or “port@host” value (when connecting to a license server) argument. These functions allow you to use an IPv6 address in the URL or as the ‘host’ value.

flxActCommonHandleSetRemoteServer(...)
flxActBorrowReturn(...)
flxActBorrowActivate(...)

The following attributes, set using the lc_set_attr function, support IPv6 addresses:

LM_A_HOST_OVERRIDE
LM_A_PROMPT_FOR_FILE (Windows Only) - the dialog that appears takes an IPv6 address.
LM_A_DISPLAY_OVERRIDE
LM_A_INTERNET_OVERRIDE

You can use an IPv6 address when setting the LM_DUP_HOST flag in the lc_checkout function.

Trusted Storage

The activation server chain property in a fulfillment record will store the IPv6 address.

You can use an IPv6 address as a binding identity in the trusted configuration.

License Server

The lmhostid utility returns an IPv6 address.

Environment Variables

Listed below are the environment variables that handle performance and hostname resolutions.

FNP_IP_ENV

This client-side environment variable determines how the client's IP address is presented to the server.

If the variable is set to a value of 0, 4, or 6, the IP address sent to the server is resolved on the client, from the client's hostname, as follows:
If the variable is set to 0, then the client resolves its hostname to both an IPv4 and an IPv6 address.
If the variable is set to 4, then the client resolves its hostname only to an IPv4 address.
If the variable is set to 6, then the client resolves its hostname only to an IPv6 address.
If the variable is set to 1 (default value), the client-side hostname resolution is bypassed. Instead, the client's IP address is determined from the socket connection at the server, which means that a NAT-translated IP address for the client can be obtained.

FNP_IP_PRIORITY

The environment variable FNP_IP_PRIORITY decides the IP priority for hostname resolution, and can apply to the server, the client, or utilities like lmhostid. Values are:

4 (default): hostname resolution is attempted to IPv4 address first; if that fails, resolution to IPv6 address is attempted.
6: hostname resolution is attempted to IPv6 address first; if that fails, resolution to IPv4 address is attempted. Examples of when to set to this value:
on the machine where running lmhostid, if IPv6 address is required from lmhostid -internet
on the client if node-locked IPv6 INTERNET HostID is used
on the server if IPv6 address is used in the options file or as a server HostID.

Note: IPv4 and IPv6 addresses cannot be mixed on the server.

Support Pure IPv6 for the Client

In order to support the pure IPv6 mode, FNP_IP_PRIORITY is enhanced with a new value of '6not4'.

On setting FNP_IP_PRIORITY to '6not4', the Server comes up with a pure IPv6 mode and accepts only IPv6 client connections. DNS lookup happens only in the IPv6 mode.

Client IP Address Received by the Server

Clients send both IPv4 and IPv6 addresses in the checkout message to the server.

In some licensing models, it may be desirable for the server to operate on a NAT-translated IP address instead of the client's actual IP address—for example, if using the EXCLUDE keyword in an options file to exclude all clients originating from behind a specific firewall. To enable such use cases, set FNP_IP_ENV=1 on the client. Setting this environment variable prevents the client resolving its own hostname to an IP address, which means the server instead obtains an IP address for the client from the socket connection.

Using Wildcards in an IPv6 Address

The wildcard character, “*,” may be used in place of an entire field or on a byte-by-byte basis to specify a range of addresses without having to list them all. For example, in this example feature definition line is locked to four specific addresses:

FEATURE f1 myvendor 1.0 31-dec-2020 uncounted \

     HOSTID="INTERNET=127.17.0.1,\

        INTERNET=fec0::1:e947:a213:1378:253c,\

        INTERNET=127.17.0.4,\

        INTERNET=fec0::1:e947:a213:1378:253c" \

     SIGN=0

In the following example feature definition line specifies an entire range of addresses, including the four specific ones from the line above:

FEATURE f1 myvendor 1.0 31-dec-2020 uncounted \

     HOSTID="INTERNET=127.17.0.*,\

        INTERNET=fec0:0db8:0000:0000:*:*:*:000*"\

     SIGN=0