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