解决Tailscale iptables规则导致CGNAT地址冲突问题
运营商在CGNAT地址空间(100.64.0.0/10)内分配私有IP地址给NAT网关后的客户,来防止与用户内部使用的私有IP地址发生冲突。Tailscale也使用CGNAT地址作为组网设备的IPv4地址。出于安全考虑,Tailscale在Linux上默认会建立一个iptables规则来丢弃所有来自100.64.0.0/10的数据包,防止攻击者假冒私有网络内的设备进行攻击(NVD - CVE-2019-14899,Tailscale issue #3104)。然而,运营商或者一些大型组织也可能使用CGNAT地址为客户提供内部服务,Tailscale添加的丢弃规则将使得运行Tailscale的设备无法访问这些资源。例如,阿里云为其弹性计算服务器(ECS)提供的APT软件包源和DNS服务器就使用100.100.0.0/16网段,ECS上启动Tailscale后就无法解析域名,也无法获取APT软件包。 ...