Global Mapper v25.0

Using FlexLM behind a load balancer?

HumptyMoo
HumptyMoo Global Mapper User
edited July 2014 in Technical Support
Hi, it appears that the FlexLM license server is not too fond of load balancers. For reasons I am not going to bore you with, we prefer traffic to flow to each network zone through a load balancer. So in this case I have the below setup:

Global mapper desktop client --> flexlm.domainname.com:27000 --> loadbalancer --> single memeber pool --> FlexLM license server.domain.net:27000

This will not work because FlexLM has to see the servername (FlexLM license server.domain.net:27000) in the call for a license and won't recognise the VIP dns (flexlm.domainname.com:27000).

Is there anyway to tweak things to get the above to work?

Regards,

Moo

Comments

  • global_mapper
    global_mapper Administrator
    edited July 2014
    Moo,

    I'll forward this on to the network license experts who will be back Monday after the holiday. I'm not personally familiar with what workarounds may be possible in this type of scenario.

    Thanks,

    Mike
    Global Mapper Guru
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    Moo,

    I'll forward this on to the network license experts who will be back Monday after the holiday. I'm not personally familiar with what workarounds may be possible in this type of scenario.

    Thanks,

    Mike
    Global Mapper Guru
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation

    Thank you kindly!
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    Hi again, whilst I wait for a response from the network license experts I decided to cut out the load balancer in order to simplify things and get them working in the interim.

    The trouble is I am now puzzled, I had the network team open up the server in question so that the clients could access it over port 27000 directly. It still does not work. I have verified from my desktop machine that the port to the server is open and listening using telnet. I have also installed the global mapper client I am using on my desktop onto the server itself and that works fine also. It is just from my desktop the client tells me the node might be down.

    One thing that strikes me as odd is when I do a netstat -an from my desktop (as I try and grab a license) I see a connection attempt made to the license server, however, it is not trying to attach to the target port of 27000:

    TCP 10.xxx.xxx.xxx:57219 10.xxx.xxx.xxx:51245 SYN_SENT

    I have entered and re-entered the port number into the license registration screen but it always tries to attempt connection over 51245.

    Is there some other configuration file/screen I am missing?

    Any help would be appreciated, my customer is quickly losing patience with me :)

    Regards,

    Moo
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    TCP 0.0.0.0:51245 Servername:0 LISTENING
    [bmgeo.exe]

    Right, it seems port 27000 is not the only port that is needed here. The reason it works locally on the server is that no ports are firewalled. I see no mention of this other port in the documentation, is this simply an oversight or is there a further configuration file/screen I need to adjust?

    Regards,

    Moo
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    Haha....having a mare here. I have restarted the flexlm service and bmgeo.exe is binding to another port in the high range.

    It looks like the client contacts the server over 27000 initially but is then directed to talk over another high random port (this time 51490) which is bound upon service restart.

    This is unworkable on a network that blocks by default. Please someone tell me I am being silly and direct me to tick some box that says "make it work" :D

    Regards,

    Moo
  • global_mapper
    global_mapper Administrator
    edited July 2014
    Moo,

    I found a page at Static Port Numbers for FLEXlm which describes some of the port configuration settings to lock Flex down to a particular port. It sounds like the 27000 port is fixed, then there is another random port used locally, but you can fix that second port number with a change on the license server.

    Another page at How to specify the network ports for FLEXlm - Licensing Micro Focus Knowledge Base - Licensing Micro Focus - Micro Focus Community describes some similar changes to the network .dat file.

    Hopefully one of those helps. I know the in's-and-out's of the Global Mapper application itself and the client side of the Flex license file, but know very little about the network license server side and everyone is out until Monday.

    If you need something working ASAP I could provide you with an expiring node-locked machine license that unlocks everything until next week. I would just need your machine ID to generate that.

    Thanks,

    Mike
    Global Mapper Guru
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • BMGVictor
    BMGVictor Global Mapper User
    edited July 2014
    Moo,

    FlexLM does use the 27000 port, but it also requires another separate TCP/IP port. You can specify a specific port number in your license file by adding the tag PORT=1234 after the vendor tag. If you open the GlobalMapper.lic file in a text editor, you will see a line that looks like this:

    VENDOR bmgeo

    Change that line to:

    VENDOR bmgeo PORT=1234

    The port number does not have to be 1234, but whatever port you chose will need to be opened up on the firewall. After you've made the change, the server will need to be shutdown and restarted. Once the new server is up and running, you should see new message in the log with the server running on the newly specified port.

    As for the load balancing server, there is no real way to handle the situation you are describing. FlexLM needs the license to be attached to a specific machine hardware address. The Load balancing would require multiple licenses for multiple servers. Although it would be possible to break a large network license up into several machines, this would not guarantee access to the entire license pool.

    Hopefully that helps. If you have any more questions, please feel free to ask.

    Best Regards,

    Victor
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    Thanks for the responses guys. I have removed the load balancer from the equation and am persuing POC on "direct to the license server" based on the report above.

    I have made the bmgeo port change above and can confirm that the license server is now listening on port 27000 and also 80 for bmgeo.exe.

    From the desktop I can telnet to both of those ports and get a connection to both 27000 and 80 confirming the network connectivity is there.
    My trouble is that Global Mapper still refuses to check out a license and simply informs me that it cannot read from the server. There is nothing in the license server logfile to suggest that it has even been contacted and the locally installed global mapper client on the server works perfectly.

    If I do a netstat -an as I try to obtain a license from the server from my desktop I see a syn-sent but that is it, no ack or established.

    Any ideas? Presumably I don't need to tell the client about port 80, that info is handed back to the client on initial connect over 27000 right?

    Regards,

    Moo
  • BMGVictor
    BMGVictor Global Mapper User
    edited July 2014
    Moo,

    There are a couple of other TCP/IP ports that Flex might try to use. You may need to open up port 2080 (which is another of the the defaults) as well as the entire range between 27000-27009. As for the static port, try using a higher port than 80, which is the default web server port. Something like 5055 should work.

    If that doesn't work, can you post a copy of the logfile generated by the lmtools application?

    Regards,

    Victor
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    I see.

    I will approach corporate security compliance and see if they will allow the above ports to be exposed. That may take a few days.

    With regards to port 80, why should I move that to something higher like 5055? A port is a port right? If nothing else has it bound it can be listened on surely? Or is there some code nuance that complicates this? The log file reports bmgeo.exe is using port 80 and netstat -an shows it listening on all network interfaces on port 80. Just curious, are you assuming I haven't taken into account IIS default website perhaps? I have and I moved it to 8080 before stopping it just to be doubly sure :) Port 80 is the only one open by default so was a quick way to test the last suggestion.

    Thanks for your persistance, my customer feels that this software will make a big difference to what they are doing so it is still worth pursuing.

    Cheers,

    Moo
  • HumptyMoo
    HumptyMoo Global Mapper User
    edited July 2014
    Just posting to let you (support) and any others running into the same issues I faced of the outcome to this thread.

    Opening up the range of ports and moving off of port 80 to a higher port has worked and resolved my issue. I am still a little bemused as to why port 80 would be an issue if it is the only thing bound to it but....it works now so live and learn.

    I would also offer a suggestion to add the extra port information to the FlexLM license server documentation as it is a little misleading in its current guise referring only to port 27000.

    Thank you all for your perseverance and assistance in this matter.

    Best regards,

    Moo