IPv6 Address Types

Hi Rene and staff,
sorry if i miss something, but the lesson do not talk about link-local scope id
I do a little GNS3 lab to make some basic test
Image4
I turn on telnet on R3


and want to telnet from R2 to R3 using link-local address
Ping is OK

But telnet fails

I dont understand why R2 should have a routing table (L3) to telnet to R3 on link-local ?

I google on a forum and find a reply from a cisco employee

So what is wrong on my basic lab ?

Coud you tell more about scope id ? When this is a number (Microsoft), I wonder where this number come from ?
Regards

Hello Dominique

This is an interesting question. I have gone in and labbed it up and it seems that I get the same results as you. However, if I attempt to issue the telnet command with the link local address of the other router, and I don’t include the exit interface, it works:

R1#telnet fe80::2%gigabitethernet2
% IPv6 routing table gigabitethernet2 does not exist
R1#telnet fe80::2                 
Trying FE80::2 ... Open


Password required, but none set

[Connection to fe80::2 closed by foreign host]
R1#

I have verified that this link local address is indeed on the far end of the GigabitEthernet2 connection and is not a local interface.

It seems that unlike PING, the TELNET protocol requires that the exit interface specified when using the link local scope ID must be in the routing table. But what happens if you have the same link local address to two different routers? I tried labbing that up to and I find that I still get the same error that the interface is not in the IPv6 routing table. But I also find that I am unable to connect via telnet using the link local address, even though I’ve configured both routers to accept telnet requests:

R2#telnet fe80::1           !where fe80::1 is the link local address of
Trying FE80::1 ...          ! both R1 and R3 connected to R2
% Connection refused by remote host

R2#telnet fe80::1%gigabitethernet0/1
% IPv6 routing table gigabitethernet0/1 does not exist
R2#

My conclusion is that the telnet protocol, at least in the IOS versions we are using, requires the exit interface to be included in the routing table. (It doesn’t make sense since we’re talking about link local addresses, but there you go.) Using the link local address directly seems to get a response, but doesn’t actually work.

I suggest that you always use the global unicast address for telnet since you want to be able to access the devices from anywhere in the network.

Sorry I couldn’t have been more helpful!

Laz

hi Laz, thanks very much
Regards

1 Like

A post was merged into an existing topic: IPv6 Multicast BSR and RP Example

Hi Laz,

If we use IGP anycast then there might be a possibility host packets are received by two anycast routers and both reply to the packet due to Load balancing per packet .Please correct me if I am wrong .Thx

BR//ZAMAN

Hello Mohammad

If the routing protocol that is being used provides an equal cost for an anycast address, then there could be a problem.

For the Internet, this is not a problem, because BGP will always choose a single route for a particular destination. For IGPs such as OSPF or EIGRP that support equal cost load balancing, an equal cost for an anycast address will result in some packets going to each of the hosts configured with that address. For this reason, it is best to make sure that equal cost load balancing for the anycast addresses will not occur. This can be done by “preferring” a particular anycast destination by changing the reported metric using one of various methods (route maps, bandwidth adjustment, routing protocol metric adjustments).

More information about the problems that equal cost paths to anycast addresses can cause can be found in RFC4786.

I hope this has been helpful! Stay healthy and safe!

Laz

Hi,

Are fe80::1 and fe8::1 the same things?

i’m not sure about that.

Is this a valid Ipv6 number?

Thanks

Hello Giovanni

These are different addresses. The rule is to remove any leading zeros not trailing zeros. So the hextet fe8 would be written out in full as 0fe8 which is different than fe80.

So if you have any hextet with less than four digits, you must add leading zeros until you have four digits.

More about the rules of shortening IPv6 addresses can be found here:


The address beginning with fe80 is a link-local address as explained in this lesson. The 0fe8 address however belongs to the range of 0800::/5 which is reserved but currently unassigned according to the IETF, so it can’t be used officially (when interconnecting with other networks, or the Internet.) However, you are able to assign it to an interface and internally on your network, and within that scope, it should function correctly.

I hope this has been helpful!

Laz

If I am not mistaken then
FE81:2:3:4:5:6:7:8/126
FEA9:8:7:6:5:4:3:2/64
Both would be link local address right?

Hello Mahmudur

Yes, you are correct. Both of the addresses you mention begin with 1111 1110 01 in binary, so strictly speaking, they are both link-local addresses. However, as stated in the lesson, a host will typically create a link-local address where beyond the first pre-defined 10 bits, the next 54 bits are set to zero, and the prefix used is typically /64.

So you will never see these two IP addresses as link-local addresses on any host unless you manually configure them yourself rather than have them automatically defined.

I hope this has been helpful!

Laz

Hello Liz Sir,
I have two question in IPV6 unique local Address.

  1. In unique local IPV6 address, I didn’t understand the term of (FD) that what does it mean
  2. What is the purpose of L-bit?
    Please see the output I have highlighted by yellow colors those explanation which I didn’t understand.

Regards,
Ajmal

Hello Ajmal

In the lesson, it states that a unique local address uses the FC00::/7 address space. In binary, the first seven bits of that address become: 1111 110. However, as stated in the lesson, the L bit must be set to 1 when you use it. The L bit is the 8th bit in the IPv6 address. That means that all Unique local addresses will begin with the binary sequence 1111 1101 where the 8th bit (L bit) is set to 1. That means that in hexadecimal, that will become FD (F=1111 and D=1101).

Now the L bit is used to indicate that the address should be used privately, similar to IPv4 private addresses. When this is set to 1, it indicates that the address is locally assigned, and should not be routable on the Internet. RFC 4193 states that these addresses should be used inside a private organization. In essence, this was done in order to keep the rest of the addresses (where the L bit is set to 0) available for future use.

I hope this has been helpful!

Laz

1 Like

Thank you Sir, for the awesome explanation to my concern and now I understood

Regards,
Ajmal

1 Like

Hi Guys - what is the maximum amount of Global Unicast addresses that a single interface can have? I assume this is set in the IPv6 header somewhere?

Am I right in thinking that a single interface will only ever have one link local address?

Thanks,

Gareth.

Hello Gareth

According to RFC4291:

All interfaces are required to have at least one Link-Local unicast address…A single interface may also have multiple IPv6 addresses of any type (unicast, anycast, and multicast) or scope.

There is no inherent property of IPv6 that limits the number of addresses (of any type) an interface can have. In theory, you can have thousands! Practically speaking, however, some operating systems may modify how such a situation is to be implemented.

On a Cisco device, for example (after some testing) I have found that you cannot assign more than one link-local address, although the RFC seems to indicate that this is allowed. If you attempt to add a second one, the first configuration is overwritten. However, you can assign as many global unicast addresses as you like (as many as the memory of the device can hold!!) either in the same subnet or in different subnets… the router doesn’t seem to mind.

This is different behaviour from the IPv4 addresses since whenever you assign a new address it overwrites the old one (unless you use the secondary keyword to add a second address).

I hope this has been helpful!

Laz

Hi Laz,

I guess this makes sense. I was thinking that this might be set in the IPv6 header but I suppose if we had an interface with multiple Global Unicast addresses then each addresses flow would handled by different packet headers.

Thanks,

Gareth.

Hello Gareth

The interesting thing about IPv6 is that it has been used, in experimental scenarios so far, to address things other than interfaces or NIC cards. Some research institutions are experimenting with addressing particular pieces of content. So the photo you upload of yourself on Instagram could be assigned an IPv6 address and can be uniquely located by anyone on the Internet simply by using that address.

Online videos have been separated into 2MB parts, each of which is assigned an IPv6 address, and you can view that video just by using a text file script with a list of the sequential IPv6 addresses that correspond to all the parts that comprise that video. In this way, all the parts of the video can be downloaded in real-time from various geographical locations, depending on where you are physically, so that the video can be reassembled and displayed on your screen in the most efficient way possible.

So you see, IPv6 is moving away from IPv6 address per device, or even per interface, and is being assigned to objects and things that you never would have imagined using IPv4.

Just some interesting stuff that’s going on.

I hope this has been interesting!

Laz

1 Like

Hello Liz Sir,
Hope your fine,
Would you please give a little explanation about unique local of IPV6 Address, I did understand exactly the field of Global ID or (40 bit) , please explain the field of Global ID with an example.

Best Regards,
Ajmal

Hello Ajmal

I’m doing fine, how about you? Unique local addresses are like IPv4 private addresses. They all begin with the binary bits 1111 1101. These eight bits are described in detail in the lesson.

Now the next 120 bits are divided into three sections. The Global ID, the Subnet ID and the Interface ID. These divisions are actually used for all types of IPv6 addresses, especially global unicast addresses. They are useful because they allow you to create a hierarchy of addressing. Take a look at the following breakdown of an IPv6 address:

Typically blocks of IPv6 addresses are provided to particular regions of the world by the Internet Assigned Numbers Authority (IANA). Each region is assigned a particular list of global IDs and these are administered by the Regional Internet Registry (RIR) organizations. These RIRs then distribute particular blocks of global IDs to ISPs in the area. Each global ID can then be subdivided using the subnet ID as needed. The interface ID is something that customers can administer themselves.

Now having said all of that, such a hierarchy is useful, and even necessary when dealing with global unicast addresses. However, unique local addresses, are essentially private addresses that cannot be routed on the Internet, and that are used within a private enterprise network behind some sort of NAT. Therefore there are no restrictions on what the global ID or subnet ID can be. Although hierarchical addressing is useful even within an enterprise network, the IPv6 address space is so vast that there is no need to stick with this particular hierarchy if you choose not to. As stated in the lesson, you can use whatever you like.

I hope this has been helpful!

Laz

1 Like

Thank you Sir, I’m doing fine as well.
Got it.

Best Regard,

Ajmal

1 Like