Sign in to follow this  
Guest Matt Johnson

Take the router challenge

Recommended Posts

Greetings Friends,I have a particularly puzzling problem that relates to multiplayer use in FS2002 when behind a NAT router. Be forewarned that this problem has been worked on by several people that I consider to be skilled in many aspects of networking, and yet no solution has been found. I need to be thorough in my explanantion of the circumstances, so this will be a somewhat lengthy post. But I'm posting it here because I know that some of the brightest computer wizards lurk here, and I'm hoping that this challenge will be one that you can't resist.I have set up a server for use by pilots interested in flying the bush country of Alaska together. This was set up as an alternative to the first generation service which was called Bush Net, and has it's own forum further down this page. For complete details on why I set up the server, you can read the old threads in that forum, but the details aren't important here. So here is the problem in a nutshell - all of the other pilots can see each others planes when using the server, which runs FSHost. However, I alone cannot see their planes, and they cannot see mine. Imagine the irony.As I eluded to above, the problem seems to lie somewhere within the router; I can get everything to work if I connect directly to my cable modem (i.e. everyone can see each others planes, including me). But I need to use the router to allow me to run WidevieW with my multi-computer system, as well as using ActiveSky wxRE. So the router is a must.As far as port forwarding is concerned, I'm pretty sure that I have all of that set correctly, particularly since none of the pilots could use FSHost until I opened up the ports required for multiplayer use (47624 and 2300-2400). Furthermore, this problem does not appear to be specific to the router - I posted on this problem before, and another forum member who is able to use FSHost with a router sent me his make and model, as well as all the settings. I bought that specific router and applied the exact same settings that he uses, but that didn't solve the problem (in fact, no one seemed to be able to use FSHost with those particular settings). Strange, isn't it.Still with me? OK, we're getting there. Now, I was able to find a temporary solution that worked well. Rather than using a hardware router, I turned to a software alternative called Winroute. This works by taking advantage of two NICs in a single computer. The first card connects directly to the modem, the second card links to my LAN by way of a rather pricey switchable hub (otherwise known as a router in my case ;)). Winroute then bridges the two cards utilizing NAT to keep everything secure. When I used Winroute and FSHost on my main flight computer, all pilots were once again able to see each other. Importantly however, if I run FSHost and Winroute on the computer that is intended to be dedicated to Bush Net (and is distinct from my primary flight server), and then try to join the session from my flight computer, then the old problem comes back; I cannot see or be seen by others. It is also important to note that I have to join the session from behind the NAT firewall; if I try to link directly to the FSHost computer using the external IP address, I cannot see the session to even join it.Now the above solution, as I said, was temporary. You see, there is one more twist to this already twisted puzzle. Since my ISP assigns me a dynamic IP address, I used a service provided by dnsart which tracks my current IP address and links it to a distinct domain name (bn2.dnsart.com) so that I don't have to constantly update the Bush Net group when the IP address changes. However I made an odd discovery when trying to get everything to work; if I connected the flight computer directly to the modem, my browser could not connect to the dnsart website. It would only work if I made the connection through a NAT connection, either with the hardware router, or with Winroute. I know what you're thinking, it should be the other way around, right? Well I contacted my ISP, and after extensive testing, they concluded that one of their router table files (I believe that's what they called it) needed to be reset. I was told that once this was done, I would be able to connect to the dnsart site, and that this was likely the reason why I was having trouble with multiplayer flights in the first place. Wait a couple of business days they said, and the problem should be fixed - a technician will call you when the problem is taken care of.Well two days later, I received that phone call. I then sat down at my computer and started up a multiplayer session. Guess what - I couldn't see anybody again :-mad. So I removed Winroute, and put everything back on the hardware router thinking that with the ISP router problem solved, I would now be able to use the hardware router. Not a chance - same problems as before.Almost done now - you're a brave soul for getting this far.This new development led to a number of additional tests with lots of help from the Bush Net community. Here are the facts that I know:1) If I try to connect the modem directly to my computer, I cannot see the dnsart site again. Worse yet, I cannot see the site if I use Winroute either. This did work before.2) If I use Winroute and FSHost on the FSHost server, I can see and be seen. But I can no longer connect to dnsart, so I have no way of updating the IP address for the bn2.dnsart.com domain name. Presumably I could move winroute over to the flight computer again, but there are a number of reasons why I'm reluctant to do this; first and foremost is security - the flight computer is also the one I use for all of my personal affairs, and I don't want it wide open to prying eyes/fingers 24 hours a day.3) If I run Winroute on the FSHost computer and forward the appropriate ports to my flight computer, I can host a session within FS2002 and be seen by others. Oddly enough though, I still cannot host a session with FSHost on the flight computer; I remain "cloaked" to the rest of the Bush Net community.So there you have it. This is where I am today. Ultimately, I would like to connect the cable modem to my hardware router, and host Bush Net on the intended FSHost server, which is distinct from the three computers I use for my own personal flights. But I would like to be able to log into the Bush Net session and be seen by others, and see their planes as well. One thing I forgot to mention is that when I do log into the sessions, the other players are advised that I have joined the session, and I get messages that inform me of active participants. I just can't see their planes.So if you want to take a crack at this, you'll undoubtedly have more questions, for which I'll be happy to provide the answers. But I've already rambled on long enough - now it's time to see if anyone out there will nibble on the bait ;)

Share this post


Link to post
Help AVSIM continue to serve you!
Please donate today!

David,I have seen mention of the TCP ranges 28800-29000 and port 6073 for FS2002 multiplayer also. Try statically forwarding those ports to your FS2k2 box from your router, performing NAT.As I see it, you've tried 3 or 4 setups here. The joys of ascii art! FS2k2 = PC running FS2002.Setup 1:[pre] +----------+ | FS2k2 | | FSHost | | Others | +----------+ | | | | | | | | | | +----------+ +-------+ | PS Hub |---| Cable |---Inet | / Router | | Modem | +----------+ +-------+[/pre]===Setup 2:[pre] +---------+ | | | | +-------+ | FS2k2 |---| Cable |---Inet | | | Modem | | | +-------+ | | +---------+[/pre]===Setup 3:[pre] +----------+ | Other | | Clients | +----------+ | | | | | | | | | | +----------+ | PS Hub | +----------+ | | +----------+ | FS2k2 | | | +-------+ | WinRoute |---| Cable |---Inet | FSHost | | Modem | +----------+ +-------+[/pre]===Setup 4:[pre] +----------+ | FS2k2 | | +others | +----------+ | | | | | | | | | | +----------+ | PS Hub | +----------+ | | +----------+ +-------+ | WinRoute |---| Cable |---Inet | FSHost | | Modem | +----------+ +-------+[/pre]===Hopefully you'll agree that the above four setups are what you've tried. Ignoring the problem with dnsart for now, the only "solutions" that work for you are Setups 2 and 3 above (they are topologically the same, really). Setup 1 and Setup 4 don't work: the FSHost server can be seen but folks can't see you.(1) is obviously your preferred setup. We know people can get data to and from the FSHost server in that configuration, likewise in (4). Referring to Ye Holy Grail (the FS2002 Multiplayer SDK), I believe I can see the problem:"How Multiplayer Works: [...] Since this is a peer-to-peer system, all packets are sent to all players in the session."My suspicion is that MP chat and join/part semantics are sent through the server, however, position data and the actual aircraft renders are sent peer-to-peer. The reason it's not working is because you have to join your FSHost server with an IP local to you, which isn't routable to the rest of the world.The "easy" answer would be: do you have more than one real, routable IP hanging off your cablemodem? If so, the problem becomes easier. Use Setup 4 above, with *no* NAT between the cablemodem and the FSHost box above, with the cablemodem-facing IP being your first public IP. Then, arrange for WinRoute on that machine to perform NAT on the remainder of your hosts on the second public IP, with also a NATless local routing rule for that IP. (Yes, this gets complex fast!)If you don't have the option of a second IP (and the static forwarding of the extra ports doesn't work) you may be stymied. Good luck!--M

Share this post


Link to post

Hi Matt,Nice ascii art, your drawings are right on the money (and sure require fewer words :-roll). In fact I can get an additional IP address from my ISP. If I understand your explanation correctly, I would basically have three NICs in the one server. Two cards would connect directly to the modem, each receiving their own IP. The third card would then be bridged by Winroute for distributing packets to the remaining computers. Here's what I think your suggesting, using the only artwork that will work for me (I couldn't figure out how you did your ascii artwork, my first attempt just came out all garbled):FSHost Server:Modem -> NIC1 + FSHost (IP address #1) -> NIC2 + Winroute (IP address #2) -> NIC3 (to LAN with NAT)FS2K2 Server:Input from NIC3, runs FS2K2.Is this correct? Is there a way to direct FSHost specifically to the IP for NIC1? Usually when I launch FSHost, it scans active IP addresses automatically. I realize that applications don't run off of network cards, but didn't know how else to represent your suggestion. This certainly looks like it's worth a try. I'll also try forwarding the additional ports you mention before even going to the above configuration. I really appreciate your help. I had already convinced myself that the simplest solution would be to bring another line into my house from a different ISP, which would be devoted to Bush Net. But your solution is cheaper if it does indeed work.

Share this post


Link to post

Sort-of, but not quite. I *think* you would only need two cards.[pre]+-------------------+| Other Clients || inc FS2k2 |+-------------------+ | | | | | | | | | | | | | | | | | | | | <--- private IPs (NAT range) | | | | | | | | | |+-------------------+| PS Hub |+-------------------+ | | <--- bind this network port to WinRoute eth1 | perform NAT on private range to public IP #2 | WinRoute: Advanced NAT, Add, Do NAT with spec IP addr+-------------------+| FSHost + WinRoute | <--- Routing table:+-------------------+ Private IP via WinRoute to eth1 eth0 | <--- IP #1 Public IP #2 to eth1 | Public IP #1 to eth0 | Anything else via eth0+-------------------+| Cable Modem | <--- route traffic for IP #1 and #2 to eth0+-------------------+ inet | | |[/pre]As I say... I *THINK* this would work. Can't guarantee it. You would need to be able to connect to FSHost listening on public IP #1 from your NAT box (so that might require some routing wizardry in WinRoute), and you should appear to come from public IP #2 to the rest of the world.Good luck...--M

Share this post


Link to post

Hi Matt,Thank you for the additional clarification. Your starting to lead me into water that is a little over my head, so I'll have to take this one and study it more to be certain I understand what you're suggesting. Because I'm starting to get confused, the next statement may very well show how dense I am - for Winroute to function, you need two NICs, one for the Inet, the other to the local LAN. That is why I proposed three NICs. Without this I have trouble grasping the basic mechanics of your proposed solution. If you already understand the basic requirement of two NICs for Winroute (and I have little doubt that you do), then I will slink off with my tail between my legs and open the books.Thanks again for the help. And don't worry - even if it doesn't work I'll at least learn some more basic networking skills in the process.

Share this post


Link to post

As far as the NAT question is concerned, I believe that if you have the IPs available, WinRoute should be able to perform the appropriate subterfuge with just one NIC and use some internal routing fu to make the other IP appear out of thin air. You might need to alias the second IP onto eth0 (i.e. two IPs bound to that interface)... or you may need a third NIC as you suspect if my understanding of NAT and WinRoute in this particular case is deficient (which it may well be, given I've not run a network using either for many, many moons). :)Cheers,--M

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this