Tuesday, November 09, 2010 1:03 PM
I found the following mistake on page 19 when talking about Teredo IPv6.
It seems no one has spotted this yet (see here http://support.microsoft.com/kb/971805) but it is definitely a mistake, it isn't a typo either. Obviously the writer didn't know what he was on about or anyone that vetted it. I can't believe that this wasn't spotted before it was released.
I won’t go into all the details of how Teredo works, I will just concentrate on the mistakes. In a Teredo address the last 32 bits xxxx:xxxx (each hex pair represent 8 bits) represent your public IPv4 address.
On the page before it actually explains this “The final 32 bits store an obscured version of the external IPv4 address that corresponds to all Teredo traffic for the Teredo client interface. “
Again on the same page it then gives an example of converting the 188.8.131.52 PUBLIC IP address into the Teredo address. 131.107.01. In hex this IPv4 address is 0x836b0001. Then however you must XOR it with 0xffffffff (read on Teredo to find out what XOR, easier than you might think). This now becomes 0x7c94fffe which in turn means the last 32 bits of your address will be 7C94:FFFE.
Anyway that is how you work it out; now back to the mistake on page 19.
It then gives you the following IPv4 subnets:
It then gives examples of what they will be in IPv6 Teredo format and says the range for the first subnet is as follows:
2001::CE49:7601:E866:EFFF:F5FF:9BFE through 2001::0A0A:64FE:E866:EFFF:F5FF:9B01
I have highlighted the important bits (pun intended) in red. Let’s work them out. F5 XOR’ed is 0A converted to decimal is 10. This the first part of our EXTERNAL IP address (you can probably see where this is going already). FF XOR’ed is 00 which is also 0 in decimal. Apply the same rule to 9B and we get 100 and then FE is 0.
So it is saying that basically that the last 32 bits of the Teredo address for all machines correspond to their IPv4 private IP address. There are 2 problems with this. Firstly the whole purpose of Teredo is to route IPv6 over the Ipv4 internet. This isn’t going to happen with private IP addresses. Secondly everywhere you read on Teredo say these bits represents the public external IP address not private.
The true representation for all PC’s would have the last 32 bits exactly the same because they would all be going out the same public IP address.
If you don’t believe me you can test this yourself. All Window 7 PC natively support IPv6 and Teredo. Do an IP config now and look at the last 32 bits of your Teredo address. Convert them to your IPv4 address using the method mentioned above, don’t forget to XOR them. You will find that they are the public IP provided by your ISP.
If you don’t know much about IPv6 or Teredo it will be a little hard to get your head around at first but once you understand it, it is glaringly obvious. I spotted it easily because there wouldn’t even be a “range” of Teredo addresses (they actually are different slightly but I’m not going to go into that...)
Have fun MS, I’m glad to be the first to spot it!!
Saturday, June 02, 2012 9:20 AMModeratorPlease refer to the following for a list of errata for this training kit http://oreilly.com/catalog/errata.csp?isbn=9780735626331
When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer
MSysDev (C.Sturt), MDbDsgnMgt (C.Sturt), MCT, MCPD, MCSD, MCITP, MCDBA
Blog: Mr. Wharty's Ramblings
MC ID: Microsoft Transcript