这是一个有点晦涩的问题,但我很困惑,我想也许有人对这个问题有更多的线索。
我的同事已经在他的 MacBook Pro 上成功运行了一个使用 IPv6 多播的内部应用程序几个月了,但今天 Mac 决定停止路由多播数据包。特别是,该程序打印此错误:
SendDataUDP(ff02::bead:cede:deed:feed@4) 在网络接口 [名称=[en0] 描述=[] IP=[fe80::222:41ff:fe21:dfd4@4] 网络掩码=[ffff: ffff:ffff:ffff::] 广播=[::]](errno=65/没有到主机的路由)。
...这很好地描述了出了什么问题...它尝试将 UDP 数据包发送到显示的 IP 地址,但 send() 失败,错误代码为 errno=EHOSTUNREACH。
我不明白的是,什么可能导致 IPv6 链路范围多播地址“无法访问”?如果我对链路范围多播的理解是正确的,则数据包只需从本地以太网端口发出(在本例中为 en0,该端口已启动并在该计算机上工作)。
我是否遗漏了多播的某些方面,或者他的机器只是坏了?他说他没有改变任何东西,只是神秘地停止工作了。
要测试 en0 是否仍然能够传输链路本地多播请求,请尝试
ping6 ff02::1%en0
这会联系所有主机,因此您应该会收到大量响应(为了好玩,请尝试添加 -w)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)