Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple clients fail #9

Open
utopicdev opened this issue Jan 28, 2015 · 5 comments
Open

multiple clients fail #9

utopicdev opened this issue Jan 28, 2015 · 5 comments

Comments

@utopicdev
Copy link

There is some bug while handling multiple clients. The latest release of hans is running on Debian 7.7 server with that command:
hans -u nobody -s 10.5.2.0 -p ........

Then I run hans on windows 7:
hans.exe -c [MYSERV] -p ........ -q -f -a 10.5.2.34
and having no problems, 10.5.2.0/24 is visible and I am able to access the proxy IP at 10.5.2.222

After that I turn on my laptop with windows 8.1 and run hans on it:
hans.exe -c [MYSERV] -p ........ -q -f -a 10.5.2.70
It gives an output error: 2 [main] hans 3624 find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer . Please report this problem to the public mailing list cygwin@cygwin.com (I suppose this error is unrelated to the main issue, but please just keep it in mind too)
Though it connects normally. After that the windows 7 machine is losing connectivity with the 10.5.2.X network, I can't ping any address, on win8.1 neigher.
But if I disconnect windows 7 machine and reconnect 8.1 machine, I am able to access the net.

Resuming:

  • They can't work constantly, looks like some broadcasting failure between the clients , meanwhile when there is only 1 connection it works fine.
  • Issue persists if I remove -a and let hans assign IPs automatically
  • both machines have the same WAN ip (connected to the same WIFI AP)

    UPDATE 1.1
    Just found out that if I connect them from the different WAN ip's this problem disappears. I confirm that the issue persists when connecting 2 different machines from the same external IP. Is there any workaround for it?

@raidenii
Copy link

I can confirm this issue. This sounds like a NAT traversal issue to me, seems that hans cannot handle multiple IPs behind the same NAT box.

@friedrich
Copy link
Owner

Thanks for reporting this! Hans identifies clients by their IP. This means it cannot handle multiple clients with one public IP. I will address this issue in the upcoming releases.

@raidenii
Copy link

Given the fact that NAT uses ICMP query ID to identify the machines behind NAT box, is it possible to do the same on hans? https://tools.ietf.org/html/rfc3022

@Masaq-
Copy link

Masaq- commented Mar 15, 2017

Implemented in #16

Identifying clients by ICMP Query ID is a fine idea. However I use a carrier grade NAT which rewrites the Query ID too frequently. In my case the Sequence Number remains untouched instead. So I have added options to identify clients either by Query ID or by Sequence Number.

@Masaq-
Copy link

Masaq- commented Mar 29, 2017

RFC 5508 says, "An ICMP Query session timer MUST NOT expire in less than 60 seconds. It is RECOMMENDED that the ICMP Query session timer be made configurable."

Apparently my carrier configured the carrier grade NAT to expire an ICMP session after one second. Ping still works with a one second timeout.

Hans default polling interval of 2000 ms is too long. I have made it configurable, and a polling interval of 900 ms maintains a Query ID mapping on my carrier grade NAT.

However I prefer not to use polling, and I still find the Sequence Number to be generally better suited as a client identifier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants