coolsnowwolf / lede

Lean's LEDE source
Other
29.59k stars 19.5k forks source link

IPV6 DDNS获取IP异常 #5170

Closed yubanmeiqin9048 closed 3 years ago

yubanmeiqin9048 commented 4 years ago

1.关于你要提交的问题

Q:是否搜索了issue (使用 "x" 选择)

2. 详细叙述

A:第一次启动可以获取到IP,但是之后就无法获取到IP了,使用的是阿里云域名解析,IPV6正常使用

(2) 路由器型号和固件版本

A:N1 R20.7.20

(3) 详细日志

Thu Jul 23 21:19:09 2020 user.warn ddns-scripts[18523]: IPV6: NO valid IP found Thu Jul 23 21:19:09 2020 user.warn ddns-scripts[18523]: IPV6: Get registered/public IP for 'XXX.xyz' failed - retry 15/0 in 60 seconds Thu Jul 23 21:20:10 2020 user.warn ddns-scripts[18523]: IPV6: NO valid IP found Thu Jul 23 21:20:10 2020 user.warn ddns-scripts[18523]: IPV6: Get registered/public IP for 'XXX.xyz' failed - retry 16/0 in 60 seconds Thu Jul 23 21:21:10 2020 user.warn ddns-scripts[18523]: IPV6: NO valid IP found Thu Jul 23 21:21:11 2020 user.warn ddns-scripts[18523]: IPV6: Get registered/public IP for 'XXX.xyz' failed - retry 17/0 in 60 seconds

keivenliao commented 4 years ago

你是不是屏蔽了ipv6的域名解析? 不过这个脚本获取域名IP的方式确实需要优化

keivenliao commented 4 years ago

081532 note : PID '6877' terminated by 'SIGTERM' at 2020-07-24 08:15 081537 : **** ** ** ** 081537 note : PID '11218' started at 2020-07-24 08:15 081537 : ddns version : 2.7.8-21 081537 : uci configuration: ddns.ipv6.domain='ipv6.xxx.com' ddns.ipv6.enabled='1' ddns.ipv6.interface='wan' ddns.ipv6.ip_interface='pppoe-wan' ddns.ipv6.ip_source='interface' ddns.ipv6.lookup_host='xxx.com' ddns.ipv6.password='PW' ddns.ipv6.service_name='aliyun.com' ddns.ipv6.use_ipv6='1' ddns.ipv6.username=' ddns.ipv6=service 081537 : verbose mode : 0 - run normal, NO console output 081537 : check interval: 600 seconds 081537 : force interval: 259200 seconds 081537 : retry interval: 60 seconds 081537 : retry counter : 0 times 081537 : No old process 081537 : last update: 2020-07-24 08:00 081537 : Detect registered/public IP 081537 : #> /usr/bin/nslookup xxx.com >/var/run/ddns/ipv6.dat 2>/var/run/ddns/ipv6.err 081537 WARN : NO valid IP found 081537 WARN : Error in 'expand_ipv6()' - invalid IPv6 found: '' expanded: '' 081537 info : Starting main loop at 2020-07-24 08:15 081537 : Detect local IP on 'interface' 081537 : #> ip -o addr show dev pppoe-wan scope global >/var/run/ddns/ipv6.dat 2>/var/run/ddns/ipv6.err 081537 : Local IP '240e:f8:b8:b0ca:aeb:c8c9:ec6:5789' detected on interface 'pppoe-wan' 081537 : Update needed - L: '240e:00f8:00b8:b0ca:0000:0000:0000:0000' <> R: 'invalid' 081537 : parsing script '/usr/lib/ddns/update_aliyun_com.sh' 081537 : #> /usr/bin/wget-ssl --no-hsts -nv -t 1 -O /var/run/ddns/ipv6.dat -o /var/run/ddns/ipv6.err --no-proxy 'http://alidns.aliyuncs.com/?Action=DescribeSubDomainRecords&SubDomain=ipv6.xxx.com&Format=JSON&TTL=600&Version=2015-01-09&AccessKeyId=&SignatureMethod=HMAC-SHA1&Timestamp=2020-07-24T00%3A15%3A37Z&SignatureVersion=1.0&SignatureNonce=897d6f03-a46f-4c9b-9564-60f1470846ea&Signature=LPqKIRz1Sp5bqFE7VBzbQMZ2jlg%3D' 081538 :

: {"TotalCount":1,"RequestId":"B057525B-8582-4CA6-95E7-E41D65611CEC","PageSize":20,"DomainRecords":{"Record":[{"RR":"ipv6","Line":"default","Status":"ENABLE","Locked":false,"Type":"AAAA","DomainName":"xxx.com","Value":"240e:00f8:00b8:b0ca:0000:0000:0000:0000","RecordId":"19965544583928832","TTL":600,"Weight":1}]},"PageNumber":1} 081538 :

ID: 19965544583928832,

: AAAA 081538 info : Update successful - IP '240e:00f8:00b8:b0ca:0000:0000:0000:0000' send 081538 info : Forced update successful - IP: '240e:00f8:00b8:b0ca:0000:0000:0000:0000' send 081538 : Waiting 600 seconds (Check Interval)

================================================================================== 主要问题是采用了nslookup 方式获取ipv6的域名ip ,实际应该直接用api获取。我看了一下update_aliyun_com.sh 似乎不是这个脚本调用的。

yubanmeiqin9048 commented 4 years ago

你是不是屏蔽了ipv6的域名解析? 不过这个脚本获取域名IP的方式确实需要优化

没有屏蔽啊,就是第一次启动DDNS的时候可以获取,之后就不行了,然后计划任务里添加每10分钟让DDNS重启一次就可以正常获取了。但是我还是希望可以不通过这种方式直接开箱即用。

keivenliao commented 4 years ago

image

问题出在/usr/lib/ddns/dynamic_dns_functions.sh 这个文件的获取域名地址的方法上,请大佬优化吧。

yubanmeiqin9048 commented 4 years ago

image

问题出在/usr/lib/ddns/dynamic_dns_functions.sh 这个文件的获取域名地址的方法上,请大佬优化吧。

ε=(´ο`*)))唉,现在DDNS基本处于废用状态,只能通过脚本定时重启使用