Jonas
发布于 2024-03-31 / 27 阅读
0
0

Tailscale阿里云DNS故障解决

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网段为云助手服务器使用。

https://help.aliyun.com/zh/ecs/user-guide/configure-network-permissions-for-the-cloud-assistant-agent

而巧合的是阿里云和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

100.64.0.0/10

100.64.0.0 – 100.127.255.255

4,194,304

专用网络

用于在电信级NAT环境中服务提供商与其用户通信。[3]

解决方式:

方法1:

修改阿里云默认DNS

方法2:

使用如下参数即可绕过tailscale默认Magic DNS

sudo tailscale up --netfilter-mode=off --accept-dns=false

参考链接:

https://zhuanlan.zhihu.com/p/653295049

https://nyan.im/p/troubleshoot-tailscale


评论