cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3367
Views
10
Helpful
6
Replies

Why are link local addresses necessary In IPv6

Reprovoid
Level 1
Level 1

Hi.

I'm having trouble understanding what the purpose of link local addresses are.Why can't mac addresses be used Initially like arp with IPv4.Why Is an address given In order to find another address ?

2 Accepted Solutions

Accepted Solutions

Peter Paluch
Cisco Employee
Cisco Employee

Hello,

In IPv6, every communication is carried as IPv6 packets. It means that whatever we want to send or receive in IPv6, it absolutely must be IPv6-encapsulated. This is quite a difference from IPv4 where the ARP, a key protocol necessary for L3/L2 mappings, was carried unencapsulated directly using Ethernet frames. In IPv6, functions of ARP have been moved into ICMPv6, an IPv6-based protocol. So if every IPv6-related communication, including L2 address resolution, is carried as IPv6 packets, there must always be a guarantee that there is an IPv6 address available that can be put into the source IPv6 address field of these packets.

Link-local addresses in IPv6 are exactly that: they are addresses that each and every network interface must have as soon as IPv6 is enabled on it. They are usually used as next hop addresses in routing tables (IGP protocols for IPv6 do not use global unicast IPv6 addresses for next hop addresses) and may be used during phases when no global unicast IPv6 address is available on an interface.

MAC addresses directly cannot be used because they belong to a different layer - they are related to network cards, not to IPv6 addresses. Moreover, not every data link layer technology has MAC addresses - think serial interfaces and PPP protocol, for example. However, it is true that the link-local addresses are usually initialized using the MAC address of the interface if it has any (i.e. the interface takes the FE80::/8 prefix, adds 56 arbitrary bits, usually set to 0, and fills the remaining 64 bits using the EUI-64 value directly derived from the interface's MAC address).

Why Is an address given In order to find another address ?

I am not sure about this question. Can you elaborate please?

Best regards,

Peter

View solution in original post

The link local address does continue to exist and to be used after the global unicast address is learned and is being used. There are some kinds of traffic that should be sent on only the local subnet. One example would be routing update traffic and there are other kinds as well. In IPv4 we send a routing protocol update to a multicast address and assume (hope) that the other devices that receive it will not forward it. But what if some device saw the multicast traffic and decided since it was running multicast routing that it should forward the multicast routing protocol update? IPv6 gives a way to explicitly say "this traffic should not be forwarded off of the local subnet". That is why the link local address continues to be used.

HTH

Rick

HTH

Rick

View solution in original post

6 Replies 6

Peter Paluch
Cisco Employee
Cisco Employee

Hello,

In IPv6, every communication is carried as IPv6 packets. It means that whatever we want to send or receive in IPv6, it absolutely must be IPv6-encapsulated. This is quite a difference from IPv4 where the ARP, a key protocol necessary for L3/L2 mappings, was carried unencapsulated directly using Ethernet frames. In IPv6, functions of ARP have been moved into ICMPv6, an IPv6-based protocol. So if every IPv6-related communication, including L2 address resolution, is carried as IPv6 packets, there must always be a guarantee that there is an IPv6 address available that can be put into the source IPv6 address field of these packets.

Link-local addresses in IPv6 are exactly that: they are addresses that each and every network interface must have as soon as IPv6 is enabled on it. They are usually used as next hop addresses in routing tables (IGP protocols for IPv6 do not use global unicast IPv6 addresses for next hop addresses) and may be used during phases when no global unicast IPv6 address is available on an interface.

MAC addresses directly cannot be used because they belong to a different layer - they are related to network cards, not to IPv6 addresses. Moreover, not every data link layer technology has MAC addresses - think serial interfaces and PPP protocol, for example. However, it is true that the link-local addresses are usually initialized using the MAC address of the interface if it has any (i.e. the interface takes the FE80::/8 prefix, adds 56 arbitrary bits, usually set to 0, and fills the remaining 64 bits using the EUI-64 value directly derived from the interface's MAC address).

Why Is an address given In order to find another address ?

I am not sure about this question. Can you elaborate please?

Best regards,

Peter

Thanks! I understand It more clearly now.I see why a local link address must be given Initially now so I'll rephrase the second part of my question.

Does the local link address exist only Initially until a global unicast address or a private address Is obtained by the host either through stateless or stateful dynamic or static configuration ?

  If I understood correctly the local link address will remain for all local subnet communications even after another address Is acquired.

The link local address does continue to exist and to be used after the global unicast address is learned and is being used. There are some kinds of traffic that should be sent on only the local subnet. One example would be routing update traffic and there are other kinds as well. In IPv4 we send a routing protocol update to a multicast address and assume (hope) that the other devices that receive it will not forward it. But what if some device saw the multicast traffic and decided since it was running multicast routing that it should forward the multicast routing protocol update? IPv6 gives a way to explicitly say "this traffic should not be forwarded off of the local subnet". That is why the link local address continues to be used.

HTH

Rick

HTH

Rick

Thank you! That makes sense.So It's an enhancement over IPv4.

Hello Rick,

Thanks for joining in the discussion!

I absolutely agree with your explanation, and I would like to mention one more aspect, although more conceptual. With IPv6, it is allowed and actually often used to have multiple addresses on a single interface. These addresses can arbitrarily be allocated from many IPv6 different subnets, or from a single IPv6 subnet. An IPv6 address therefore becomes a non-exclusive attribute of an interface. A link-local address provides a fixed, so-to-say anchor point in all the ensuing address variability. It is nice to see that if, for example, a router advertises multiple prefixes on a link using the Router Advertisement messages, stations still use its link-local address to forward packets through it to other networks.

Best regards,

Peter

Peter

Thank you. You make a very interesting point about the link local address becoming an anchor point and providing stability.

I find it interesting that while the concept of link local communication is sort of inherent in IPv4 (there are various types of packets that should only be sent on the local subnet) there is not an explicit mechanism in IPv4 to achieve it other than setting TTL = 1. With IPv6 they do provide an explicit mechanism which is the link local address.

HTH

Rick

HTH

Rick
Review Cisco Networking for a $25 gift card