Files
lisglosips/docs/infra-check.md
T

7.2 KiB
Raw Permalink Blame History

S02 网络与端口验收报告

验收时间:2026-06-20
环境:本地 KVM 开发服务器,Tailscale 三机专网
结论:开发网络满足当前联调要求;阿里云安全组尚未创建,本报告给出未来迁移清单。

1. 环境边界

代号 Tailscale IP 开发阶段角色
A 100.90.90.90 核心通信网关
B 100.90.90.91 API、缓存、数据库、录音和监控
T 100.93.185.30 客户/供应商 SIP 测试端
开发机 100.91.249.119 SSH 与运营 Web 管理端
  • 用户确认 A/B/T 均为本地开发服务器,开发完成后再迁移阿里云。
  • 开发阶段服务间通信统一使用 Tailscale IP,不依赖 ens18 上的两个局域网地址。
  • 本次未修改 Tailscale ACL、主机防火墙、路由、云安全组或服务配置。
  • 尚未部署的端口使用绑定到指定 Tailscale IP 的短时测试监听器;测试后已确认进程退出。

2. 双向 RTT

每个方向先建立 Tailscale 直连,再发送 20 个 ICMP 样本:

来源 目标 丢包 平均 RTT 最大 RTT
A B 0% 0.648 ms 2.389 ms
B A 0% 0.595 ms 0.741 ms
A T 0% 0.434 ms 0.668 ms
T A 0% 0.559 ms 1.711 ms
B T 0% 0.593 ms 0.757 ms
T B 0% 0.561 ms 1.496 ms

结论:三机稳态 RTT 均小于 1 ms,丢包为 0,满足开发联调目标。

Tailscale 接口 MTU 为 1280。A 到 B/T 的 1200 字节 ICMP payload、DF 模式各 5 次均为 0% 丢包,平均 RTT 分别为 0.634 ms 和 0.657 ms。

3. 路径稳定性

  • 三机稳态均为局域网 direct 路径,没有经过 DERP。
  • 当前开发机到 A/B/T 建立直连后的延迟约为 10/9/3 ms。
  • 测试过程中开发机到三机的 Tailscale 路径曾发生一次重新协商,约一分钟内 SSH 新连接超时;恢复后无需重启服务。
  • 开发机测得最近 DERP 为 San Francisco,约 166 ms。若局域网 direct 失败并退化到 DERP,SIP/RTP 联调体验会明显下降。
  • 建议开发时保持局域网 UDP 41641 可达,并监控 tailscale ping 是否显示 direct

4. 已执行端口验收

来源 目标 协议/端口 用途 结果
T A UDP 15060 规划中的客户 SIP 入口 PASS,收到双向 ACK
T A UDP 30000 RTP 范围下界 PASS,收到双向 ACK
T A UDP 40000 RTP 范围上界 PASS,收到双向 ACK
A T UDP 30000 RTP 反向下界 PASS,收到双向 ACK
A T UDP 40000 RTP 反向上界 PASS,收到双向 ACK
A T UDP 5060 T 机现有 OpenSIPS PASSOPTIONS 返回 SIP 484
开发机 B TCP 443 规划中的运营 Web HTTPS PASS,收到 ACK
A B UDP 9060 HEP PASS,收到 ACK
A B TCP 6379 Redis 热路径 PASS,收到 ACK
A B TCP 3306 网络路径测试 PASS;安全策略仍禁止远程直连
B A TCP 9100 Prometheus 抓取 Exporter PASS,收到 ACK
B A TCP 22 录音拉取/运维路径 PASS,TCP 建连成功;历史开发端口,后续迁移为 <SSH_ADMIN_PORT>

T 机 SIP OPTIONS 测试产生 1 条 sip_trace 记录;accmissed_calls 未增加。该测试记录保留用于审计。

5. 开发阶段最小暴露矩阵

Server A 入站

协议/端口 允许来源 要求
TCP <SSH_ADMIN_PORT> 开发机、B SSH 管理与 B 拉取录音;保留 Key 登录
UDP 15060 T 开发 SIP 信令
UDP 30000-40000 T 开发 RTP;与 RTPEngine 配置一致
TCP 9100 B Node Exporter,仅监控抓取
RTPEngine 控制端口 本机回环 不允许 Tailscale 或局域网访问

Server B 入站

协议/端口 允许来源 要求
TCP <SSH_ADMIN_PORT> 开发机 SSH,保留 Key 登录
TCP 443 开发机 运营端 HTTPS
UDP 9060 A HEP
TCP 6379 A、B 本机 Redis;密码/ACL、专网绑定
TCP 3306 B 本机 MySQL 仅回环地址,不开放给 A
TCP 3000/9090 B 本机 Grafana/Prometheus 经反向代理或 SSH 隧道访问
应用内部端口 B 本机 由 Nginx 代理,不直接暴露

Server T 入站

协议/端口 允许来源 要求
TCP <SSH_ADMIN_PORT> 开发机 SSH,保留 Key 登录
UDP 5060 A 测试 SIP
UDP 30000-40000 A 测试 RTP
TCP 80、TCP/UDP 111 默认禁止 现有 Apache/rpcbind 非 SIP 联调必需

6. Tailscale 与主机防火墙要求

  • Tailscale ACL 应只允许上述源目标组合;当前主机侧无法读取 tailnet 管理端 ACL,需在 Tailscale 管理台复核。
  • 主机防火墙仍必须实施默认拒绝,不能只依赖 Tailscale ACL。
  • 服务应绑定 Tailscale IP 或 127.0.0.1,避免因 ens18 双地址选择错误而暴露到局域网。
  • 开发环境也不得将 Redis、MySQL、RTPEngine 控制端口和 OpenSIPS MI 暴露给整个 tailnet。
  • 防火墙落地分别属于 S03(B)和 S18/S19(A),不在 S02 修改。

7. 未来阿里云安全组清单

迁移前网络

  1. A、B 放在同一 VPC,优先同一可用区;业务间使用私网 IP。
  2. 为 A/B 分配唯一私网地址和唯一默认路由,不复制本地 machine-id、网卡 UUID 或磁盘 UUID。
  3. T 继续作为外部测试端,通过 A 的公网 SIP/RTP 入口验收。
  4. 数据库、Redis、HEP、Exporter 和录音搬运走 VPC 私网。

安全组 A

开发阶段采用 UDP 30000-40000;迁移阿里云前应根据并发量重新计算并尽量缩小范围。

方向 协议/端口 来源/目标
入站 UDP 15060 已登记客户、供应商和 T 的公网 IP
入站 UDP 30000-40000 已登记 RTP 对端;无法固定时配合限速和监控
入站 TCP <SSH_ADMIN_PORT> 管理 VPN/堡垒机安全组;B 私网 IP 仅用于录音拉取;保留 Key 登录
入站 TCP 9100 B 的安全组或私网 IP
出站 TCP 6379 B 私网 IP
出站 UDP 9060 B 私网 IP

安全组 B

方向 协议/端口 来源/目标
入站 TCP 443 运营人员允许地址;上线后可按产品策略扩大
入站 TCP 80 可选,仅跳转 HTTPS
入站 TCP <SSH_ADMIN_PORT> 管理 VPN/堡垒机安全组;保留 Key 登录
入站 UDP 9060 A 的安全组或私网 IP
入站 TCP 6379 A 的安全组或私网 IP
入站 TCP 3306 禁止公网;同机应用优先 127.0.0.1
入站 TCP 3000/9090 不开放公网,经 Nginx/VPN/隧道访问
出站 TCP <SSH_ADMIN_PORT> A 私网 IP,仅录音拉取需要时

实际创建安全组时应先记录规则截图/导出,按最小权限逐条添加,并从允许和禁止来源分别复测。

8. 验收结论

  • A/B/T 双向可达、稳态 RTT 和 MTUPASS。
  • SIP 15060、T SIP 5060、RTP 30000-40000 双向路径:PASS。
  • B 的 Web 443、HEP 9060、Redis 6379 路径:PASS。
  • B 到 A 的监控与 SSH 路径:PASS。
  • 最小暴露矩阵:已形成。
  • 阿里云控制台操作清单:已形成,未执行。

S02 验收通过。开发环境的主机防火墙和服务绑定将在后续任务按服务器逐步实施。