8

I have an IPv6 device with link local addressfe80::204:9fff:fe04:7fb5 (output of ifconfig is below). My machine has an address fe80::d939:2d31:6fe2:c203. I tried to ping both ways (from machine to device and device from machine) but all I get is Destination unreachable: Address unreachable (Exact output is provided below).

I spent quite some time looking at different forums trying to figure out what is the issue, but wasn't able to find an answer. I also should note that I'm not very familiar with IPv6. I also did a lot of reading on the topic and just not sure if there is an issue with the settings.

ifconfig output from a device:

eth2      Link encap:Ethernet  HWaddr 00:04:9f:04:7f:b5
          inet6 addr: fe80::204:9fff:fe04:7fb5/64 Scope:Link
          inet6 addr: 2001:c001:5afe:b1::e20:d001/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1898 (1.8 KiB)

ifconfig output from my machine:

enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::d939:2d31:6fe2:c203  prefixlen 64  scopeid 0x20<link>
        ether 54:e1:ad:92:26:52  txqueuelen 1000  (Ethernet)
        RX packets 545  bytes 62724 (61.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4000  bytes 460567 (449.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xec200000-ec220000

ping output from machine to device

ping6 -I enp0s31f6 fe80::204:9fff:fe04:7fb5
ping6: Warning: source address might be selected on device other than enp0s31f6.
PING fe80::204:9fff:fe04:7fb5(fe80::204:9fff:fe04:7fb5) from :: enp0s31f6: 56 data bytes
From fe80::d939:2d31:6fe2:c203%enp0s31f6: icmp_seq=1 Destination unreachable: Address unreachable
From fe80::d939:2d31:6fe2:c203%enp0s31f6: icmp_seq=2 Destination unreachable: Address unreachable
From fe80::d939:2d31:6fe2:c203%enp0s31f6: icmp_seq=3 Destination unreachable: Address unreachable

ping output from device to machine

ping6 -I eth2 fe80::d939:2d31:6fe2:c203
PING fe80::d939:2d31:6fe2:c203(fe80::d939:2d31:6fe2:c203) from fe80::204:9fff:fe04:7fb5%eth2 eth2: 56 dat
a bytes
From fe80::204:9fff:fe04:7fb5%eth2 icmp_seq=1 Destination unreachable: Address unreachable
From fe80::204:9fff:fe04:7fb5%eth2 icmp_seq=2 Destination unreachable: Address unreachable
From fe80::204:9fff:fe04:7fb5%eth2 icmp_seq=3 Destination unreachable: Address unreachable
3
  • I havn't done much with ip6 myself. But could you post the output from your network config from both devices. I don't see a link local for either of your devices. Plus below appears that the device you are trying to connect to has a teredo or global address: > inet6 addr: 2001:c001:5afe:b1::e20:d001/64 Can you ping6 it? can you ping6 ::1 on either device? Additionally, how are you connecting to the device from your pc? Are you using a router/switch? Or a direct link using an ethernet cable? If so, is it crossover or straight through cable?
    – Mr_____T
    Commented May 22, 2019 at 1:18
  • 2
    Instead of using -I option, use the normal format for link-local addresses including the scope ID, e.g.: ping6 fe80::204:9fff:fe04:7fb5%enp0s31f6 Commented May 22, 2019 at 2:24
  • I've finally found the references I was looking for and realised there were minor details which pushed my answer way off. Apologies for the misdirection. Commented May 22, 2019 at 5:26

1 Answer 1

13

[You should check your firewall/ip6tables rules. That should just work -- assuming, of course, that the two devices are connected directly]

When pinging a link-local ipv6 address, you could also include the link specification via the %-syntax:

ping6 fe80::dfef:2fb9:b91c:89a0%l_br0
PING fe80::dfef:2fb9:b91c:89a0%l_br0(fe80::dfef:2fb9:b91c:89a0%l_br0) 56 data bytes
64 bytes from fe80::dfef:2fb9:b91c:89a0%l_br0: icmp_seq=1 ttl=64 time=0.615 ms
...

(notice the ...%l_br0; l_br0 is the name of my bridge; you'll have to use ...%enp0s31f6 or ...%eth2 with your addresses).

When using netcat, etc you'll have to use the % syntax as they have no way to specify the interface as ping6 has via -I. Example, on a machine listen with:

nc -l fe80::dfef:2fb9:b91c:89a0%em0 8888

And connect from the other with:

nc fe80::dfef:2fb9:b91c:89a0%l_br0 8888

(the first machine with the em0 interface is running OpenBSD; the second with the l_br0 interface is running Linux).

You must log in to answer this question.

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