IPv6 Address Types

This topic is to discuss the following lesson:

Can you please elaborate on Anycast addresses? The concept is still pretty confusing.

Hi Dhananjay,

Anycast basically means that we configure the same address on multiple devices and then advertise the address in a routing protocol. For example, you could do this for a DNS server.

Depending on where you are located, you will always be routed to the closest DNS server.

You can even “try” this with IPv4. Configure two of your routers to advertise the same loopback interface. Depending on where you are in the network, you will always be routed to the closest loopback.

Rene

 

2 Likes

Rene’ what is it am i expected to know for the CCNA exam with regards to IPv6. I want to learn this for long haul but don’t want to bogg myself down at this juncture which only delays my re-certification be4 my CCENT expires :slight_smile:

Rene - why is it even worth to mention FC00::/7 as unique local when we eventually going to convert it to FD? not sure if this question will help me understand any better but I’m curious

1 Like

Hi Itai,

The official answer is that RFC 4193 has specified FC00::/7 to use for local IPv6 unicast addresses. Here’s what they say about the 8th bit (L bit):

  • Set to 1 if prefix is localy assigned.
  • Set to 0 may be defined in the future.

So in reality, the only thing we use is FD and that’s probably the only thing we’ll ever see but who knows. This could be a good exam trick question though, asking people what the official prefix is for IPv6 local unicast addresses.

Rene

1 Like

Oh and there’s quite some IPv6 stuff on the R&S track nowadays. For CCNA you should know:

3.4 Describe the technological requirements for running IPv6 in conjunction with IPv4
3.4.a dual stack
 
3.5 Describe IPv6 addresses
3.5.a global unicast
3.5.b multicast
3.5.c link local
3.5.d unique local
3.5.e eui 64
3.5.f auto-configuration

4.7.c Configure OSPv3

On this example:

Let’s work on an example…let’s say that we have a LAN and we want to use unique local IPv6 addresses and we require 10 subnets:

The prefix starts with FD.
We have 40 bits for the global ID, each hexadecimal character represents 4 bits so we can pick 10 hexadecimal characters. Let’s use AB:1234:5678 as the global ID.
Our first subnet will start with 0000.

Is the choice to pick 10 hex character influence by the number of subnets that we need? For the subnet bits - the 0000, what do you criterion or method do you use choose the # of bits? Is it the same as in IPv4 where you choose the number of bits needed to accommodate the number of subnets or host u need 2 raised to the number of bits?

Hi Itai,

This is how RFC 4193 describes it…40 bits for the global ID and 16 bits for the subnets.

Rene

Hi Rene,

Can you pls explain how link local address is determined? How actually it is important in IPv6 compared to IPV4?

Ananth,
There really isn’t a concept of a link-local address in IPv4, but it is critical for IPv6 operation. As the name implies, link-local addresses are significant only on a particular link, and they are the primary vehicle of communication between IPv6 hosts over a shared link. As an illustration of its importance, OSPFv3 will not even function without link-local addresses being present.

Link Local addresses are all within the FE80::/10 range. They can be manually set (which is the Cisco recommended practice), or they can be created automatically based on the node’s MAC address for that link. The problem with using a MAC, however, is that it is only 48 bits, while an IPv6 address is 128 bits. To solve this problem, extra padding is used. The rule is that you cut the MAC address in half, and insert “fffe” where you made the cut. For example, if you had the MAC address of 1111.2222.3333, the padding would work like this:

FE80::1111.22FF.FE22.3333

As if that isn’t complicated enough, one additional change has to be made called the EUI-64 bit flip. I won’t go through explaining it because there is a lesson on it. The final result using the bit flip would be:

FE80::1311:22FF:FE22:3333

2 Likes

Great post!

I only had one question and its not really that important of a question but I was curious.

If you have to change the L bit to a 1 making it FD then why do they say FC in the first place? why not just call all Unique Local FD which is what it really is anyway because of the rule.

Hello Brian

MAC addresses when configured have the U/L bit which is the 7th bit of the 48 bit address. This bit, when set to 0 when this address is locally administered and 1 if the address is globally unique. An example is the virtual MAC address that is created by HSRP. This MAC address will always have 0 in the seventh bit, while a hardwired MAC address on a switch or a PC will have the 7th bit 1.

Now because there is a mechanism of EUI-64 which is used to assign an IPv6 address that is derived from a MAC addresses, this L bit seems to have migrated into the IPv6 format. According to most sources, (and @ReneMolenaar can correct me if I’m wrong), this bit isn’t actually taken into account in most IPv6 applications. Both the FC00 and FD00 blocks are considered unique local addresses.

The reason why the L should be changed to 1 is because the block FC00 has not been defined yet. It has been proposed to be managed by an allocation authority, but this has not gained acceptance in the IETF.

I hope this has been helpful!

Laz

1 Like

Hi Rene,
I have a silly question running over my head. I see that we have Global unicast address, somewhere i read that the range for global unicast is from 2000::/16 to 3fff::/16.
My question:

  1. is this correct?
  2. why such a small range of global unicast addresses from a massive IPv6 address? Your introduction to IPv6 course mentioned that there is no real requirement of NAT in IPv6. With this small range we might require NAT in future (please correct me if i am wrong)
  3. can’t we assign other addresses like 7000::/16 as global unicast ?
    I know that IANA does the address allocation, but as i said it’s just a silly question troubling me in this course.
    Br,

Hi Nadav,

The global IPv6 unicast address space must start with 001 (binary) so that’s correct yes:

0010 (2000)
0011 (3000)

In other words, it has to start with 2000::/3. That covers everything in this range:

2000:0000:0000:0000:0000:0000:0000:0000-
3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

That’s 42535295865117307932921825928971026432 addresses in total.

For each person on the planet we get:

42535295865117307932921825928971026432 / 7615097670 (world population) = 5.5856534e+27

So, that’s a crazy number of IPv6 addresses only from the 2000::/3 range :smile:

Here you can find the complete IPv6 allocation from IANA:

https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml

And here’s the IANA global unicast address space:

https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml

In RFC7249 we can read something about the allocation:

The vast bulk of the IPv6 address space (approximately 7/8ths of the
whole address space) is reserved by the IETF [RFC4291], with the
expectation that further assignment of globally unique unicast
address space will be made from this reserved space in accordance
with future needs.

0000::/8 and 0100::/8 are reserved for other purposes so that’s why we start with 2000:: for global addresses. It still feels like a waste to reserve an entire /8 that is probably never used but with this address space, we probably never run out.

Here’s a funny website I ran into when I was looking some stuff up:

https://samsclass.info/ipv6/exhaustion-2016.htm

Rene

1 Like

Hi Rene,
Does Anycast also provide a kind of redundancy?
Also you mentioned that in Anycast the host will be routed to the closest router/server. Closest in terms of routing decision?
Is there any chance that the host packets are received by two anycast routers and both reply to the packet ?

Br,

Hello Nadav

Anycast can indeed provide redundancy. With the growth of the Internet, many network services are using Anycast for high-availability requirements, such as DNS and content delivery networks. Anycast has grown in popularity for this purpose.

Closest could mean multiple things. It could be on the basis of number of hops, physical distance, lowest cost based on a metric, latency, or based on the least congested route. Content delivery systems like Netflix may use it in order to have users obtain content from the closest possible (and thus fastest and least costly) server. This essentially brings the content closer to the end user.

Only if there is a fault in configuration. IPv6 routers on the path of an Anycast packet through the network will not distinguish it from a unicast packet, but special handling is required from the routers near the destination (that is, within the scope of the Anycast address) as they are required to route an Anycast packet to the “nearest” interface within that scope. This is determined in much the same way that a routing protocol determines the path to a specific destination, based on whatever measure of distance (hops, cost, etc.) is being used.

I hope this has been helpful!

Laz

Hi

Can you please tell me how many subjects are possible with 16 bits in IPv6 subnet part?

Thanks

And also i havee read in some tutorials you cant assign anycast addresses to hosts…can you please explain the difference between host and node in a networked environment…

Thanks

Hello Sumant

If you have a /16 prefix on an IPv6 address, then you can theoretically have up to 2^16=65536 subnets each having the capability of containing 2^112 hosts since out of the 128 bits of an IPv6 address, 112 would be available for hosts.

However such a configuration is not advisable due to the fact that 1) you are creating an extremely large subnet of hosts without any reason for it (i.e. the whole of today’s Internet could fit inside one of these subnets many many times over!!) and 2) you would have strict limitations on what addresses you can actually use due to various subnets and prefixes being reserved for specific purposes.

I hope this has been helpful!

Laz