Tailscale阿里云DNS故障解决
一般使用tailscale up即可在Linux系统开启tailscale并自动组网。
但是在阿里云的ECS虚机中,开启tailscale会导致DNS解析出现问题,包括基本的yum都无法使用。
经过排查,由于tailscale开启后,会自动使用MagicDNS,而tailscale的MagicDNS使用的是和阿里云ECS里默认配置的DNS同一网段,因此造成了冲突。
在阿里云ECS上执行cat /etc/resolv.conf 查看本机DNS配置,可以看到阿里云配置的DNS为100.100.2.136和138。
[root@iZbp19hr870fbwhdlgqgypZ ~]# cat /etc/resolv.conf
options timeout:2 attempts:3 rotate single-request-reopen
; generated by /usr/sbin/dhclient-script
nameserver 100.100.2.136
nameserver 100.100.2.138而在我们Tailscale的控制面板里面可以看到MagicDNS的IP为100.100.100.100,
经过查询WIKI,100.100前缀的网段包含在100.64.0.0/8的保留网段内,不被公网所使用,意味着任何机构都可以使用该网段。
阿里云使用了100.0.0.0/8整个网段预留作为阿里云云助手Agent服务器使用,而100.100.0.0/16网段为云助手服务器使用。
而巧合的是阿里云和Tailscale都使用了100.100网段作为DNS服务,因此Tailscale启动后会自动把100.64.0.0/10网段全部屏蔽,因此影响了阿里云DNS的正常解析,造成了ECS服务器无法正常使用。
https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80
解决方式:
方法1:
修改阿里云默认DNS
方法2:
使用如下参数即可绕过tailscale默认Magic DNS
sudo tailscale up --netfilter-mode=off --accept-dns=false参考链接: