Options

Any good IPv6 subnetting HowTos?

liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
Are there any good IPv6 subnetting articles out there?

I found this:
Microsoft TechNet: Chapter 4 - Subnetting

Which has a section on IPv6 subnetting, but I am struggling to wrap my brain around around it. I have no problem with IPv4 subnetting, and I thought IPv6 subnetting was supposed to be easier than IPv4, but this is soooooo dry to me. Unfortunately, it is the only substantive article that I am able to find on the subject. I seriously can't find anything out there after a lot of Googling.

As far as I can tell the official MS press book (70-642) has nada about IPv6 subnetting and pretty much glosses over IPv6 in general. In fact, I never even thought much about it until I tried the Transcender test and found that it has IPv6 subnetting questions, which is making me nervous, as I wasn't prepared for this.

Comments

  • Options
    unnamedplayerunnamedplayer Member Posts: 74 ■■□□□□□□□□
    What are you having trouble with? Maybe we can help :)

    I read that MS resource as well after studying with the SelfTest practice test. Probably the same as the Transcender stuff you are looking at.
  • Options
    spd3432spd3432 Member Posts: 224
    Liandrin,

    I picked up the 70-642 Transcender this past week when I saw it had the R2 content. I think the 4th or 5th question I was presented was on IPv6 subnetting. Nothing in the current MSPress 70-642 self-study guide on it. I pulled out my Sybex CCNA book and while there is some info on the different types of addresses (and how you can tell by looking at the first block) I didn't see any subnetting info there either.

    I read the technet articles, the explanation Transcender gave (for why I got the answer wrong) and did a bunch of other googling. I even looked for an iPhone app that might do it.

    As near as I was able to figure out from what I read, an IPv6 address is 128 bits of which the first 64 bits is the network address and the last 64 bits is the host identifier.

    Of the first 64 bits, the first 48 is the aggregatable portion used to shrink router tables. The final 16 bits in the network block is the site level identifier. It's these 16 bits that are used to create subnets (the fourth block).

    If the fourth block is CDBA then in binary its 11001101 10111010
    With a subnet mask of /51 -- subtract 48 (the first three blocks) and use the remainder (3) or the first three bits in the fourth block to determine number of subnets and number of hosts. At this point, it should be very similar to subnetting a class A network (with 16 bits for subnets) and leave the final 'octet' (or 64 bits for IPv6) for host addresses adding any leftover bits (13 in the example) to the interface ID..

    This arcticle talks about the different portions of the IPv6 network address:

    Unicast IPv6 addresses: IPv6

    I gave the formula listed in that chapter 4 you referenced to my daughter, she said she'd prefer to stick with her college calculus.

    If I'm incorrect on this, I'll need someone to point it out to me in a hurry because I'm getting ready to schedule the 70-642 exam myself.

    Sean
    ----CCNP goal----
    Route [ ] Studying
    Switch [ ] Next
    Tshoot [ ] Eventually
  • Options
    unnamedplayerunnamedplayer Member Posts: 74 ■■□□□□□□□□
    spd3432 wrote: »
    As near as I was able to figure out from what I read, an IPv6 address is 128 bits of which the first 64 bits is the network address and the last 64 bits is the host identifier.

    Of the first 64 bits, the first 48 is the aggregatable portion used to shrink router tables. The final 16 bits in the network block is the site level identifier. It's these 16 bits that are used to create subnets (the fourth block).

    This arcticle talks about the different portions of the IPv6 network address:

    Unicast IPv6 addresses: IPv6

    I gave the formula listed in that chapter 4 you referenced to my daughter, she said she'd prefer to stick with her college calculus.

    The formula really isn't that difficult (if I've understood correctly :)) Here's my $0.02 at explaining.

    Lets take their example address space of 2001:DB8:0:C000::/51. First some basics. As pointed out, the first 48-bits of an address are for public routing purposes, to get to your organization. The next 16 bits are for subnetting your organization. So the 4th block (in this example C000) is always where we do our subnetting.

    Now, let's say we want 8 prefixes. How many bits do we need to get 8? Well 2^3 = 8. So we need 3 bits to make 8 prefixes. So, s is the number of bits being used to subnet, and in this case s=3.

    Now, what is going to be the new mask of our prefix blocks when we use 3 bits to subnet? Well, P=s+m. We know s=3. m is the original mask being used. In this case m=51. So the new prefix mask is P=3+51=54. So our new subnetted prefix blocks will be using /54.

    Now what are those blocks? To make a list of all those blocks, we need start at our original address (2001:DB8:0:C000::) and increment. Remember we increment in the 4th block since those 16-bits are used for subnetting purposes.

    So, we must first determine how much to increment each block by. To find i, the increment, we do the following: i=2^16-(f+s).

    We know s=3 (again the number of bits being used for subnetting). What is f? f=m-48. This tells us how many bits are already being used for subnetting. Remember the first 48 bits of an IPv6 address are for global routing purposes so an address is always something like 2001:DB8:0::/48 to start off with. But, in the example they gave us an address that was a /51 so some bits were already being dedicated to subnetting. By finding f, you are taking the original mask (/51) and subtracting it by 48 to find how many bits were already being used for subnetting in the address they gave you in this example.

    So now that we know f=3, we can find the increment value. i=2^16-(f+s) or i=2^16-(3+3) = 1024. Since our IPv6 address are in hex, I find it easier to convert to hex. 1024 to hex = 0x400.

    So, now we can list all our address prefix blocks by adding 0x400 to the 4th block of the address. We start with the original address for block one and then continue to increment until we reach 8 blocks in this case.



    2001:DB8:0:C000::/54


    2001:DB8:0:C400::/54


    2001:DB8:0:C800::/54


    2001:DB8:0:CC00::/54


    2001:DB8:0:D000::/54


    2001:DB8:0:D400::/54


    2001:DB8:0:D800::/54


    2001:DB8:0:DC00::/54

    And there are your subnet blocks for an IPv6 address. Not sure how much that helped, but it was a good refresher for me :)
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    Thanks.

    I'm still a little bit confused, though.

    I can see how you get to /51 (the global prefix + the 3-bit mask) but I don't understand how you went to /54 from there.

    Is it that the network prefix can exceed /48 (before the subnet mask)? I was under the impression that in IPv6, the prefix did not go past /48, and everything past that is the subnet mask and then after /64, the host ID.
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    By the way, I found a post on the Mark Minasi forum that has a very similar question:

    Mark Minasi's Reader Forum - IPv6 Test Question explanation

    As you can see from the post and the responses, it seems to be throwing people. I'm glad that I'm not the only one:)
  • Options
    unnamedplayerunnamedplayer Member Posts: 74 ■■□□□□□□□□
    liandrin wrote: »
    Thanks.

    I'm still a little bit confused, though.

    I can see how you get to /51 (the global prefix + the 3-bit mask) but I don't understand how you went to /54 from there.

    The original address block was /51 right (2001:DB8:0:C000::/51)? We want to devote 3 bits to be used for subnetting purposes so 51+3 = 54. Does that make sense?
  • Options
    unnamedplayerunnamedplayer Member Posts: 74 ■■□□□□□□□□
    liandrin wrote: »
    By the way, I found a post on the Mark Minasi forum that has a very similar question:

    Mark Minasi's Reader Forum - IPv6 Test Question explanation

    As you can see from the post and the responses, it seems to be throwing people. I'm glad that I'm not the only one:)

    Regarding that question, you have 8 address blocks listed (actually in the first post only 7 but the original poster clarified saying they forgot to copy and paste the first one.) So, anyway, 8 address blocks with a /54. What was the original prefix?

    Well referring to the MS chapter 4 you posted, n (the number of blocks) = 2^s (where s = number of bits used to subnet)

    So, we have 8 = 2^s. Solve for s. In this case s=3. So now that we know we are using 3 bits to make our subnet, how do we know what the original prefix was? Subtract the number of bits being used for subnetting from your prefix. In this case 54-3 = 51. The original prefix was /51.
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    Thanks, I got it now. It's actually pretty straightforward. I didn't realize that was all they were asking for.

    If only you could see the actual Transcender question (and the subsequent explanation). :) It's rather sparse, which is unusual for Transcender. Between that question that and the TechNet article which looks like a primer on the Theory of Relativity, I mistakenly assumed that they were asking for something more involved.
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    OK, I came across another IPv6 subnetting question that has made me realize that I don't quite have this down yet.

    For reference, I used Google and found a very similar question here: ipv6 subnetting - Networking & Security

    This is the main thing that confuses me:

    If the standard global address prefix is /48, why would someone have a global address prefix of /51 (which makes the value of f 3)? Notice that this does not include the subnet mask--this is just the address prefix. To me it's like they are basically the same thing.

    What is the difference between the /48 and the /51 prefixes? Why would you not want to start subnetting at /48?
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    Does anyone know if the 70-642 comes with a calculator that converts between binary/decimal/hex?
  • Options
    MickQMickQ Member Posts: 628 ■■■■□□□□□□
    No such joy. You're left with your brain and your memory.

    I wrote out a table of IPv4 subnets, /notation, binary numbering and all that kind of thing as the first thing when I sat down. My binary/hexDec maths skills are quite good, but under exam pressures it's best to be on the safe side.


    Just remember when it comes to IPv6 compared to v4:
    v6 ~ v4
    128 bits ~ 32 bits (v6 is 4 times longer)
    8 "octets" ~ 4 octets
    : separation ~ . separation
    hexDec 0x ~ dinary (standard numbers)

    There's more, as you know, but you should read up on IPv6 bit by bit so that it makes sense to you rather than trying to compare from a table.
  • Options
    unnamedplayerunnamedplayer Member Posts: 74 ■■□□□□□□□□
    liandrin wrote: »
    What is the difference between the /48 and the /51 prefixes? Why would you not want to start subnetting at /48?

    The /48 address was subnetted and you were given the starting address of 3FFA:FF2B:4D:B000::/51. Its essentially variable length subnetting.

    Imagine I own a really large corporation and receive a /48 address. Now what if I have many large departments that are in charge of their own networks. I can take my /48 and subnet it and give those addresses to each department. In this case, we used 3 bits to subnet the original /48. In that case we would get 8 blocks with a /51. I could give one to the Engineering department, one to the Marketing department, one to the HR department, and so on.

    Essentially that question you linked to is asking you to imagine you were the head of one of these departments that received one of these blocks. The powers above you split up the original address space and gave you a slice of what they created which according to the question is 3FFA:FF2B:4D:B000::/51. So now that you know where you are starting, it asks you to further divide this space so you can hand out blocks to four more departments underneath you.

    Again, I think the best way to think of it is like variable length subnetting in IPv4. Someone may hand you a 192.168.1.0/24 address and you could split that into a /25 so you could make 2 subnets:
    192.168.1.0-192.168.1.127
    192.168.1.128-192.168.1.255

    So now if you assign me the 192.168.1.0/25 I could further split that block by using a /26 and get
    192.168.1.0-192.168.1.63
    192.168.1.64-192.168.1.127

    And on and on we go.

    Maybe that helps? Someone else feel free to chime in if this is clear as mud :)
  • Options
    drew2000drew2000 Member Posts: 290
    Wow, I haven't studied IPv6 subnetting at all for 70-642.

    Are there any quiz sites like subnettingquestions.com that ask questions for IPv6?

    Drew
  • Options
    liandrinliandrin Registered Users Posts: 7 ■□□□□□□□□□
    Thanks folks. I just passed the 70-642.

    At is turns out, the matters discussed in this thread were not a significant factor in the exam, at least not for me. I obviously can't get more specific than that, but I do appreciate everyone's effort at helping me understand this stuff. I have definitely learned a lot in the past few months.
Sign In or Register to comment.