I’ve been having a lot of issues lately with Netflix on my Apple TV and other iOS devices from home. On Apple TV, the most common outcome of launching Netflix was the dreaded “Netflix is currently unavailable” screen. It has gotten so bad that my kids keep asking to just watch Netflix on Roku!
Obviously if Netflix was running on Roku and computers, the problem wasn’t with Netflix themselves, and today I decided to break out Wireshark to see exactly what was happening when the Apple TV tried to load Netflix. I’ve written previously about how Apple TV handles ‘applications’, so this was halfway between trying to fix a problem and hopefully learning something new.
I configured port mirroring on my Ethernet switch so I could see traffic heading to and from the Apple TV (I keep my Apple TV’s wired if at all possible, saving wireless bandwidth for other devices). As my Airport Extreme, my Ethernet switch, and Apple TV devices are all in the same cabinet, this was fairly simple to accommodate.
The first thing I noticed is when I attempted to launch the Netflix app, the Apple TV would immediately do a DNS lookup for a netflix.com hostname, but did nothing from there for basically 50 seconds until the “currently unavailable” screen popped up. Very strange…
After doing some more digging, I discovered that this was NOT actually the case – the Apple TV was just switching to IPv6, which I had filtered out of my Wireshark view. I changed the filter to the MAC of the Apple TV, and could now see that something was happening after the DNS lookup, but that whatever was happening didn’t appear to be working very well. There were duplicate packets, and it appears the SSL connection never really got much past the TCP connection establishment before ending the connection.
So, now the question was, is this related to IPv6, or is something else broken with Netflix/Apple TV? I disabled IPv6 connection sharing on the Airport Extreme and tried again.
Netflix quickly loaded as if nothing had ever been wrong. Wireshark showed the difference – SSL connection is successfully negotiated without a problem.
I haven’t done a capture from the external side of the Airport as of yet to see what the ‘IPv6 Connection Sharing’ was breaking in the SSL stream, but there is obviously a bug somewhere. At this point, I’m content having things work again, and while troubleshooting SSL is a great Friday activity over beers, I think I’ll just binge watch some X-Files instead.
To disable IPv6 on your Airport, launch Airport Utility and go to Edit —> Internet —> Internet Options and uncheck the “Enable IPv6 Connection Sharing” box.
I have also had intermittent, and frustrating, issues with AirPlay either not connecting, taking a very long time to connect, or not working at all. Since making this change, I have had no AirPlay issues at all.