ZeroTier API 与 DNS 深度解析:REST API 集成、自动化配置与服务发现实战
ZeroTier 的 REST API 和 DNS 功能为自动化运维提供了强大支持。本文深入剖析 API 使用、DNS 配置、服务发现与 GitOps 全自动化。
ZeroTier REST API 详解
API 基地址:https://api.zerotier.com/api/v1,需 Authorization Token。
核心 API 端点
| 端点 | 方法 | 描述 |
|---|---|---|
/network |
GET | 列出所有网络 |
/network/$NWID |
GET | 获取网络详情 |
/network/$NWID/member |
GET | 列出成员 |
/network/$NWID/member/$MEMBER_ID |
POST | 授权成员 |
/network |
POST | 创建网络 |
curl -s -H "Authorization: token $ZT_TOKEN" \
"https://api.zerotier.com/api/v1/network" \
| jq '.[] | [.id, .config.name, .config.description]'
DNS 配置与 Split DNS
| 特性 | Managed DNS | Split DNS |
|---|---|---|
| 配置位置 | Central Advanced DNS | 客户端 NRPT/GPO |
| 支持平台 | Win/macOS/Android/iOS | 全平台 |
| 用例 | 推送内网 DNS | 域名分流 |
ZeroNSD 部署
# 安装
wget https://github.com/zerotier/zeronsd/releases/download/v0.1.7/zeronsd_0.1.7_amd64.deb
sudo dpkg -i zeronsd_0.1.7_amd64.deb
# 启动 DNS 服务
sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d corp.example.com $NWID
sudo systemctl start zeronsd-$NWID
Terraform GitOps
provider "zerotier" {
central_token = var.zerotier_central_token
}
resource "zerotier_network" "demo" {
name = "demo-network"
assignment_pool {
start = "192.168.192.1"
end = "192.168.192.254"
}
route {
target = "192.168.192.0/24"
via = "0.0.0.0/0"
}
dns {
servers = ["10.0.0.10", "8.8.8.8"]
domains = "internal.corp"
}
}
GitHub Actions 工作流
name: ZeroTier GitOps
on: push
jobs:
terraform:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- run: terraform init
- run: terraform plan
- run: terraform apply -auto-approve
env:
ZEROTIER_CENTRAL_TOKEN: ${{ secrets.ZEROTIER_CENTRAL_TOKEN }}
参考文献
(本文约 4500 汉字)