1

I'm trying to get my head round IPv6. I've stumbled on something which surprised me, and I'm looking to understand this better in terms of networking:

Do Link Local addresses remove the need for a router to have multiple routable IP addresses?

As I understand it: IPv4 subnets are used to identify addresses which could be found using ARP. Beyond that they are used as logical groups of IP addresses for routing, where all IP addresses in a group can be contacted via the same route (next hop). All setups that I've seen have given each router multiple IP addresses, one for each subnet it's attached to. That is, each physical subnet needed its own logical IP subnet and a router attached to multiple subnets would need an IP address in each.

However under IPv6 ARP is gone and replaced by NDP. When I look on my own VM, it doesn't even know how big it's subnet really is. It thinks it's on a /64 but in fact it's in a much larger subnet. The entire /64 subnet is dedicated to my VM and its gateway is already outside that.

This suggests to me that IP subnets are subtly different under IPv6. It suggests that unlike ARP, NDP can detect physically connected routers without the routers having an IP on the same subnet.

My question is really this: If a physical subnet is composed entirely of routers, does the subnet need its own IPv6 subnet, or can / will the routers just use Link Local Addresses for that subnet:

Subnet-With-IP  <--Router-->  Subnet-no-IP  <--Router-->  Subnet-With-IP

2 Answers 2

1

A router is just a host on a network that knows how to communicate with other networks. A host needs to have a gateway (router) on its network to be able to communicate with devices on a different network.

Link-local addresses are still IP addresses. IPv6 allows, even requires, multiple IP networks on a single interface. A router could be on any or all of those networks.

Yes, you can connect routers with only link-local addresses, but that really complicates support and troubleshooting. For example, you cannot ping a router interface that only has a link-local address from a different network.

Based on many of the IPv6 protocols, you should really only use /64 networks, except for point-to-point networks (/127) and loopbacks (/128). Using networks of other sizes breaks some things in IPv6. See RFC 5375, IPv6 Unicast Address Assignment Considerations, Appendix B. Considerations for Subnet Prefixes Different than /64 and RFC 7421, Analysis of the 64-bit Boundary in IPv6 Addressing among other sources.

1

tl;dr: Depends.

Let me see if I can parse this out.

IPv4 subnets are used to identify addresses which could be found using ARP. Beyond that they are used as logical groups of IPs for routing, where all IPs in a group can be contacted via the same route (next hop).

To be more precise, in an IPv4 (sub)network, all the hosts can directly address each other and can respond to broadcasts. Hosts outside the subnet can be reached through a gateway. The network portion of the address identifies the topological location of the host.

When I look on my own VM, it doesn't even know how big it's subnet really is. It think's it's on a /64 but in fact it's in a much larger subnet. The entire /64 subnet is dedicated to my VM and it's gateway is already outside that.

If that is in fact the case, your VM is misconfigured. Subnetting and gateways work the same on IPv4 and IPv6. Your VM knows it's on a /64 because that's how it's configured (manually or otherwise). The gateway address is in the same /64. You may or may not have only one host (VM) on that subnet, but you could have many, many more (2^64, to be exact).

If a physical subnet is composed entirely of routers, does the subnet need its own IPv6 subnet, or can / will the routers just use Link Local Addresses for that subnet?

Link local addresses ARE IPv6 addresses -- they just aren't globally unique. And since all LL addresses are in the same subnet, whether they can be used for routing depends on the routing protocol used. For some, like OSPFv3 or static, you don't need globally unique addresses. For BGP, you do. IS-IS doesn't use layer 3 addresses anyway, so the question doesn't apply to it.

7
  • I thought link local addresses were derived from the MAC and therefore globally unique? I also thought that the IPv6 standard stipulates that routers MUST NOT route link local addresses. tools.ietf.org/html/rfc5156 page 2, "2.4". It gives the name "link-scope" further suggesting they should be contained within the link. Jun 30, 2017 at 14:19
  • The more I read this the more it seems to be written on the assumption that IPv4 and IPv6 are the same. From everything else I read, they have significant differences around the subject of router / gateway discovery and addressing. Eg: edge-cloud.net/2013/08/07/… Jun 30, 2017 at 14:38
  • 3
    @PhilipCouling, link-local addresses do not need to be derived from the MAC address. Some layer-2 protocols use MAC addresses, and some use 48-bit MAC addresses, some use 64-bit MAC addresses, some use something else entirely, and some do not use any addressing. IPv6 works on all of them, and it has link-local addresses for all. You can also manually configure link-local addressing. You cannot route link-local addresses, but that does not mean that they are not IP addresses. IANA maintains the IANA IPv6 Special-Purpose Address Registry (also for IPv4) which tells if a range is forwardable.
    – Ron Maupin
    Jun 30, 2017 at 15:02
  • @PhilipCouling Yes, there are significant differences, but as far as subnetting and routing, they are the same. Host determine if another host is on the same subnet the same way. Host use a gateway the same way. IPV6 devices have a forwarding table that works the same way.
    – Ron Trunk
    Jun 30, 2017 at 15:08
  • @RonTrunk Link-local addresses are not routable and you cannot determine if a link-local address is on the same subnet in the same way you can with other addresses. Link-local addresses were the subject of this question. Jun 30, 2017 at 15:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.