引言
Tailscale 传统上在单一 tailnet(连接设备的安全私有网络)内运行。然而随着组织规模扩大,对多个隔离网络的需求日益增长。多 Tailnet 支持正是为此设计——允许单个 Tailscale 组织托管多个共享同一身份提供商(IdP)的 tailnet。这一功能解决了开发/预发布/生产环境隔离、客户服务隔离或沙箱测试等场景,且无需碎片化的身份管理。
本文深入解析多 tailnet 管理机制,并探讨跨 tailnet 访问的解决方案。
多 Tailnet 管理
启用多 Tailnet
多 tailnet 功能目前为 Alpha 阶段(截至 2026 年文档),需联系 Tailscale 销售团队启用:
- 提供显示名称(最多 65 个字符,支持字母、数字、空格、撇号、连字符)。
- 指定所有者(现有用户邮箱)。
- 选择是否"列出"(在登录选择器中可见)或未列出。
所有 tailnet 共享相同的域名和 IdP(例如 Google Workspace、Okta)。未来更新可能支持混合 IdP。
用户体验
- 登录选择器:用户登录时选择 tailnet。未加入的 tailnet 显示在底部(除非未列出)。
- 管理控制台切换:个人资料下拉菜单 → 选择 tailnet。
- 设备认证:OAuth 期间选择 tailnet 或使用各 tailnet 的认证密钥。
策略与配置
- 独立策略:ACL、标签、设备、设置均独立管理。
- 组同步:在一个 tailnet 启用后,可跨所有 tailnet 引用组(只读)。
- 用户审批:可限制加入。
ACL 示例(tailnet-policy 文件):
// Tailnet 1: group1 访问预发布环境
{
"acls": [
{"action": "accept", "src": ["[email protected]"], "dst": ["tag:staging:443"]}
],
"tests": [
{"action": "check", "src": ["[email protected]"], "dst": ["tag:staging:443"], "expect": "deny"}
]
}
可视化策略编辑器同样支持多 tailnet 配置。
程序化 Tailnet(API)
API 可创建仅设备类型的 tailnet(无人工用户):
- 适合产品中对每个客户进行隔离的场景。
- 返回用于 API 管理的 OAuth 客户端。
跨 Tailnet 访问的挑战
Tailscale tailnet 之间相互隔离——无原生联盟机制。设备无法同时加入多个 tailnet(路由、iptables、DNS 会产生冲突)。
官方共享功能(Beta)
共享特定机器(非子网/标签):
- 进入 Machines 页面 → Share → 邮件/链接。
- 接收者接受(需要所有者/管理员/IT 管理员授权)。
- 默认隔离:仅允许入站连接。
- MagicDNS:
<主机名>.<tailnet>.ts.net。 - ACL 生效:使用接收者邮箱或
autogroup:shared。
跨 Tailnet 访问方案
| 方案 | 适用场景 | 局限性 |
|---|---|---|
| 官方共享(Beta) | 临时跨组织访问 | 无法共享子网/标签 |
| Tailscale Funnel | 暴露服务至公网 | 仅单向暴露 |
| 自建 DERP 中继 | 跨 tailnet 流量汇聚 | 需额外基础设施 |
| 第三方网关 | 复杂跨网络需求 | 增加复杂性 |
共享设备的 ACL 设计
最佳实践:利用 autogroup:shared 简化跨 tailnet 访问控制:
{
"acls": [
{"action": "accept", "src": ["autogroup:shared"], "dst": ["tag:shared-services:443"]}
]
}
设备同时多 Tailnet 场景
部分组织需要设备同时归属多个 tailnet(如审计、监控场景):
- 方案一:设备分组 + ACL 严格隔离(不推荐,同时加入会产生路由冲突)
- 方案二:Tailscale SSH + 跳板机模式(通过中间设备路由)
- 方案三:Headscale 自托管 + 跨组织 federation(需自建基础设施)
结论
多 tailnet 为大型组织提供了灵活的网络隔离方案,共享同一 IdP 大幅简化了身份管理。然而跨 tailnet 访问仍是 Tailscale 的软肋,官方共享功能目前能力有限。
最佳实践建议:
- 开发/预发布/生产环境使用独立 tailnet,通过共享功能暴露特定设备。
- 跨 tailnet 访问优先使用 Tailscale 内置共享(Beta)而非第三方方案。
- 需要深度跨网络隔离时,考虑 Headscale 自托管以获得更多控制权。
参考来源:Tailscale 官方文档(Multi-Tailnet Alpha)、Tailscale 博客。