11

I'm on a RedHat 6 box. IPv6 is enabled by default, and all interfaces have been assigned an IPv6 address.

ifconfig reports that these IPv6 addresses have the Scope of 'Link'.

% ifconfig eth0 Link encap:Ethernet HWaddr 00:24:90:AA:BB:1A
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::224:90ff:feaa:bb1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

eth1 Link encap:Ethernet HWaddr 00:24:90:AA:BB:1B
inet addr:10.8.8.44 Bcast:10.8.8.255 Mask:255.255.255.0 inet6 addr: fe80::224:90ff:feaa:bb1b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

What does 'Scope:Link' mean? I see that the latter part of the IPv6 address is similar to the MAC address of the NIC. Are other devices on the same network segment able to ping this device, even though I have not explicitly set up an IPv6 address?

Why does this Scope not appear for my IPv4 addresses? Is "Scope:Link" a IPv6-only concept?

1

2 Answers 2

11

Link scope, fe80::/10 (it's practically implemented as a /64, but the whole /10 is reserved), is isolated to devices on a layer 2 segment. You can use a device's fe80 address to communicate within the segment, but you'll need an address with a different scope to do any communication that requires routing outside of the segment.


Regarding your edit: While the idea of a private addressing is certainly in place in IPv4 (169.254/16 and the RFC 1918 ranges), the implementation of those is somewhat different due to the prevalence of NAT. In contrast, link-scope addresses and the fc00::/7 range (which is roughly equivalent to the RFC1918 ranges of IPv4) exist and are used alongside the global address of each device.

Special handling is in place in many implementations to account for an address' scope that wasn't needed in IPv4 implementations.

0

169.254.0.0/16 is NOT "private" addressing. It is "Link Local" addressing.

However, as stated, Link Local addressing in IPv4 is very different (and much less useful) than Link Local addressing in IPv6.

In IPv6, you can't get global connectivity or a global scope address (except a statically assigned one) without first having a link local address. Link local addresses are used for resolving next hop routers, for OSPF adjacencies, for SLAAC and DHCPv6 and many other things in IPv6.

fd00::/8 (ULA Random) has a somewhat similar purpose and ideology to RFC-1918 addressing (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), but is quite different. In theory, you should use a reliably random process for producing the 40 bits needed (the x digits in fdxx:xxxx:xxxx::/48) to create a /48 prefix. Theoretically, this should make collisions among organizations joining their ULA addressed networks unlikely.

fc00::/8 (the other half of fc00::/7) was intended to be ULA registered, but the RFC received strong opposition and did not achieve consensus. The draft expired and while IANA has reserved fc00::/7 for ULA and fd00::/8 is designated for ULA Random, there is no RFC setting standards or enabling use of fc00::/8 at this time.

A host which has global IPv6 will have an interface report similar to the following:

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
    ether 68:fe:f7:07:11:6f 
    inet6 fe80::c19:132b:7ba:abc2%en0 prefixlen 64 secured scopeid 0x7 
    inet6 2001:db8:930::200:5 prefixlen 64 
    inet xxx.xxx.xxx.5 netmask 0xffffff00 broadcast xxx.xxx.xxx.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect (1000baseT <full-duplex,flow-control>)
    status: active

(The above is a statically assigned interface)

Note, however, that it still has both a Link Local address (fe80::c19:132b:7ba:abc2/64) and a Global Unicast Address (2001:db8:930::5/64).

I've changed the IPv6 prefix to the one reserved for documentation and redacted the IPv4 prefix.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .