시도하면
$ ip -6 addr
다음과 같은 결과가 나타납니다.
inet6 fe80::d773:9cf0:b0fd:572d/64 scope link
컴퓨터 자체에서 ping을 시도하는 경우:
$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host
$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument
내가 뭘 잘못했나요?
답변1
로 시작하는 모든 IPv6 주소는 fe80:
IPv4 169.254.*.*
주소와 동일합니다. 즉, 링크 로컬 주소이며 해당 네트워크 세그먼트에 특별히 연결된 NIC를 사용하여 직접 연결된 네트워크 세그먼트에서만 액세스할 수 있습니다. 그러나 IPv4와 달리 NIC가 링크 로컬 IPv6 주소도 갖는 것은 완전히 정상입니다.그리고하나 이상의 글로벌 IPv6 주소를 동시에 사용합니다.
IPv6 주소는 링크 로컬 주소 이므로 fe80:
핑할 때 사용할 네트워크 인터페이스를 지정해야 합니다.
예:
$ ping6 fe80::beae:c5ff:febe:a742
connect: Invalid argument
$ ping6 -I eth0 fe80::beae:c5ff:febe:a742
PING fe80::beae:c5ff:febe:a742(fe80::beae:c5ff:febe:a742) from fe80::beae:c5ff:febe:a742%eth0 eth0: 56 data bytes
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=2 ttl=64 time=0.167 ms
...
%
또한 다음 표기법을 사용하여 인터페이스를 주소 끝에 추가할 수도 있습니다 ping6 fe80::beae:c5ff:febe:a742%eth0
.
이 요구 사항은 링크 로컬 IPv6 주소에만 적용됩니다. 인터페이스를 지정하지 않고도 전역적으로 라우팅 가능한 IPv6 주소를 ping할 수 있습니다.
$ ping6 2a00:1450:400f:80a::200e # that's ipv6.google.com
PING 2a00:1450:400f:80a::200e(2a00:1450:400f:80a::200e) 56 data bytes
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=1 ttl=55 time=17.6 ms
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=2 ttl=55 time=19.6 ms
...
답변2
거기에서 man ping6
ping에 어떤 인터페이스를 사용하고 있는지 알려주어야 합니다.
-I 인터페이스 주소
소스 주소를 지정된 인터페이스 주소로 설정합니다. 매개변수는 숫자로 된 IP 주소 또는 장치 이름일 수 있습니다. 이 옵션은 IPv6 링크-로컬 주소를 ping할 때 필요합니다.
예를 들어 인터페이스가 다음과 같은 경우 eth0
:
ping6 -I eth0 fe80::xxxxxx
또는 -I
옵션이 없습니다.
ping6 fe80:xxxxxx%eth0