간단히 말해서:각 IPv6 주소가 특정 NIC에 할당된 이유를 보여줄 수 있는 명령이 있습니까? 예를 들어 어떤 라우터가 접두사를 광고했는지 표시합니다.
세부 사항
ULA 접두사가 포함된 IPv6 주소를 사용하도록 네트워크를 설정했습니다 fdaa::/64
. 이것은 작동합니다. 주소는 다음과 같습니다.
$ ip addr show dev enp0s25
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:ae:ed:72:7d:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.16/24 brd 192.168.0.255 scope global enp0s25
valid_lft forever preferred_lft forever
inet6 fdaa::6666:b3ff:0:d1a/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2001:4479:7caa:9372:baae:edff:fe72:7d5f/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fdaa::baae:edff:fe72:7d5f/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::baae:edff:fe72:7d5f/64 scope link
valid_lft forever preferred_lft forever
여기에 공개 2001:
주소, 링크 로컬 fe80:
주소가 있지만둘내 ULA 서브넷의 주소입니다 fdaa:
.
두 개의 주소가 있으면 잘못될 수 있으므로 이 서브넷에는 하나의 주소만 필요합니다. 예를 들어, 이 컴퓨터는 잘못된 IP로 응답하기 때문에 DNS 서버로 사용할 수 없습니다.
host fdaa::ba27:ebff:feea:ad9d fdaa::baae:edff:fe72:7d5f
;; reply from unexpected source: fdaa::6666:b3ff:0:d1a#53, expected fdaa::baae:edff:fe72:7d5f#53
;; reply from unexpected source: fdaa::6666:b3ff:0:d1a#53, expected fdaa::baae:edff:fe72:7d5f#53
;; connection timed out; no servers could be reached
IP를 제거하고 네트워크 인터페이스를 다시 시작하면 다시 가져오므로 내 네트워크의 무언가가 해당 접두사를 브로드캐스팅하는 것 같지만 그것이 어디서 오는지 어떻게 알 수 있는지 잘 모르겠습니다.
각 IP 주소를 나열하고 할당 방법, 사용 가능한 접두사로 광고한 라우터 등을 설명하는 명령이 있습니까?
답변1
몇 번의 실험 끝에 다음 명령을 사용할 수 있다는 것을 알았습니다.
ip monitor
무슨 일이 일어나고 있는지 목록이 표시됩니다. 한 터미널에서 이를 실행하고 다른 터미널에서 네트워크 인터페이스를 다시 시작하면 각 IP 주소가 제거된 다음 다시 추가되면서 인쇄되는 줄을 볼 수 있습니다.
IP가 어디에서 오는지 정확히 설명하지는 않지만 그것이 (라우터 광고)라는 것을 알려주고 ra
내 라우터 구성을 볼 수 있게 해줍니다.
내 경우에는 고정 IP로 할당된 동일한 접두사를 광고했지만 fdaa::/64
(이 서브넷의 고정 IP가 동적 IP 할당을 방지한다고 가정) 결국 고정 IP와 동적 IP를 모두 얻게 되었습니다. 서브넷.동일한 서브넷, 이로 인해 문제가 발생했습니다. 이것이 버그인지에 대해서는 여전히 두 가지 생각이 있습니다.
많은 생각 끝에 라우터를 변경하여 서로 다른 접두사(실제로 /48
는 동일한 ULA에 있는 서로 다른 서브넷 fdaa:0:0:1/64
)를 광고했습니다. 그러면 두 서브넷이 모두 동일한 ULA 할당에 적합하지만 서로 다른 서브넷이므로 컴퓨터가 응답을 발생시키지 않기 때문입니다. 두 서브넷에 모두 속하는 IP가 있는 경우 잘못된 IP입니다.
답변2
2001년 주소가 어디서 왔는지 확실하지 않습니다. 네트워크에 뭔가 광고가 있어야 합니다. 아마도 악성 장치를 식별하는 가장 쉬운 방법은 Wireshark를 사용하여 소스 MAC 주소를 보는 것입니다.
IPv6에서는 여러 주소를 갖는 것이 일반적입니다. DNS 서버 소프트웨어는 쿼리를 받은 것과 동일한 주소에서 응답해야 하지만 성능이 저하된 경우 올바른 주소를 사용하도록 구성할 수 있습니다. 서버를 운영할 때 어쨌든 서버에 고정 주소를 사용하는 것이 좋습니다. 매번 동일한 주소를 제공하기 위해 자동 구성에 의존하는 것은 까다로울 수 있습니다. 개인 정보 보호를 위해 시간이 지남에 따라 알고리즘이 변경되며, NIC가 손상되어 사람들이 NIC를 변경하면 자동 구성된 모든 주소도 변경된다는 사실을 잊어버리는 경우를 보았습니다. 클라이언트에게는 좋지만 서버에는 좋지 않습니다 :)