kkkgo / UE-DDNS

Universal Embedded DDNS Shell Script
https://blog.03k.org/post/ue-ddns.html
GNU General Public License v3.0
178 stars 17 forks source link

针对当前从网卡获取地址的一个BUG #4

Closed arcbishopw closed 8 months ago

arcbishopw commented 10 months ago

大佬你好,又是我。当前遇到的问题是这样的: 在路由器多次重启之后,网卡会获得多个IPV6公网地址,当前脚本默认是从第一个记录获取数据,并没有判断该地址是否处于'detached'状态。导致更新出错。以下是状况实例。 address epair update

kkkgo commented 10 months ago

执行ip a看看输出。 另外重新生成脚本试试。

arcbishopw commented 10 months ago

执行ip a看看输出。 另外重新生成脚本试试。

那么就有一个很尴尬的问题,这是个freeBSD的系统,默认没有ip这个包,repo里面一夜没有iproute2或iproute这两个包,重新生成脚本我试一下

arcbishopw commented 10 months ago

另外,这是重新生成时脚本获取到的地址: 6

kkkgo commented 10 months ago

重新生成时脚本获取到的地址是否符合预期?(下载新的脚本)

arcbishopw commented 8 months ago

并不符合预期,在上述情况当中,地址xxxx:xxxx:b7f3:xxxx:: 已经被判定为detached,路由器上转发表内相关记录已经删除,因此该地址从Internet侧来看网络不可达。但由于地址排序在前面,所以会被脚本优先选定为当前ipv6地址。因此更新出来的记录也是一个网络不可达的地址。网络可达的地址应该为xxxx:xxxx:b7f4:xxxx:: 。 实际上,已经标记为detached的地址在新建连接的时候不应该被认作是仍然可用的地址。 在某些路由系统的默认设定当中,一定会产生多个IPV6地址同时存在的情况,以routeros为例: image 这种情况下,“受到抨击” = detached,开启了隐私功能的windows通信时实际上使用的是“首选”临时IPV6地址,但IPV6地址仍然可用。“受到抨击”仅用于之前有效的连接,新连接不会再继续使用这个地址,直到地址超时从系统当中删除。

kkkgo commented 8 months ago

我的意思,脚本更新过了,用新脚本试试

arcbishopw commented 8 months ago

我的意思,脚本更新过了,用新脚本试试

应该,没有问题,ISSUES先关闭算了?等再出故障我再开一个串?