I suppose your Client is Java-based, and uses RMI for connecting to the
Server (if you are using a context lookup service to locate your server
components, it is still the RMI underneath). When the RMI communication
layer formats data packets on the client side, they are stamped with the IP
address found in java.rmi.server.hostname property; if the property is not
set, it will use the host's local address.
If you have control over the client's machine, you can put the address of
the firewall in a file, and load it into the properties early in the
client's life (before the server lookup). If not, you may want to introduce
another call to the server prior to the lookup, this one based on the HTTP
protocol (i.e. using the URLConnection). The server can get the "real"
(firewall's) IP address from the doGet's or doPost's ServletRequest
parameter, and return it to the calling client. This way the client will
know the IP address of the firewall.
HTH
Alex Molochnikov
Gestalt Corporation