However in Vista the windows firewall blocks ICMP traffic by default. A friend of mine called me last week and said that he couldn't ping from one machine to another. He disabled the Windows Firewall service so he knows that is not the problem. In fact that was causing the problem. When you disable that service the operating system thinks something might be wrong and goes into a shields up mode, not letting any traffic through. Also turning off the firewall (either by stopping the service or just turning it off) causes the Teredo client to turn off.
So how do you enable ICMP traffic through the firewall? In XP it was easy. In the firewall user interface there was a checkbox that turns it on and off. In Vista, it is a bit more complicated. There are two ways. The easiest is from the command line using NETSH. From an elevated prompt run:
For ICMPv4:
netsh advfirewall firewall add rule name="ICMPv4 Inbound" dir=in action=allow enable=yes profile=any localip=any remoteip=any protocol=icmpv4:8,any interfacetype=any edge=yes
For ICMPv6:
netsh advfirewall firewall add rule name="ICMPv6 Inbound" dir=in action=allow enable=yes profile=any localip=any remoteip=any protocol=icmpv6:128,any interfacetype=any edge=yes
From the user interface:
At this point you the firewall should allow ICMP traffic for ping.
-Travis