Some Web Servers Drop Guest Connections (e.g. Twitter)

Some web sites drop connections from the guest, without returning anything (even headers).  This happens with twitter.com when run from

    * VMWare Fusion 2.0.2 on an OS X 10.5.5 host, with bridged networking, from a Windows XP SP3 guest

    * VMWare Player 2.0.5 on a Windows XP SP3 host, with NAT networking, from a Windows XP SP3 guest

This behavior is independent of the tool I use to send the request to the server:

    * I tried fetching http://twitter.com/ from Firefox, and the connection gets dropped before returning data to Firefox.

    * I tried using "wget --user-agent=Mozilla --server-response http://twitter.com/" and it reports "Read error (Connection reset by peer) in headers"

    * I tried using telnet to port 80 at twitter.com, and issuing "GET /" manually, and the host disconnects immediately after I press Enter after the "GET /"

Event Viewer on the Windows guests shows no errors.  Neither guest is running a firewall.  On both hosts, I can fetch the page via all the tools, but in the guest, twitter.com disconnects after receiving the request.

I'm not running a firewall on the OS X host.  There is firewall software on the Windows host, but I told it not to filter connections.  (I can't remove it entirely.  Corporate IT policy.)

What else could I try?  It really looks like some web servers are configured to reject GET requests that match some criteria, and VM guests match that criteria.

I'll donate $20 to a charity of your choice if you're the first commenter to come up with a solution.

more data

I know this isn't very helpful, but maybe the additional data points will start the lead to a solution.  Using vmplayer 2.5.2 hosted on ubuntu 8.04 works properly -- i.e. twitter.com loads fine.  (XPsp3 guest)

Your symptoms, especially manually entering "GET /" and having the connection drop immediately after the enter actually sounds like the connection is not being established properly.

Perhaps you could use wireshark to capture packets from the guest and determine which party is closing the connection or if there is anything odd in the data compared to a connection from the host.

Agreed

Thanks for commenting.

I agree with your diagnosis.  It does sound like the TCP session is not fully established.  Given that it works with an Ubuntu host but not a Windows host, I'm thinking that something isn't quite right on the packet header when it passes through the Windows host.

Capturing and analyzing packets is probably what it will take to solve the problem, but that's not something I can do off the top of my head, and I can't invest that much time right now.  Maybe someday...

It is most peculiar that it only affects SOME web sites.  My guess is that it fails on web sites where there's a load balancer or a reverse proxy that is configured to require strict RFC adherence, in an attempt to secure against attacks of some sort.