It doesn't use external addresses for everything, rather every host "can have" an external address. In order for routing to work, at all, there still has to be scopes for network topology.. and being on-link ( directly connected ) is a major one. those f** addresses are link-local and interfaces have them regardless of connectivity. It's a main part of a host being able to receive a router advertisement and self-configure an IP addresses via SLAAC without any user configuration or network specifics. Unlike IPv4 where a DHCP server has to be configured with addresses and is responsible for keeping track of the leases, when they expire, which are available etc etc, IPv6 had to figure a way around doing that. Can you imagine DHCP servers having to be configured with the shear number of available addresses IPv6 can provide? And then try to keep track of them.. among other issues. IPv6 just requires a linked router to be given a /64 or smaller prefix it's allowed to advertise.. and every set amount of time it sends out an advertisement on the all-link address ( important, as if the advertisement wasn't limited to only clients directly connected to the router they could find their way into other subnets/networks and cause havoc ) with the prefix and other info required so hosts can make their own addresses and handle conflict checks etc themselves. There's lots of good information online, as it seems you're interested in IPv6 I'd suggest reading up a bit.. there's a lot of impressive additions and perplexing pitfalls that come a long with it.