阿里云使用 CGNAT 地址当作内部 DNS 服务地址, 导致和 Tailscale 冲突

68 天前
 Curtion

使用阿里云服务器运行tailscale后导致服务器无法连接外网, 经过检查是 DNS 的问题,最初怀疑是magic dns问题,在 AI 的帮助下,经过一系列的排查, 又是打印 iptables 日志,又是怀疑 ip rule, 最终终于找到问题了所在。

tailscale默认会新增一条iptables规则-A ts-input -s 100.64.0.0/10 ! -i tailscale0 -j DROP, 但这种做法却符合RFC 6598,阿里云使用 CGNAT 中的地址当作内部 DNS 地址的做法不符合规范(AI 结论)

阿里云和 tailscale可以看到非常多人中招...

网上看到几个解决办法

  1. 手动删除 DROP 规则, 会再次生成
  2. 顶部增加规则, 允许阿里 DNS 通过, 也可能会被覆盖
  3. 脚本轮询(删除/增加), 增加系统维护复杂度, 随着版本更新可能失效
  4. 修改服务器 DNS, 无法使用阿里云内网产品服务, 需要更换系统源
  5. 使用netfilter-mode=off, 会导致无法访问其它节点的子网服务
2641 次点击
所在节点    程序员
15 条回复
mohumohu
68 天前
可是 zerotier 完全不新增任何 iptables 规则
jayeli
68 天前
之前也遇到过,没深入找问题所在,换到腾讯云了
Shiroka
68 天前
世界是一个巨大的草台班子
lnbiuc
68 天前
有一个办法是在 VPC 网络设置里通过 DHCP Option 修改下发的 DNS
阿里云内网服务和 Tailscale 冲突这个无解,两个都用了 10.64 网段,而且都不愿意修改
Tink
68 天前
caomingjun
68 天前
我把 tailscale 装 docker 里了
zsh2517
68 天前
我目前设置了 --accept-dns=false 和 --netfilter-mode=off 。

不过不是因为 DNS 冲突问题,而是因为不知道什么原因,会导致 ping 一个地址会有很大的等待时间(但是 DNS 过程,以及 ping 的延迟都很快。会卡在中间某些阶段)。curl 有没有忘了

手动排查后是 ts 添加的 iptables 规则的问题。而我目前还没有网段的节点( op 提到的 5 ),就先关掉了。

---

话说 5 ,如果禁用 netfilter mode 了,能不能靠手动写路由表实现访问子网
zenghx
68 天前
我把 dns 改成了 223.5.5.5
RobinHuuu
68 天前
手工加规则就行
realpg
68 天前
以前帮人调试遇到过一次
内网解析不了域名

不过阿里云这么用应该是不符合预设的用途 但是符合规范

类似合法但不合理那种
ligolas
68 天前
netfilter-mode=off 不会导致无法访问其他节点的子网,因为 iptables 增加的规则只是为了增加安全性,与这个 CVE-2019-14899 有关
gam2046
67 天前
@mohumohu #1 但是我遇到过一个奇怪的问题,阿里云用 zerotier 一段时间后,一般是几天,会突发性的连不上任何其他节点,维持几分钟到半小时不等,会自行恢复。

原因不明,猜测也许是大量的 UDP ,导致其认为被攻击了,短暂的进了黑洞
songtianlun
67 天前
原来是这个原因吗。。

我的阿里云服务器从某一天开始就一直无法正常 DNS 解析了,发工单排查了半天也没办法,后面干脆放弃了,反正也不怎么需要连外网。原来是跟 tailscalle 冲突了啊。。
mawerss1
66 天前
遇到了这个问题,官方文档上有给出说明可以看一下:
https://tailscale.com/kb/1023/troubleshooting#selectively-disable-ipv4

官方给的解决方案是选择性的在特定节点上关闭 ipv4, 试了一下确实可以解决这个问题,但是如果你的机器没有 ipv6 的话大概率不能直连了,只能靠中转服务器中转,也不算是治本了
mawerss1
66 天前
https://tailscale.com/kb/1304/ip-pool
设置 ip-pool 可以解决 虽然还在 beta 中 没问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1145108

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX