FSQL/FPMI Redundancy over the Internet

I guess this could go in either the FPMI or FSQL section. I have two servers I am using to setup a Clustering + Redundancy configuration in FPMI and FSQL. My configuration is as follows:

Server 1: Wired directly to the internet.
Server 2: Connected to the internet through a router with appropriate ports forwarded.

While on the phone with IA tech support the other afternoon, we noticed that in the cluster log Server 1 was trying to connect to the INTERNAL IP of Server 2, when in fact the external IP was defined in the cluster config.

In the fsql_responsibility table I noticed that once again the internal IP is listed for the address of one of the nodes and the status is Warm.

I am only using Server 2 for testing purposes before I configure Server 1 to talk to another server, lets call it Server 3 (which is running live projects), which is directly connected to the internet like Server 1.

Is this a bug or is clustering/redundancy not meant for such a configuration (where a server has an internal and external IP).

I have a suspicion that your host OS (probably Windows) was resolving the public IP to the internal IP. Translating it if you will. I can’t think of any other way that the gateways would have known about the other machine’s internal IP. Anything like that in your hosts file? How about your routing tables (in command prompt: “route print”)

Oh, and to answer a side question - no, clustering was not really designed to be used over the internet. But with TCP clustering (don’t use UDP) it should work, just have a nice fast connection between the two.

First off let me apologize for posting in General. I thought I was in the Problem forum. oops.

And I haven’t made any modifications to the host file or routing table. I just think the problem is that the server behind the router is connecting to the other server and sending its internal IP, which the second server is using to try to connect back to the first. I don’t expect this to happen in my final configuration, but I would just feel more comfortable testing it internally. We have another external IP available in the office so I will probably just use that. I just thought I would bring it to your attention just in case it is in fact a bug.

And yeah the connection between the two is good. It’s only 5 hops away according to the traceroute I ran so the latency should always be low. A ping is showing about 15ms. There is about an average speed of 500k/sec between the two machines. This should be sufficient, correct? We have a project where we are logging data every second, and the two mysql servers are setup to replicate eachother.

A quick diagram (Visio or Powerpoint or even Paint, if necessary) showing: nodes, IP addresses, and connections would be very helpful here. Please include what it will look like with Server 3.

Does server 1 have any other adapters/IP addresses besides the “real” Internet one? Do you know of anywhere that might be referencing hostname as opposed to IP address? The goal is to determine the path that IP communication is taking.

You can also use tracert instead of ping. Also, look at the arp table (arp -a) after communicating with the host. This is useful to do from both machines.
a. If there’s a listing of the IP address with a MAC address that isn’t the adapter of your default gateway then you’re communicating directly on the same subnet.
b. If there’s not a listing of that IP address, or the MAC address is the same as your default gateway (also listed) then you’re communicating through the router.

I would clearly identify the traffic path as a first step.

A few other questions:

  1. Was the clusting working properly (if not over the correct path)?
  2. Which ports do you have forwarded?
  3. Are servers 1-3 at different physical locations?