Forum

ASSIST, AMERICA'S ARMY COMMUNITY - RELIVE THE GLORY DAYS OF AMERICA'S ARMY 2.5

Author Topic: Cannot join own gameserver on Linuxserver at home  (Read 9924 times)

0 Members and 1 Guest are viewing this topic.

Offline Spanky

  • <?php echo $opinion .' is better.'; ?>
  • Administrator
  • Posts like a Spanky!
  • *
  • Posts: 10,893
    • View Profile
    • NatesComp.com
  • AA: tigobitties
Re: Cannot join own gameserver on Linuxserver at home
« Reply #15 on: Saturday, June 01, 2013, 13:05:33 PM »
I think you just ping your external IP and with port forwarding, the router sends the ping to the right internal IP.
It's like shaving your pubes to make your junk look bigger.
Might look bigger, but it aint.....

Offline Rob_LD

Re: Cannot join own gameserver on Linuxserver at home
« Reply #16 on: Saturday, June 01, 2013, 14:28:51 PM »
Quote
the router sends the ping to the right internal IP
Impossible!
Like explained by "OICURMT2!".

There is no port forwarding of incoming ICMP requests cause this is not how NAT works.

Offline Possessed

  • bWpnRecoil == False;
  • Administrator
  • Epic Poster
  • *
  • Posts: 3,620
  • You suffer, but why?!
    • View Profile
  • AA: Possessed
Re: Cannot join own gameserver on Linuxserver at home
« Reply #17 on: Saturday, June 01, 2013, 14:50:14 PM »
I think you just ping your external IP and with port forwarding, the router sends the ping to the right internal IP.
exactly, but you can't reach your own internal ip through your own external ip ;)
These things I have spoken unto you, that in me ye might have peace. In the world ye shall have tribulation: but be of good cheer; I have overcome the world.
John 16:33


Offline Spanky

  • <?php echo $opinion .' is better.'; ?>
  • Administrator
  • Posts like a Spanky!
  • *
  • Posts: 10,893
    • View Profile
    • NatesComp.com
  • AA: tigobitties
Re: Cannot join own gameserver on Linuxserver at home
« Reply #18 on: Saturday, June 01, 2013, 16:20:42 PM »
I can. I've not had issues when using DD-WRT on my router. It's low end routers that cause problems. There's also NAT loopback. I'm not a networking engineer guru but I can view, ping and join my server locally or out to the internet and back in again.
It's like shaving your pubes to make your junk look bigger.
Might look bigger, but it aint.....

Offline Possessed

  • bWpnRecoil == False;
  • Administrator
  • Epic Poster
  • *
  • Posts: 3,620
  • You suffer, but why?!
    • View Profile
  • AA: Possessed
Re: Cannot join own gameserver on Linuxserver at home
« Reply #19 on: Saturday, June 01, 2013, 19:23:47 PM »
I can. I've not had issues when using DD-WRT on my router. It's low end routers that cause problems. There's also NAT loopback. I'm not a networking engineer guru but I can view, ping and join my server locally or out to the internet and back in again.
my modem wont support nat loopback but... this worked for me!
https://forums.sonic.net/viewtopic.php?f=10&t=637
These things I have spoken unto you, that in me ye might have peace. In the world ye shall have tribulation: but be of good cheer; I have overcome the world.
John 16:33


Offline Rob_LD

Re: Cannot join own gameserver on Linuxserver at home
« Reply #20 on: Sunday, June 02, 2013, 03:41:26 AM »
I just gave it a try:
Set up a server on one of my LAN PC's.
No problems at all...

Assist-browser showed the ping and let me join from the hosting PC.
« Last Edit: Sunday, June 02, 2013, 05:07:08 AM by Rob_LD »

Offline OICURMT2!

Re: Cannot join own gameserver on Linuxserver at home
« Reply #21 on: Sunday, June 02, 2013, 04:25:04 AM »
Impossible!
Like explained by "OICURMT2!".

There is no port forwarding of incoming ICMP requests cause this is not how NAT works.

Everyone is missing one little piece of information...

No routers can forward ICMP, as they are not TCP or UDP.  So if you can "ping" your box, what you are really pinging is your external router/modem.  Also, ICMP does not use ports, so how can you forward one?

ICMP was designed to directly echo packets for a response time for the device directly associated with the IP address.  While ICMP does contain an IP header, routers do not forward them because it is a "diagnostic" protocol.  Imagine if everytime you issued a traceroute command the packets were forwarded to a different location.  Systems engineers would never be able to find where the fault it.  It passes messages...

The only thing I can think of is by using DNAT, which is reserved for IP range forwarding, but really isn't designed to forward ICMP queries, but may be able to do it via a mangled pre-route similar to the following:

iptables -t nat -A PREROUTING -p icmp -d external.ip.address --dport 7 -j DNAT --to-destination internal.ip.address.range

Note that port 7 is the "echo" port, which is NOT ICMP ping (as ICMP does not use ports), but rather the actual "echo" service...

The problem with the iptable entry is that as an ICMP packet arrives to your external device, it would broadcast to EVERY internal device, which in turn would send back replies.  The recieving machine would register an error, as the return would not be valid.  I tried to test this, but couldn't get anywherre with it.

There may be a kernel level modules out there that does this, but I doubt it.

BTW: If you are talking about the ping to your server on the 25Assist panel, I'd bet dollars to donuts that that particular ping is the message return from the UDP query port and not an ICMP return.

I could be wrong (which SWMBO tells me constantly... :rtfm:)  but I suspect I'm not...

OIC!
--
Oh, I See You Are Empty Too !

Offline Rob_LD

Re: Cannot join own gameserver on Linuxserver at home
« Reply #22 on: Sunday, June 02, 2013, 05:05:17 AM »
Quote
I'd bet dollars to donuts that that particular ping is the message return from the UDP query port and not an ICMP return.
But this could only work if the queried port is not reachable.
Otherwise the "server" must not send any reply cause of the "one way" UDP.

Offline OICURMT2!

Re: Cannot join own gameserver on Linuxserver at home
« Reply #23 on: Sunday, June 02, 2013, 10:20:29 AM »
But this could only work if the queried port is not reachable.
Otherwise the "server" must not send any reply cause of the "one way" UDP.

This is a good point.  I stand corrected.

However, can't a server/client relationship be built where each sends messages to each other via a particular port?

OIC!
« Last Edit: Sunday, June 02, 2013, 10:48:53 AM by OICURMT2! »
--
Oh, I See You Are Empty Too !

Offline Rob_LD

Re: Cannot join own gameserver on Linuxserver at home
« Reply #24 on: Sunday, June 02, 2013, 11:23:13 AM »
Possible, without doubt.

But due to the nature of UDP both sides ain't able to verify if the packet arrived or not.
Thats why there is no RTT for UDP packets.


What leads us to the issue of how this game determine your ping?
I have absolutely no idea...

Offline [SWISS]Merlin

Re: Cannot join own gameserver on Linuxserver at home
« Reply #25 on: Monday, June 03, 2013, 06:00:23 AM »
Set the multihome back to the default 0.0.0.0 value, it's not needed unless you are directing the server to a specific interface on your box.  For example, my server has 3 NICs, so I tell the server to listen on the IP that is on the outbound card.  I assume your box only has one NIC, so multihome can be defaulted.

As for how to use the tables... let's try one thing at a time...

If you are using a GUI, then you should have some sort of Firewall configuration program.  Turn OFF the firewall on your Linux box (to start with) and make sure your router is forwarding ports correctly.

If that doesn't work, then your problem is on the router.  If it does work, then the problem is on the box.


Let me know what happens, we can take it from there.

BTW: This thread has a link to a Linux setup guide... it may (or may not) help.



You can't, but you can redirect something like "finger" services and use that to see if your machine is online or not.

try this Energy_NL and tell us what happend. ok?

Offline OICURMT2!

Re: Cannot join own gameserver on Linuxserver at home
« Reply #26 on: Monday, June 03, 2013, 06:17:36 AM »

What leads us to the issue of how this game determine your ping?
I have absolutely no idea...

think I found it...

25Assist uses a UDP Socket Write and catches it at the other end when the message sent is related to a variable "status" and "aa25ping"... direct extraction from the binary follows:

Code: [Select]
5627  Auth retry^@^@^@^@^@^A^@^@^@^@^@^@^@^N^@^@^@^I^@^@^@^@^A^@^H^I|startsrv^@^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^Hstartsrv^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@#^@^@^@^^^@^@^@^@^A^@^H^^Checking for 2.5Assist Updates^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Faudpqr^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^H\status\^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^Haa25ping^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^L^@^@^@^G^@^@^@^@^A^@^H^Greqauth^@^@^@^@^A^@^@^@^@^@^@^@^H^@^@^@^C^@^@^@^@^A^@^H^C10.^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^H192.168.^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^I^@^@^@^D^@^@^@^@^A^@^H^D127.^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Fauthok^@^@^@^@^@^A^@^@^@^@^@^@^@^G^@^@^@^B^@^@^@^@^A^@^H^BX1^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Fauthno^@^@^@^@^@^A^@^@^@^@^@^@^@$

The items to note are udpqr (UDP Query) and what appears to be an embeded strings "status" and "aa25ping".  This is the return I was watching when I was packet sniffing my server to see how the traffic was going back and forth...

A deeper investigation is now warranted, as my analysis potentially results in a mistake I made in my Linux guide relating to ports... :(  I guess it's time to get onto Rev 1.

OIC!

BTW: I noticed that in the binary code above that there are two strings "10." and "192.168.", which are private IP's.  25Assist must parse out private network masks for some reason.  Maybe to have a local server (LAN) or to circumvent the auth server??


ANYWAY, back on topic... per [SWISS]Merlin...

HEY Energy_NL, any progress?!?
--
Oh, I See You Are Empty Too !

Offline Rob_LD

Re: Cannot join own gameserver on Linuxserver at home
« Reply #27 on: Monday, June 03, 2013, 17:36:19 PM »
Nice findings!
I browsed hundreds of sniffed packets but missed this.

Offline ELiZ

Re: Cannot join own gameserver on Linuxserver at home
« Reply #28 on: Monday, June 03, 2013, 18:12:14 PM »
think I found it...

25Assist uses a UDP Socket Write and catches it at the other end when the message sent is related to a variable "status" and "aa25ping"... direct extraction from the binary follows:

Code: [Select]
5627  Auth retry^@^@^@^@^@^A^@^@^@^@^@^@^@^N^@^@^@^I^@^@^@^@^A^@^H^I|startsrv^@^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^Hstartsrv^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@#^@^@^@^^^@^@^@^@^A^@^H^^Checking for 2.5Assist Updates^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Faudpqr^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^H\status\^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^Haa25ping^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^L^@^@^@^G^@^@^@^@^A^@^H^Greqauth^@^@^@^@^A^@^@^@^@^@^@^@^H^@^@^@^C^@^@^@^@^A^@^H^C10.^@^@^@^@^A^@^@^@^@^@^@^@^M^@^@^@^H^@^@^@^@^A^@^H^H192.168.^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^I^@^@^@^D^@^@^@^@^A^@^H^D127.^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Fauthok^@^@^@^@^@^A^@^@^@^@^@^@^@^G^@^@^@^B^@^@^@^@^A^@^H^BX1^@^@^@^@^@^A^@^@^@^@^@^@^@^K^@^@^@^F^@^@^@^@^A^@^H^Fauthno^@^@^@^@^@^A^@^@^@^@^@^@^@$

The items to note are udpqr (UDP Query) and what appears to be an embeded strings "status" and "aa25ping".  This is the return I was watching when I was packet sniffing my server to see how the traffic was going back and forth...

A deeper investigation is now warranted, as my analysis potentially results in a mistake I made in my Linux guide relating to ports... :(  I guess it's time to get onto Rev 1.

OIC!

BTW: I noticed that in the binary code above that there are two strings "10." and "192.168.", which are private IP's.  25Assist must parse out private network masks for some reason.  Maybe to have a local server (LAN) or to circumvent the auth server??


ANYWAY, back on topic... per [SWISS]Merlin...

HEY Energy_NL, any progress?!?


No need to read the Binary to read the Assist Code:
We are at SourceForge, a bit outdated, but the functions you mention are the same:
http://sourceforge.net/projects/aa25assist/files/?source=dlp

the private networks you mention are used to check that the packets come from local server(Org AA Server-binary)



Seems that the Original designer of the software forgot about the 172.16.0.0 /16 Network.

Offline OICURMT2!

Re: Cannot join own gameserver on Linuxserver at home
« Reply #29 on: Wednesday, June 05, 2013, 07:56:46 AM »
No need to read the Binary to read the Assist Code:
We are at SourceForge, a bit outdated, but the functions you mention are the same:
http://sourceforge.net/projects/aa25assist/files/?source=dlp

the private networks you mention are used to check that the packets come from local server(Org AA Server-binary)



Seems that the Original designer of the software forgot about the 172.16.0.0 /16 Network.


Umm.... code's not readable.  Google tells me it's a REALBasic file...

Thanks for the clarification though!
OIC!
--
Oh, I See You Are Empty Too !

 

Download Assist

×

Download Game Client

Important: Battletracker no longer exists. However, old Battletracker accounts may still work. You can create a new 25Assist account here

Download Server Manager