MacBook Pro에서 링크 스코프 IPv6 멀티 캐스트 패킷이 갑자기 라우팅 할 수 없습니까?

StackOverflow https://stackoverflow.com/questions/1264948

문제

이것은 약간 모호한 질문이지만, 나는 혼란스러워서 누군가가 문제에 대해 더 많은 단서를 가질 수 있다고 생각했을 것입니다.

저의 동료는 몇 달 동안 MacBook Pro에서 IPv6 멀티 캐스트를 사용하는 사내 응용 프로그램을 성공적으로 실행하고 있지만 오늘 Mac은 멀티 캐스트 패킷 라우팅을 중단하기로 결정했습니다. 특히이 프로그램은이 오류를 인쇄합니다.

senddataudp (ff02 :: bead : cede : deed : feed@4) 네트워크 인터페이스에서 실패 [name = [en0] description = [] ip = [fe80 :: 222 : 41ff : fe21 : dfd4@4] netmask = [ffff : ffff : ffff : ffff ::] broadcast = [::]] (errno = 65/호스트로가는 경로 없음).

... 무엇이 잘못되었는지 잘 설명합니다 ... 표시된 IP 주소로 UDP 패킷을 보내려고했고, send ()는 errno = ehostunreach로 실패했습니다.

내가 이해하지 못하는 것은 IPv6 링크 스코프 멀티 캐스트 주소가 "도달 할 수 없음"을 유발할 수있는 이유는 무엇입니까? Link-Scope 멀티 캐스트에 대한 이해가 올바른 경우, 패킷은 로컬 이더넷 포트 (이 경우 EN0, 해당 기계에서 작동하는 경우) 만 나와야합니다.

멀티 캐스팅에 내가 놓친 것 또는 그의 기계가 방금 borked 되는가? 그는 아무것도 바꾸지 않았다고 말하면서 신비롭게 일을 멈췄다 고 말합니다.

도움이 되었습니까?

해결책

그것을 보는 데 도움이 될 수 있습니다 커널 소스. (특히, Egress IPv6 Packet Egress Path, IP6_output.c) 당신이 거기에있는 동안, 당신은 또한 그로 이어지는 소켓 통화를 볼 수도 있습니다.

멀티 캐스트의 경우, 당신이 그것을 만들고 있다고 가정합니다 ip6_output(),이 오류를 얻을 수있는 유일한 방법은 보낼 인터페이스를 지정하지 않는 것입니다. (오류 메시지가 인터페이스를 명시 적으로 언급하기 때문에 이상합니다)

이 MacBook의 무선 인터페이스가 이전이 아니었을 때 활성화되었을 가능성이 있습니까? 이제 "Link-Local"멀티 캐스트에 대한 아이디어가 모호합니까? 소켓을 사용할 때 인터페이스를 명시 적으로 지정하고 있습니까? 주소 끝에있는 @4는 나에게 이상하게 보입니다. (인터페이스 색인입니까?) 컨벤션은 일반적으로 사용하는 것입니다. % 인터페이스 스코프 ID의 경우 이전 답변과 그 주석에서 언급했듯이 보편적으로 지원되지 않습니다.

다른 팁

EN0이 여전히 링크-로컬 멀티 캐스트 요청을 전송할 수 있는지 여부를 테스트하려면 시도하십시오.

ping6 ff02::1%en0

이것은 모든 호스트에 연락하므로 많은 응답을 얻어야합니다 (재미를 위해 -w를 추가 해보십시오).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top