저는 IPv6 세계를 처음 접했습니다.
동일한 네트워크에 있는 다른 호스트의 주소 로 ping을 시도하고 있지만 fc00::a6:32:67:c9:23
지금까지는 작동하지 않았습니다(링크 로컬 유니캐스트 주소를 사용하여 장치에 ping을 보낼 수는 있지만).
로컬 호스트(핑이 발생하는 곳)의 내 네트워크 구성은 다음과 같습니다.
host1$ ip addr
2: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 10:4a:7d:cd:e6:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.55.61/24 brd 192.168.55.255 scope global dynamic noprefixroute wlp6s0
valid_lft 348sec preferred_lft 348sec
inet6 fe80::68b0:2809:2bab:2e8b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: enx000ec6a6aea4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0e:c6:a6:ae:a4 brd ff:ff:ff:ff:ff:ff
inet 192.168.55.198/24 metric 1024 brd 192.168.55.255 scope global dynamic enx000ec6a6aea4
valid_lft 599sec preferred_lft 599sec
inet6 fc00::e:c6a6:aea4/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::2576:c20e:e91d:7677/64 scope link noprefixroute
valid_lft forever preferred_lft forever
로컬 라우팅 테이블은 다음과 같습니다.
$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2001:db8:100:1ff:ff:ff:ff:ff dev enx000ec6a6aea4 proto static metric 1024 pref medium
fc00::/64 dev enx000ec6a6aea4 proto kernel metric 256 pref medium
fe80::/64 dev wlp6s0 proto kernel metric 1024 pref medium
fe80::/64 dev enx000ec6a6aea4 proto kernel metric 1024 pref medium
default via 2001:db8:100:1ff:ff:ff:ff:ff dev enx000ec6a6aea4 proto static metric 1024 pref medium
대상 호스트의 인터페이스는 다음과 같습니다.
host2$ ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether dc:a6:32:67:c9:23 brd ff:ff:ff:ff:ff:ff
inet 192.168.55.187/24 brd 192.168.55.255 scope global dynamic noprefixroute eth0
valid_lft 599sec preferred_lft 524sec
inet6 fc00::a6:32:67:c9:23/64 scope global tentative noprefixroute
valid_lft forever preferred_lft forever
inet6 2001::a6:32:67:c9:23/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::a790:54e2:224b:f14/64 scope link
valid_lft forever preferred_lft forever
tentative
대상 호스트의 내 접두사 IP 주소 옆에 왜 ?가 있는지 궁금합니다 .fc00
아는 사람 있나요? 이것이 내 핑 문제의 원인입니까?
답변1
소스 호스트에는 다음이 포함됩니다.
inet6 fc00::e:c6a6:aea4/64 scope global
출력에는 ip -6 route
해당 네트워크에 대한 경로가 표시되지 않으며 기본 ipv6 경로도 표시되지 않습니다. 소스 호스트는 대상 주소에 도달하는 방법을 모릅니다.
로컬 시스템에 해당 주소를 할당하면 자동으로 적절한 경로가 생성됩니다.
host1$ ip addr add fc00::e:c6a6:aea4/64 dev eth0
host1$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
fc00::/64 dev eth0 proto kernel metric 256 pref medium # <-- this one here
fe80::/64 dev eth0 proto kernel metric 1024 pref medium
하지만 두 번째 문제가 있습니다. 주소가 fc00::e:c6a6:aea4/64
네트워크에 있다는 것입니다 fc00::/64
. 그러나 대상 주소는 fc00::a6:32:67:c9:23/64
네트워크에 있습니다 fc00:0:0:a6::/64
. 즉, 에 자동으로 생성된 경로가 있어도 host1
의 목적지 주소에 도달할 수는 없습니다 host2
.
테스트 설정에서 이것이 작동하려면 두 시스템 모두에 라우팅을 추가해야 합니다.
- 에서는
host1
경로를 추가해야 합니다fc00:0:0:a6::/64
.
host1$ ip route add fc00:0:0:a6::/64 dev eth0
- 에서는
host2
경로를 추가해야 합니다fc00::/64
.
host2$ ip route add fc00::/64 dev wlan0
이러한 변경을 수행한 후 fc00::a6:32:67:c9:23
다음에서 성공적으로 핑할 수 있습니다 fc00::e:c6a6:aea4
.
[root@host1 ~]# ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
altname eno2
altname enp0s31f6
inet6 fc00::e:c6a6:aea4/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ed9c:756f:92a:ef21/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@host1 ~]# ip -6 route | grep -v fe80
::1 dev lo proto kernel metric 256 pref medium
fc00::/64 dev eth0 proto kernel metric 256 pref medium
fc00:0:0:a6::/64 dev eth0 metric 1024 pref medium
[root@host1 ~]# ping -c2 fc00::a6:32:67:c9:23
PING fc00::a6:32:67:c9:23(fc00::a6:32:67:c9:23) 56 data bytes
64 bytes from fc00::a6:32:67:c9:23: icmp_seq=1 ttl=64 time=107 ms
64 bytes from fc00::a6:32:67:c9:23: icmp_seq=2 ttl=64 time=15.3 ms
--- fc00::a6:32:67:c9:23 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 15.287/61.178/107.070/45.891 ms