Configuring an application server, a node, or a cell to use a single network interface
Application servers, by default, are configured to use all of the network interfaces that are available for them to use. You can change this configuration such that an application server only uses a specific network interface. However, you cannot configure it to use a subgroup of interfaces. For example, if you have three ethernet adapters, you cannot configure an application server to use two of the three adapters.
About this task
When an application server is configured to use all network interfaces, if it opens a socket on port 9901 on a machine with two TCP/IP addresses, it opens port 9901 on both IP addresses.
On a Microsoft Windows operating system, the netstat output displays *.9901 in the Local Address field, indicating that port 9901 is bound to all network interfaces in the system.
When an application server is configured to use a specific network interface, it only communicates on that one network interface. For example, on a Windows operating system, if an application server opens a socket on port 7842 on an ethernet adapter with an address of 192.168.1.150, the netstat output displays 192.168.1.150.7842 in the Local Address field, indicating that port 7842 is only bound to 192.168.1.150.
If you have more than one network interface and you want to use each one separately, you must have a separate configuration profile for each interface. When network interfaces are used separately, a separate node agent is required for each network interface that has an application server running on it. Two application servers bound to two separate network interfaces on the same machine cannot be in the same node because they have different TCP/IP addresses.
In a multi-homed
environment you may need to separate inbound http and/or https traffic
by forcing it to use a network adapter other than the one bound to
the hostname used during installation. This separation can be accomplished
by specifying the hostname or IP address be bound to a different network
adapter for the defaulthost
and defaulthost_secure
ports
on each application server that is to be redirected. This modification
configures the application server so that it only accepts http and/or
https traffic received over the specified adapter. Also, the deployment
manager uses this hostname as the transport when generating the plugin
for that application server. There are no known limitations to this
modification provided only the defaulthost
and defaulthost_secure
ports
are modified in this fashion.
- If you want a specific application server to use a single network interface, perform the following steps for that application server.
- If you want an entire node to use a single network interface, perform the following steps for your node agent and all the application servers in that node.
- If you want an entire cell to use a single network interface, perform the following steps for the deployment manager, node agent, and all the application servers in the node.
- When you complete the following steps, do not specify localhost, a loop back address, such as 127.0.0.1, or an * (asterisk) for the TCP/IP addresses. When you have an * (asterisk) as a host name for the Distribution and Consistency Services (DCS) address and also have multiple Network Identification Cards (NICs), the DCS port can bind to multiple IP addresses.
- When the client ORB makes a TCP connection
to a server, there are two possible scenarios:
- The local socket side is bound to the single address, specified on either the ORB_LISTENER_ADDRESS property in the serverindex.xml file, or the com.ibm.CORBA.LocalHost custom property.
- The local socket side is not bound to a particular address.
These two scenarios occur because the Micosoft Windows networking stack does not forward packets across different scope zones. The loopback and public interfaces are in different scope zones.
The first scenario fails with a SocketException if your client is running on Microsoft Windows7 or Microsoft Windows 2008 R2, and the com.ibm.ws.orb.transport.useMultiHome custom property on the client is set to false, because either:- The client ORB_LISTENER_ADDRESS host value, in the serverindex.xml file, or the com.ibm.CORBA.LocalHost custom property has an internal address of either localhost or 127.0.0.1, and the server has an external IP address or host name, such as 147.10.32.117).
- Or the client has an external address and server has an internal address.
Procedure
Results
Example
This example creates two nodes, each using a separate network interface, on a machine that has at least two network interfaces:
- Use the Profile Management tool to create an application server and federate it into the desired cell.
- Use the Profile Management tool to create an application server profile, specifying a host name that is different than the host name used for the previously created application server. Federate this application server into the desired cell.
- Start the node agent and application server that are configured to the first network interface. Follow the preceding steps for the node agent and application server to prepare this node to communicate on the network interface you specified when you configured this application server.
- Start the second node agent and application server. Follow the preceding steps for the node agent and application server to prepare this node to communicate only on the network interface that you specified when you configured the second application server.
- Stop all of the node agents and application servers that you created in this example.
- Restart all of these node agents and application servers.
You have two separate nodes running on two different network interfaces.
What to do next
-Dcom.ibm.ws.orb.transport.useMultiHome=false -Dcom.ibm.CORBA.LocalHost=host_name
host_name is the TCP/IP address or hostname of the network interface for the ORB to use.