Network Protocols, Port Numbers and Firewalls

Last updated on May 11, 2020

In order to configure the connections between the hub machine, remote HVR locations and an operator's PC, it is important to understand which TCP/IP ports HVR uses at runtime. The operator can control replication by logging into the hub machine and using command line commands or running the GUI from the hub. Alternatively, the HVR GUI can be used from the operator's PC, in which case several TCP/IP ports must be opened from the PC to the hub machine.

Protocol Options from GUI to Hub

Protocol Options from Hub to Replication Location


Connection

TCP/IP Port Number

Network Protocol (non-encrypted)

Network Protocol (encrypted)

HVR GUI connecting from PC to hub machine.

Arbitrary port, typically 4343. On Unix and Linux the listener is the inetd daemon. On Windows the listener is the HVR Remote Listener service.

HVR internal protocol

Replicating from hub machine to remote location using HVR remote connection.

Arbitrary port, typically 4343. On Unix and Linux the listener is the inetd daemon. On Windows the listener is the HVR Remote Listener service.

HVR internal protocol

SSL encryption can be enabled using HVR action LocationProperties /SslRemoteCertificate and /SslLocalCertificateKeyPair.

Replicating from remote location using DBMS protocol.

DBMS dependent.

Oracle's TNS protocol, or Ingres/NET or SQL Server protocol

Database dependent

When connecting to Oracle RAC, HVR first connects to the SCAN listener port, after which it connects to the HVR agent installation. In a RAC setup, the HVR remote listener must be running on the same port (e.g. 4343) on every node. 

TCP Keepalives

HVR uses TCP keepalives. TCP keepalives control how quickly a socket will be disconnected if a network connection is broken.

By default, HVR enables TCP keepalives (SO_KEEPALIVE is true). TCP keepalives can be disabled by setting the environment variable $HVR_TCP_KEEPALIVE to value 0.

On some platforms (Linux, Windows and AIX from version 5.3 and higher), the environment variable $HVR_TCP_KEEPALIVE can also be used to tune keepalive frequency. It can be set to a positive integer. The default is 10 (seconds). The first half of this time (e.g. first five seconds) is passive, so no keepalive packets are sent. The other half is active; HVR socket sends ten packets (e.g. 4 per second). If no response is received, then the socket connection is broken.