ddns异常排查小结
前一段时间吧博客和一些服务前移到了家里新买的工作站上,在稳定运行了半个月以后突然全部服务都不可用。连要更新的道理都没法更新,远程ssh也连不上用nc探测端口 发现所有的端口都不可用,但是ping的通
因为工作站是在家里ssh连接不上就实在没办法了,只能回家物理接触搞,每天上班回家什么都不想动,昨天周五到家早了一些彻底排查了下,
发现问题:
第一:是不是端口映射问题
前几天因为安装elk对路由器的端口映射做了修改,确认了端口转发规则,重启规则模块,还是有问题 任何端口都没有开放,当时就想难道联通把所有端口都关了,但是不会的,如果都关了所有通信都没法用,这个多虑了。
第二:确认工作站的问题
通过路由器的客户端列表,发现了问题,原来的工作站分配的ip消失了,这个就蛋疼了,工作站就一根电源线一根网线,当时想要不重启下试试,还是忍住了,不能跟以前一样遇到什么问题都要重启重装。要发现问题解决问题。
翻箱倒柜找到以前的老显示器和键盘(家里还是留一套键盘鼠标显示器,装系统什么的都用得到)。发现网络是通的但是ip变了 原来是123 现在变成124了,这个情况还是很少见,但是确实在规则允许毕竟是dhcp动态分配,那么先解决这个问题,centos8的静态ip配置
参考:How to configure a static IP address on RHEL 8 / CentOS 8 Linux
发现第一个方法 Method 1 – modifying interface configuration file manually 不管用,然后看到第三个方法,图形界面Method 3 – using nmtui 按照提示可行了,centos8根7还是不一样的
修改过后ip正常了,通过内网的探测端口也是开着的。那么就只能是外网的问题了。
第三:确认网络问题
整体的网络,因为是家庭网络所以需要实时更新对应的ip,最初是用内网的crontab更新dnspod,后来发现华硕的路由器有动态DDNS功能,那么久可以用华硕路由器本身的DDNS注册一个xxx.asuscomm.com,然后所有的域名都用A记录的方式进行解析到这个地址,
到这一步发现了问题,这个地址的地址跟实际的ip地址不对,还保留着上一次的ip地址,我看了下,发现了一个参数
Forced update interval (in days) 20 ,原来是20天才更新一次,关键这个更新的频率最少是天,这个就尴尬了,就算一天更新一次,假如遇到问题可能造成将近一天的服务不可用,问题定位到了那么久想怎么解决问题吧
解决问题:
第一:确认方案
原来的ddns这种方式还是可以用的,核心的问题是怎么动态快速的变更。这个时间多少合适呢。当然如果是线上服务那么这个必须要要求实时了。但是这个是我个人的那么考虑了下30分钟时可以接受的。
第二:方案实施
用什么方式更新这个ddns,一种是还是用最初的自己写脚本,去更新。第二路由器有对应的插件,有阿里云和腾讯云的插件。实验下来dnspod的插件不太好,aliddns这个插件还可以,就决定用这个插件来更新,现在运营商都提供对应的dns 管理api接口,申请对应的Ali Access Key ID,Ali Access Key Secret就可以了
保存,提交验证对应解析,确认了更新结果。
把所有的原来的域名所用到的xxx.asuscomm.com 都变更到新的域名商,其实只要一个*.xxx.com 就可以了。
第四:增加点保障
最后想了下,万一路由器这个插件出现问题,怎么办,想了下还是得开一个crontab实时记录ip,这个就不多说了,就是contab直接开启一个定时任务获取对应的ip
curl -s whatismyip.akamai.com
然后更新到我外网的服务器上。万一这个插件挂了,可以通过外网的数据直接看到对应的ip,然后进行相应的操作,
小结
以上:这次的核心问题是以来的ddns没有更新ip,导致所有的解析都异常,同时外网也无法获取最新的ip,远程处理也没办法处理,那么解决也是分两步:第一解决实时更新,第二在更新失败的时候能有获得对应的远程ip可以连上工作站进行对应的下一步处理,否则ip没了那只能老老实实回家物理连接上定位问题了。
还有就是感叹,现在国家的基础设施真的很屌,原来一直怕服务器断电什么问题,还买了个ups,但是买了一年了,除了发热很厉害好像也没有用上过。当然数据无价,不能掉以轻心,最后我还是决定舍弃了ups多备份,备多分。
最后想说,自己组建工作站的稳定性还是不如云服务商的,但是其中的乐趣不就在于折腾吗?当然性能是也是我中意的。自己搞个工作站 硬盘,cpu,内存随便折腾。就是爽。
自己维护gitlab,server,数据库,各种平台。真的是进一步有进一步的乐趣Joy resides in every step of growth