When I arrived on Wednesday, the Internet access worked - kindof. I could logon using the username and password provided by the site and get out to anything. Transfer times were decent, but initial TCP session setup was the 4-6 minutes range. So 6 minutes average to open a web page or start a download, but it would complete in reasonable times. However packet loss for UDP traffic was so high that Skype was unusable.
(using a sniffer on a colocated host provided that the 5th or 6th SYN packet sent was the first one seen by the remote host)
I went downstairs to complain and found myself in a long line of other complainers. The hotel heard it clearly. They said they were aware of a "gateway being down though we don't know what that means". I did, and was happy to hear they knew about the problem. Sometime the next day the packet loss dropped quite a bit, and session setup times reduced to 2-3 minutes. Skype was mostly usable for audio but not video. Not great, but at least moderately usable if you were patient.
When I went back to my room around 2:15pm on Friday, Internet access didn't work at all. I called downstairs and found that an IT guy was onsite and trying to fix the Internet access. Awesome.
I returned at 6:30pm that evening and found that Internet was still not working for my Macbook. It worked for my phone now, and it worked for others, but it didn't work for me. Testing (and reviewing using both tcpdump and wireshark showed that)
1. I could release and renew DHCP. I consistently got the same 10.59.1.4 address every time.
2. I could ping the default gateway 10.59.1.1.
3. I could ping the nameserver 220.127.116.11 just fine.
4. I could ping my home computer back in California, USA. Traceroute using ICMP worked fine (if DNS queries were disabled)
5. HOWEVER: every TCP or UDP packet I sent out did not receive a reply, and in the case of my home computer did not reach it. I did not
It was very clear that my MAC address or IP address was filtered in some manner. Testing, I manually set up my computer with the same netmask and DNS servers and a different IP. Symptoms were the same -- I could ping anything, but no UDP or TCP response. Okay, the problem is clearly related to my Mac address. Unfortunately you can't convince a Macbook to forge its Mac address :(
So I found a willing helper with a Windows laptop. Using wireshark we confirmed that my DNS queries were leaving my laptop, but that 18.104.22.168 was not replying to them. It was easy to see DNS queries leaving other hosts and receiving replies. This ruled out any problem on my Macbook.
So for the final test, I shut down my Macbook wifi and their PC wifi, changed the mac address on their wifi to match my Macbook and brought it up. The symptoms we observed with their windows laptop were identical to what I saw with my Macbook. Shutting down the wifi, changing the Mac address back and enabling the wifi immediately resolved the symptoms. So we have proof positive that my Mac address is cached or blocked in some non-functional way.
I've communicated all of this to the hotel staff. They are polite, they try to help (in the way that non-techies try to help) but they appear completely unable to contact their Internet provider and get this fixed. It's a 30-second fix if any competent network engineer were to look into it, but Pensione seems completely unable or unwilling to access one.
EtA: I figured out the right combination of commands to change the wifi mac address on my laptop and now its working fine. So yes, they had blocked the MAC address of my MacBook. Sweet.
So Pensione Internet is still very slow, 1-2 minutes to get a web page to start downloading, but its functional. Skype video is working decently enough.
Open terminal and type:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z sudo ifconfig en1 lladdr 00:23:6c:##:##:## <- whatever MAC address you want
Then re-associate your system with the wireless and you'll be using the new IP.