Subject: Re: IPv6 local link address mystery?
To: None <apriebe@aip.de>
From: None <itojun@iijlab.net>
List: current-users
Date: 08/02/1999 21:44:48
>I have a problem(?) with my IPv6 LAN - I am new to the IPv6 business so
>maybe this is a silly question.
>I have two v6 capable devices on my LAN. One is a Cisco (running IOS
>brburke-ipv6-v113_5_5_T-release 139), the other is a i386 running
>-current (as of a few weeks ago, i.e. before the elf change).
>The i386 is NOT configured as a router. It runs route6d.
>During boot it gets assigned the link local address:
> fe80:1::2a0:24ff:fe53:5890
>The Cisco gets a link local address
> FE80::260:70FF:FE62:7735
>and recognizes a neighbour FE80::2A0:24FF:FE53:5890 (NOTE the missing 1:!!!).

	Please read sys/netinet6/IMPLMENTATION (and inet6(4)).
	The "1" is an interface index, just for kernel internal use.  
	Link-local addresses are local to the network medium, so
	if you have two or more network interfaces, you may see the same
	"fe80::Z" on both side of the interface.
	Also, on some architectures (like Sun SparcStation) they assign same
	MAC addres to multiple interfaces, so your interfaces may have the
	same "fe80::Y" for both sides.

				fe80::Z
				  |
		==+===============+===
		  | fe80::Y
		your machine
		  | fe80::Y
		==+===============+===
				  |
				fe80::Z

	To disambiguate fe80::Ys on the routing table, NetBSD-current (= KAME)
	kernel embeds interface index into the link-local address.  Also,
	for disambiguating fe80::Zs you'll need to specify the outgoing
	interface on commands that support link-local addresses (ping6 -I
	interface).  API-wise fe80::Zs are disambiguated by RFC2292 IPv6
	advanced API.

	Link-local addresses are NOT for daily use.  Please get a global IPv6
	prefix from your upstream and use global address for daily use.

>phil:~>/sbin/ping6 FE80::260:70FF:FE62:7735
>PING6(56=40+8+8 bytes) fe80::2a0:24ff:fe53:5890 --> fe80::260:70ff:fe62:7735
>16 bytes from fe80::260:70ff:fe62:7735, icmp_seq=0 hlim=255 time=2.093 ms

	Please do "ping6 -I name-of-interface FE80::260:70FF:FE62:7735"
	otherwise link local address is ambiguous for the kernel.

>Ping from the Cisco back to the NetBSD machine works fine too:
>sam#ping ipv6 fe80::260:70ff:fe62:7735
>Output Interface: Ethernet0
>Type escape sequence to abort.
>Sending 5, 100-byte ICMP Echos to FE80::260:70FF:FE62:7735, timeout is 2 seconds:
>!!!!!
>Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

	This is the correct way to ping your NetBSD node from cisco node.

>PS Is it a good idea to put link local IPv6 addresses into /etc/hosts?

	No please don't.

itojun