[syslog-ng] IPv6 Link local address use with syslog-ng

Philip Bellino pbellino at mrv.com
Tue Nov 20 20:34:49 CET 2007

Here are many other sources on the use of the IPv6 Link-Local address that seem to support my original "nonsense", which I also include here:

> I believe the theory behind link local addresses was to have basic 
> native IPv6 connectivity right out of the box without any user 
> configuration.

I have included the text from these sources as well in case you cannot reach them.


Creation of the Link-Local Address
An IPv6 address is 128 bits long. It has two parts: a subnet prefix representing the network to which the interface is connected and a local identifier, sometimes called token. In the simple case of an Ethernet medium, this identifier is usually derived from the EUI-48 Media Access Control (MAC) address using an algorithm described later in this article. The subnet prefix is a fixed 64-bit length for all current definitions. Because IPv4 manual configuration is a well-known pain, one could hardly imagine manipulating IPv6 addresses that are four times longer. Moreover, a DHCP server is not always necessary or desired; in the case of a remote control finding the DVD player, a DHCP environment is not always suitable.

Because the prefix length is fixed and well-known, during the initialization phase of IPv6 NICs, the system builds automatically a link-local address. After a uniqueness verification, this system can communicate with other IPv6 hosts on that link without any other manual operation.”


IPv6 Autoconfiguration and Renumbering 
One of the most interesting and potentially valuable addressing features implemented in IPv6 is a facility to allow devices on an IPv6 to actually configure themselves independently. In IPv4 hosts were originally configured manually.


By default, the IPv6 protocol for the Windows Server 2003 family and Windows XP configures link-local addresses for each interface that corresponds to installed Ethernet network adapters. Link-local addresses have the prefix of FE80::/64. The last 64 bits of the IPv6 address is known as the interface identifier. It is derived from the 48-bit MAC address of the network adapter. For more information, see IPv6 interface identifiers . 


IPv6 is about more than extending the address space from 32 bits in IPv4 to 128 bits. IPv6hosts can also automatically configure themselves, even without the use of an address configuration protocol such as DHCP for IPv6 (DHCPv6).


It's important to start learning how to identify IPv6 addresses if you want to be able to troubleshoot network connectivity issues on IPv6 networks, and this is especially important as IPv4 to IPv6 migrations accelerate in different parts of the world. One common type of IPv6 address is the link-local address, a unicast address that is used by neighboring nodes on the same network link (that is, not separated by routers). Think of link-local addresses as the IPv6 form of Automatic IP Address Allocation (APIPA), a mechanism used by Windows computers to automatically assign themselves address of the form 169.254.x.y when a DHCP server is unavailable and no static addresses have been assigned. Link-local addresses are similarly self-assigned, and you can always recognize them by opening a command prompt on your computer and typing ipconfig. If the IP address displayed for your computer starts with fe80:: then you've got a link-local address that has been self-assigned using the Neighbor Discovery process used by IPv6. You can test this in Windows Vista, for example, since this platform has IPv6 enabled by default. The limitation of link-local addresses is that IPv6 routers cannot forward link-level traffic outside the link. 


 Link-local addresses are akin to the private, non-routable addresses in IPv4 (,, They are not meant to be routed, but confined to a single network segment. Link-local addresses mean you can easily throw together a temporary LAN, such as for conferences or meetings, or set up a permanent small LAN the easy way. 

Special IPv6 address ranges 
•	fe80::/10 linklocal: every host has at least one IPv6 address on any interface that does IPv6, and that is the linklocal address. Linklocal addresses are defined to not be routable on any account. As there are as many linklocal 'networks' for a machine as there are interfaces with different media behind them, one may need to have to discern between, say, fe80::1 on interface hme0 and fe80::1 on qfe2; the name of the area of validity of a linklocal address is 'scope', and is often written as %if, so eg I might have fe80::1%qfe2. That doesn't work quite that way on Solaris, therefore if one plans to have IPv6 running on more than one physical interface it's a very good idea to make sure that the interfaces have differing IPv6 addresses (easiest by making them have different MAC addresses). With linklocal, the prefix is implicitly known, and the host part gets built using DAD (see below). 


Configuration 1: Single Subnet with Link-local Addresses
The first configuration requires no additional configuration beyond installing the Microsoft® IPv6 Technology Preview protocol. This configuration consists of at least two nodes on the same subnet. In IPv6 terminology, the two nodes are on the same link with no intermediate routers.
Testing Connectivity Between Two Link-local Hosts
You can do a simple ping (an exchange of ICMPv6 Echo Request and Echo Reply messages) using IPv6 between two link-local hosts.


Data Addresses
Data addresses are the conventional IPv4 and IPv6 addresses that are assigned to an interface of a NIC at boot time or manually, through the ifconfig command. The standard IPv4 and, if applicable, IPv6 packet traffic through an interface is considered to be data traffic.


Link-local address 
Link-local addresses are designed for use on a single local link (local network). Link-local addresses are automatically configured on all interfaces. The prefix used for a link-local address is fe80::/10. Routers do not forward packets with a destination or source address containing a link-local address.


By default, Microsoft IPv6 configures link-local IPv6 addresses for each interface that corresponds to an installed Ethernet network adapter. Link-local addresses have the prefix FE80::/64. You can see your link local addresses by typing the ipv6 if command and looking for an interface with a link-level address of the form aa-bb-cc-dd-ee-ff. The preferred address is the link-local address for the interface. 


Link-local addresses are network addresses which are intended only for use in a local data link layer network, and not for routing beyond that network.
Link-local addresses are often used for network address autoconfiguration where no external source of network addressing information is available.

If you need more examples, I am sure I can email more to you.

I hope this helps.

-----Original Message-----
From: syslog-ng-bounces at lists.balabit.hu [mailto:syslog-ng-bounces at lists.balabit.hu] On Behalf Of Simon Arlott
Sent: Tuesday, November 20, 2007 12:41 PM
To: Syslog-ng users' and developers' mailing list
Subject: Re: [syslog-ng] IPv6 Link local address use with syslog-ng

On 20/11/07 13:41, Philip Bellino wrote:
> Bazsi,
> You are correct in that the Link Local address is only valid on the 
> local Lan and it is not routable.

Link local addresses are only valid on, and unique to, one link which is why the link has to be specified using the scope id.

> I believe the theory behind link local addresses was to have basic 
> native IPv6 connectivity right out of the box without any user 
> configuration.

This sounds like nonsense to me...

> Please note that the scope_id is not needed for Link Global IPv6 
> addresses.

However it may be useful to allow setting it anyway.

> I hope this helps.
> Phil

Simon Arlott

More information about the syslog-ng mailing list