KB Article #176020

Error deploying configuration with a Virtual IP Address

Problem

Error deploying configuration configuration for an active/passive API Gateway cluster.  Deploymeny succeeds for the active node but the passive node is failing to bind to the virtual IP address.

Policy Studio and Gateway trace show an error :-
Failed to listen on address w.x.y.z/443: Cannot assign request address. can't bind socket to address
cannot listen on any address for interface w.x.y.z
(where w.x.y.z is the virtual ip address)

Resolution

1) Add the kernel setting to your system to allow a local process to bind to a non-local IP address.


In Linux set /proc/sys/net/ipv4/ip_nonlocal_bind to 1:
$ echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

For Red-hat clone distributions including the Oracle Linux based Appliance
put it in your /etc/sysctl.conf on Red Hat-style distros too:

$ net.ipv4.ip_nonlocal_bind = 1

$ sysctl -p   # command to commit the changes.

Deploy the configuration and the error should be prevented

2)

Another possibility for Red Hat/Oracle Linux is to configure a virtual IP

Configure Additional IP Addresses

Let's assume our network interface is ethGb1. Then there is a file /etc/sysconfig/network-scripts/ifcfg-ethGb1 which looks like this:

# vi /etc/sysconfig/network-scripts/ifcfg-ethGb1 
DEVICE=ethGb1BOOTPROTO=staticBROADCAST=192.168.0.255HWADDR=00:0C:29:C8:AA:7CIPADDR=192.168.0.180NETMASK=255.255.255.0NETWORK=192.168.0.0ONBOOT=yesTYPE=Ethernet
Now we want to create the virtual interface  ethGb1:0  with the IP address 192.168.0.101. All we have to do is to create the file /etc/sysconfig/network-scripts/ifcfg-ethGb1:0  which looks like this (we can leave out the HWADDR line as it is the same physical network card):
# vi /etc/sysconfig/network-scripts/ifcfg-ethGb1:0 
DEVICE=ethGb1:0BOOTPROTO=staticBROADCAST=192.168.0.255IPADDR=192.168.0.101NETMASK=255.255.255.0NETWORK=192.168.0.0ONBOOT=yesTYPE=Ethernet
Afterwards we have to restart the network:
# service network restart