The solution is to fire up cmd and reduce MTU size;
netsh interface ipv4 set subinterface "Local Area Connection" mtu=1432 store=persistent
Where "Local Area Connection" is the device name for the adapter you connect to bnet through.
The problem was the router; Belkin F5D7633-4. Even the latest firmware only allows TCP/IP packets to be ~1492 bytes, despite 1500 being ethernet max. My theory is that the router was fragmenting the packets, and then either this process or the response from battlenet to these router-fragmented packets caused the router to crash.
The MTU value I determined following this process;
- Open an administrative MSDOS command prompt
- ping -l 1472 -f google.com
- Reduce 1472 until you no longer get the "packet needs to be fragmented" error message
- Add 28 more to this (since you specified ping packet data size, not including a packet header of 28 bytes)
- This value is your max MTU