Arch Linux를 마지막으로 몇 번 시작하는 동안 네트워크에 액세스할 수 없다는 것을 알았습니다. netctl
내 어댑터에 정적 IPv4 주소를 제공하기 위해 구성 파일을 사용하고 있는데 , 그 자체로는 잘 작동합니다.
그래서 로그를 확인해 보니 오류는 다음과 같습니다.
인터페이스 'enp0s25'에서 중복 주소 감지가 너무 오래 걸립니다.
netctl
그런 다음 코드를 사용하여 종료하고 1
네트워크를 구성되지 않은 상태로 둡니다.
netctl
중복 주소 감지는 구성 파일에 다음 줄이 포함되어 있을 때 사용되는 IPv6의 기능입니다 .
IPv6=stateless
IPv6은 자동으로 구성되어야 합니다. 누군가 문을 열다이것에 대한 질문Github 프로젝트에서 저자는 netctl
다음과 같이 주장합니다.
[...] DAD가 3초(기본값) 이상 걸리는 경우 네트워크가 복잡하거나 느리거나 잘못 구성되었을 수 있습니다.
그리고:
네트워크의 어떤 부분이 올바르게 구성되지 않은 것 같습니다. [...]
그런데 내 네트워크에 정확히 무슨 문제가 있는 걸까요? 매우 간단한 인프라입니다. ISP의 모뎀/라우터 콤보와 PC 2대, 무선 장치 몇 개, 디지털 TV 셋톱 박스 몇 개만 있으면 됩니다. 우리 집의 인터넷 품질은 일반적으로 매우 좋습니다. 문제는 몇 주 전에 시작되었습니다.
현재 해결책은 DAD를 비활성화하거나 시간 제한을 늘리는 것인데 둘 다 마음에 들지 않습니다.
답변1
DAD는 피드백 없이 작동해야 하기 때문에 본질적으로 느립니다.
DAD가 작동하는 방식은 인터페이스에서 주소가 활성화되기 전에 해당 IP 주소를 가진 호스트의 MAC 주소를 묻는 이웃 검색 요청이 전송되는 것입니다.
주소가 중복되면 해당 주소가 이미 있는 호스트가 응답하고 DAD는 빠르게 실패합니다.
그러나 주소가 올바르게 구성되면 중복이 발생하지 않으므로 요청에 응답하지 않습니다.
보낸 사람은 응답이 얼마나 빨리 올지 알 수 없으므로 기다려야 합니다. DAD가 완료되는 속도는 보낸 사람이 응답을 기다리도록 구성된 시간에 따라 달라집니다.
나머지 네트워크 구성 방식이 아니라 요청 보낸 사람의 구성에만 의존한다는 점은 주목할 가치가 있습니다. 복잡한 네트워크로 인해 DAD 속도가 느려질 것이라고 생각하는 사람은 아마도 그것이 어떻게 작동하는지 이해하지 못할 것입니다.
여러 요청을 중간 지연을 통해 전송하고 응답 없이 특정 시간이 경과한 후에만 주소를 할당하도록 기기를 구성할 수 있습니다. 이러한 구성은 분명히 DAD 속도를 저하시킵니다.
인터페이스에 IP 주소를 할당하는 시스템 호출은 DAD가 완료될 때까지 기다리는 것을 차단하지 않습니다. 그러나 DAD가 완료되기 전에 해당 주소에 소켓을 계속 바인딩하려고 하면 실패합니다. 이로 인해 부팅 중에 서비스가 시작되지 않는 경쟁 조건이 발생할 수 있습니다. 표시되는 오류 메시지는 이러한 경쟁 조건을 피하기 위해 DAD가 완료될 때까지 기다리도록 설계된 코드 조각에 의해 생성될 수 있습니다. 이러한 코드에서 쉽게 발생할 수 있는 실수 중 하나는 실제로 DAD가 중복된 주소로 인해 실패했는데도 DAD가 완료될 때까지 계속 기다리게 하는 것입니다.
어떤 경우에는 DAD로 인해 발생한 문제를 처리하는 가장 좋은 방법은 단순히 DAD를 비활성화하는 것입니다. 하지만 실제로 중복된 주소가 없는지 먼저 확인해야 합니다. 중복된 주소가 있는 경우 DAD를 활성화, 비활성화 또는 재구성해도 문제가 해결되지 않습니다.
귀하의 시스템이 IP 주소의 유일한 합법적인 사용자이고 일부 다른 노드가 해당 IP에 대한 ND 요청에 응답하는 경우 문제는 ND 스푸핑이며 이것이 해결해야 할 첫 번째 문제입니다.
그러나 IP 주소가 동적으로 구성되고 여러 노드 중 하나에서 IP 주소를 합법적으로 요청할 수 있는 경우에는 DAD를 사용하면 충돌을 방지하는 데 도움이 될 수 있으므로 비활성화해서는 안 됩니다.