내가 시도 할 때 :
$ ip -6 addr
나는 다음과 같은 것을 얻는다 :
inet6 fe80::d773:9cf0:b0fd:572d/64 scope link
기계 자체에서 핑하려고하면 :
$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host
$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument
내가 뭘 잘못하고 있죠?
답변
로 시작하는 모든 IPv6 주소 fe80:
는 IPv4 169.254.*.*
주소 와 동일 합니다. 즉, 링크 로컬 주소입니다. 즉, 해당 세그먼트에 특별히 연결된 NIC를 사용하여 직접 연결된 네트워크 세그먼트에서만 도달 할 수 있습니다. 그러나 IPv4와 달리 NIC가 링크 로컬 IPv6 주소 와 하나 이상의 글로벌 IPv6 주소를 동시에 갖는 것은 정상입니다 .
fe80:
IPv6 주소는 로컬 링크 이므로 핑할 때 사용할 네트워크 인터페이스를 지정해야합니다.
예:
$ 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 주소를 핑할 수 있습니다.
$ 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
...
답변
에서 man ping6
사용중인 인터페이스를 Ping에 알려야합니다.
-I 인터페이스 주소
소스 주소를 지정된 인터페이스 주소로 설정하십시오. 인수는 숫자 IP 주소 또는 장치 이름 일 수 있습니다. IPv6 링크 로컬 주소를 핑 (ping) 할 때이 옵션이 필요합니다.
예를 들어, 인터페이스가 eth0
다음 과 같은 경우
ping6 -I eth0 fe80::xxxxxx
또는 -I
옵션이 없는 경우 :
ping6 fe80:xxxxxx%eth0