ipv6地址丢失的临时解决方法
自从网络架构变更,ipv6分配地址改为DHCPv6之后,发现树莓派上eth0
网卡上的ipv6地址经常不翼而飞。由于现在仅剩下ipv6全球单播地址这个公网ip,ip地址的丢失会导致dogcraft.top部分服务中断,一开始是用定时脚本自动添加写死的ipv6地址到网卡,虽然之前DHCPv6分配的ipv6地址一直没变,但是现在它变了,所以不得不用更高级的方法解决这个问题,顺便还需要更新dns服务商那里的AAAA解析记录。
dog6ipr.py
这个是获取公网ipv6地址,然后写到文件里面,这个api接口是从NewFuture/DDNS里面找来的。这个脚本开机启动运行一次就行。
1 | #!/usr/bin/env python3 |
dog6ip.py
从文件里面读取ip地址,然后转化成标准输出。
1 | #!/usr/bin/env python |
最终使用脚本将IP地址添加进网卡定时运行,半小时运行一次。
1 |
|
开机脚本
1 | sleep 60 |
这样做暂时是有效的,但是治标不治本。深层次的原因可能是ip6table在启动nat之后或者linux在开启ipv6转发之后会自动屏蔽ipv6的dhcp数据包或者是自动禁用ipv6地址自动配置,而且上级网关发下来的ipv6地址有过期时间,这个可能是根本原因。但网上没有相关资料(或者是没找到),毕竟用树莓派+ip6tables+radvd搞ipv6-nat66的同时ISP通过dhcpv6分发ipv6地址而且过期时间短的应该不多。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.