Hi,

I have no familiarity with the internals of Guacamole, but I do have a pretty strong network knowledge.

Reading this email thread, the symptoms are very similar to something that has bit me more than once in my career.  If there is a statefull firewall configured somewhere at either end of the connection, there may be a chance that the firewall is expiring states too quickly.

Given that the web browser is opening a "tunnel" to Tomcat, rather than a more typical "short lived" https connection, a (misconfigured/aggressive) firewall may just think that wow, that connection is taking way too long and close the connection (even though there is traffic over the tunnel).

I'd probably start on the client running Wireshark to capture packets up until the first reconnect.  Unfortunately, analyzing a Wireshark data capture takes some very technical networking knowledge.

I have to agree with Nick in that it seems likely to be a network level issue (either end) with the one ISP.

Cheers,
Steve Williams

PS.  I did a quick google and found the following blog post.  I have never used sonic wall, but this is exactly what I was referring to, except over a VPN rather than a HTTPS tunnel.
https://www.cantarus.com/news/blogs/details/SonicWALL-VPN-Tunnel-Configuration-Best-Practice-for-Remote-Desktop-Services
...
TCP Timeout
In my experience, the single biggest cause of dropped RDS connections over VPN tunnels is due to TCP timeout settings that are too low.

When creating a firewall rule in SonicWALL firewalls, the TCP Connection Inactivity Timeout is set to 15 minutes by default. Although one might consider that an active RDS session should not be considered inactive by the SonicWALL, in practice this value can indeed cause the RDS connections to be dropped.  Based on experience, I recommend this is changed to at least 120 minutes.
...



On 16/12/2020 11:22 a.m., Nick Couchman wrote:
On Wed, Dec 16, 2020 at 12:46 PM Pietro <[email protected] <mailto:[email protected]>> wrote:

    Hi Nick,

    Honestly we are not convinced the issue is on the network. The 4G
    connection
    we experienced the issue with is fast and it is used daily with no
    issues or
    slowdowns. It is used for conference calls and with various remote
    desktop
    protocols (VNC, RDP) and clients (noVNC, xfreerdp and rdesktop)
    with no
    issues. We would like to use Guacamole with it as well.


Whether the network is performing well or not does not necessarily indicate whether they're doing something to the traffic that could adversely impact the way in which Guacamole works. I'm not saying it's definitely the network, but, if that's the only network on which you experience problems, and other networks (like a different 4G network or WiFi) work fine, then I suspect it's something somehow related to the network. I'm just looking for common issues that point in one direction or another.

    Do the logs we sent you suggest that there might be problems in the
    guacamole code/protocol?


No, the logs you've provided are not indicative of any problems in the code or protocol. Furthermore, again, the fact that it works fine on some networks (including other 4G networks), and that there are not many other users on the mailing list reporting these types of issues makes me less inclined to believe there's a bug in the code.

The logs you sent indicate that guacd is not receiving the messages it expects from the client in the timeframe it expects them. This could be an issue with Tomcat or something else on the server, but it also could be an issue where the messages from the client are getting dropped somewhere along the way. Based on the information you've provided, I lean toward the later, but, again, it's just my guess.

    In particular if you check the events timing and their correlation
    with the
    components involved in the chain (e.g. browser-side and
    Tomcat-side) you
    should notice that "strange" things happen.


Based on the log messages you provided, what I see is:
- guacd stops receiving messages from the client, for some, as yet unknown, reason. - After a timeout period, guacd shuts down the connection, assuming that the user is no longer there. - Tomcat complains about the fact that the connection to guacd has been terminated unexpectedly.

The only thing "strange" about this is why guacd stops receiving messages from the client, which is what needs to be investigated. The rest of the messages seem pretty normal to me.

    We are evaluating the use of Guacamole in an environment where
    there might
    be up to 25 concurrent users connected to the same RDP target (or
    VM). Users
    are spread all over the Europe and access through various
    networks, from
    here our concerns.


Sure, understand the concern and the need to get it working correctly, and we're happy to help you work through the issues. But, I'm not seeing any signs of a bug in the code or protocol at this point.

You might have to do some network packet captures to see if the traffic is making it all the way through - that is, if you capture the packets between the Browser and Reverse Proxy, then between Tomcat and guacd, do you see all of the traffic that you expect to see, or are things dropping along the way. Note that, because you're doing a reverse proxy and (likely) encrypting it, you won't be able to see the contents of the packets themselves, but you should at least be able to see the number of packages and relative size and correlate it to what is getting sent on to guacd. It won't be a 1-to-1 correlation (not every packet to Tomcat should be sent on to guacd), but hopefully some patterns will emerge.

-Nick

Reply via email to