3.5 KiB
3.5 KiB
Server T 客户模拟配置 Runbook
任务:S21 - Server T 客户模拟配置
完成时间:2026-06-21 15:28 +08:00
环境:本地 KVM Server T100.93.185.30
1. 变更范围
- 在 Server T 部署独立脚本目录
/opt/lisglosips-s21。 - 新增受控配置文件
/etc/lisglosips-s21/sip-accounts.env,权限0640 root:hector。 - 新增 OpenSIPS 测试域
s21.lisglosips.test。 - 新增两套 SIP 注册测试账号:
s21-reg-1001@s21.lisglosips.tests21-reg-1002@s21.lisglosips.test
- 新增两套 IP 认证测试条目:
s21-ip-1001:100.93.185.30/32s21-ip-1002:100.93.185.30/32
- 将 T 的 OpenSIPS
auth_db calculate_ha1调整为0,账号只保存 HA1,不保存 SIP 明文密码。 - 将 T 的 OpenSIPS
mi_fifo fifo_mode调整为0660。 - 将 T 的 OpenSIPS TLS 私钥文件权限收敛为
0600。
2. 脚本清单
脚本均位于 /opt/lisglosips-s21:
| 脚本 | 用途 |
|---|---|
s21-register-primary |
主 SIP 注册账号成功注册 |
s21-register-secondary |
备用 SIP 注册账号成功注册 |
s21-register-wrong-ha1 |
错误鉴权失败场景 |
s21-call-a-ip |
从 T 向 A 100.90.90.90:15060 发起 IP 认证模拟 INVITE |
s21-call-a-sip |
从 T 向 A 发起 SIP 注册账号模拟 INVITE |
s21-local-success |
T 本地 200 OK 呼叫场景 |
s21-local-busy |
T 本地 486 Busy Here 场景 |
s21-local-reject |
T 本地 603 Decline 场景 |
s21-local-timeout |
T 本地超时场景 |
s21-over-cps-a |
从 T 向 A 突发 INVITE,模拟超 CPS/突发压测输入 |
所有脚本都会输出 call_id=... 和 SIP 状态,便于后续在 A、B、HOMER、Redis Stream 中按 Call-ID 串联排查。
3. 验证结果
opensips -C -f /etc/opensips/opensips.cfg通过。opensips.service为active。s21-register-primary:先收到401 Unauthorizedchallenge,最终200 OK。s21-register-secondary:先收到401 Unauthorizedchallenge,最终200 OK。s21-register-wrong-ha1:最终保持401 Unauthorized。location表已有s21-reg-1001和s21-reg-1002注册位置。subscriber.password长度为0,subscriber.ha1长度为32,未保存 SIP 明文密码。- 本地场景:
s21-local-success返回SIP/2.0 200 OKs21-local-busy返回SIP/2.0 486 Busy Heres21-local-reject返回SIP/2.0 603 Declines21-local-timeout返回NO RESPONSE
- 到 A 的探针:
s21-call-a-ip返回SIP/2.0 503 Config Missings21-call-a-sip返回SIP/2.0 503 Config Missings21-over-cps-a 5 0.015 个 Call-ID 均返回SIP/2.0 503 Config Missing
说明:A 端当前处于 S20 热路径阶段,尚未发布真实客户/路由配置,因此到 A 的 INVITE 返回 503 Config Missing 是当前预期;S21 验收重点是 T 端脚本可重复执行并输出 Call-ID。
4. 回滚方式
回滚点:
/var/backups/lisglosips-s21/20260621T072316Z
回滚步骤:
sudo systemctl stop opensips
sudo cp -a /var/backups/lisglosips-s21/20260621T072316Z/opensips /etc/opensips
sudo mysql --protocol=socket -uroot opensips < /var/backups/lisglosips-s21/20260621T072316Z/opensips.sql
sudo rm -rf /opt/lisglosips-s21 /etc/lisglosips-s21
sudo opensips -C -f /etc/opensips/opensips.cfg
sudo systemctl start opensips
回滚会删除 S21 的测试账号、注册位置、IP 认证测试数据和脚本。若后续任务已依赖这些脚本,应先暂停相关测试。