When examining IPv6 configuration on Linux systems using ifconfig
, you'll notice addresses with Scope:Link
. These are IPv6 link-local addresses, which differ fundamentally from IPv4 addresses in their scope and behavior.
Key characteristics of link-local addresses:
- Always begin with
fe80::/10
prefix - Automatically configured through EUI-64 format (derived from MAC address)
- Only valid within the local network segment (link)
- Used for neighbor discovery and router communication
IPv4 doesn't have an equivalent to IPv6's scoped addressing. The closest IPv4 concepts would be:
# IPv4 equivalent (conceptual only) 169.254.0.0/16 - Automatic Private IP Addressing (APIPA)
However, IPv4's APIPA is fundamentally different as it's a failover mechanism rather than a core addressing feature.
Devices can communicate using these addresses within the same broadcast domain. Try this ping test:
ping6 fe80::224:90ff:feaa:bb1a%eth0
Note the %eth0
syntax - this specifies the outgoing interface, crucial for link-local communication.
To explicitly configure a link-local address:
ip -6 addr add fe80::1/64 dev eth0
View all IPv6 addresses with scope information:
ip -6 addr show
For persistent configuration on RHEL 6, edit /etc/sysconfig/network-scripts/ifcfg-eth0
:
IPV6INIT=yes IPV6ADDR=fe80::224:90ff:feaa:bb1a/64
Common troubleshooting steps:
- Verify IPv6 is enabled in kernel:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
- Check firewall rules:
ip6tables -L
- Test neighbor discovery:
ping6 ff02::1%eth0
(all nodes multicast)
The Scope:Link
notation in your ifconfig
output indicates these are IPv6 link-local addresses (LLA). These addresses:
- Are automatically configured on all IPv6-enabled interfaces
- Always fall within the
fe80::/10
prefix range - Are only valid and routable within the local network segment (broadcast domain)
The EUI-64 format you observed combines the MAC address with the fe80::
prefix:
# Conversion process example:
MAC: 00:24:90:AA:BB:1A
Modified EUI-64: 0224:90ff:feaa:bb1a
IPv6 LLA: fe80::224:90ff:feaa:bb1a/64
Yes, other devices can ping this address within the same L2 domain. Try this from another host:
ping6 -I eth0 fe80::224:90ff:feaa:bb1a%eth0
Note the %eth0
syntax specifies the outgoing interface since link-local addresses aren't globally unique.
IPv4 doesn't have an equivalent scope field because:
- IPv4 link-local addresses (169.254.0.0/16) are treated as regular addresses
- Scope is an IPv6-specific architectural concept (RFC 4007)
- IPv6 embeds scope information directly in address semantics
To explicitly configure a link-local address (though usually unnecessary):
ip -6 addr add fe80::1/64 dev eth0
# Verify with:
ip -6 addr show dev eth0
For interface-specific commands, always specify scope:
ip -6 route add fe80::/64 dev eth0 metric 256
Link-local addresses are essential for:
- Neighbor Discovery Protocol (NDP)
- DHCPv6 communication
- Router advertisements
But firewall rules should still control access:
ip6tables -A INPUT -s fe80::/10 -j ACCEPT
ip6tables -A OUTPUT -d fe80::/10 -j ACCEPT