Files
MemRelay/projects/e3194241-010f-4cad-a3a5-009d7810ff2c/Checkpoint 2026-09-10 06-32-55 UTC [06273ffe28].md
T

5.3 KiB
Raw Blame History

title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
title type permalink stable_id scope memory_type project_id usage_profile_id status revision request_id created_at updated_at tags
Checkpoint 2026-09-10 06:32:55 UTC [06273ffe28] checkpoint main/projects/e3194241-010f-4cad-a3a5-009d7810ff2c/checkpoint-2026-09-10-06-32-55-utc-06273ffe28 befefebd-7e62-45e1-8a80-5abfd1a07536 project checkpoint e3194241-010f-4cad-a3a5-009d7810ff2c 7aee455b-24cc-4008-bdaf-443721e6f939 active 1 net-oss-routing-20260910-gmcc-live-checkpoint-01 2026-09-10T06:32:55.810010+00:00 2026-09-10T06:32:55.810010+00:00
handoff
live-verified
complete

已完成目标

用户要求 gmcc.net 主域及所有子域(解析IP可能跨网段)走OSS,同时补齐188.15.0.0/24与188.25.0.0/24。用户明确不要处理代理软件,已自行启用OSS。本轮已完成代码、自动化验证、当前机器应用及实际DNS/选路核实;没有修改代理软件。

代码与Git

master提交4d5d97a858e3b6d52709884c0a6ac21767fbe4b9,提交说明feat: 支持GMCC域名动态走OSS并补齐内网网段,工作区干净、无remote、未推送。保留并完整实现原有用户网段改动。新增DomainRouting.ps1、DomainDns.cs、Run-DomainDns.ps1和三个tests;主Apply/Remove/Status/Menu集成域名,Guard通过EncodedCommand正确保存自定义OssAlias。所有ps1 UTF-8 BOM,PS5.1兼容。.gitignore忽略aidocs,不忽略tests;aidocs旧文件原已跟踪,本轮未改。

运行机制

本机127.0.0.54:53专用UDP/TCP DNS,NRPT的gmcc.net与.gmcc.net分别覆盖主域/后缀。经OSS绑定源地址与ifIndex查询内网DNS;递归CNAME后合成A;在交付答案前为DNS服务器和全部A地址设置/验证OSS /32及配置外网网卡上的防回落规则。路由失败、OSS离线、上游失败均不交付目标地址。AAAA/HTTPS/SVCB不返回,其他转发包含这些IPv6提示也拒绝;支持UDP截断/TCP及EDNS。动态地址保留至Remove,账本只认领本工具新建路由;失败新建不认领,旧owned网关/接口路由精确清理。安装停止旧任务后快照,失败恢复任务/NRPT/文件/防火墙及路由;SYSTEM部署目录只允许SYSTEM/管理员写。已学习地址每次查询统一一次防火墙更新,仍逐IP查路由与真实下一跳;防火墙失败从Addresses撤销新IP,保证备用DNS重试不绕过保护。

实机应用与状态(2026-09-10)

执行Set-DualNetworkRouting.ps1 -Mode Apply -SkipOssHardening,随后通过Install-OssDomainRouting更新优化版。保留当前OSS协议绑定,未应用可选Public配置。OSS Up if24 IP188.5.107.102/25 gateway188.5.107.1 DNS10.201.0.99。WLAN保持外网默认出口192.168.33.1;OSS默认路由已清除。4项固定持久路由188.1/16、188.5.127/24、188.15/24、188.25/24已应用。域名任务NET-OSS Domain DNS为Running(PID19568,启动UTC06:25:41),默认路由守卫NET-OSS Route Guard为Ready。域名服务部署到C:\ProgramData\NetOssRouting,3份部署源码hash与提交源码一致;config.json/ routes.json/ready.json为运行数据。域名任务是用户功能,需保留运行,并非临时测试服务。Remove可撤销;只临时停止可Stop-ScheduledTask -TaskName 'NET-OSS Domain DNS'(NRPT仍在时解析会失败,完整撤销用项目Remove)。

已验证

PowerShell5.1.19041.7663与7.6.5下DNS协议/上游/监听80项检查、生命周期140断言、固定路由CLI/菜单/转换/状态测试全部通过。测试使用loopback或mock,测试socket均Dispose,临时测试目录清理。git diff --check通过。 真实绑定OSS查询gmcc.net得到10.201.63.0、10.251.111.0、10.201.29.0、10.201.29.47;通过Windows系统DNS与专用listener均返回相同IP集合。Find-NetRoute逐项确认这4地址及10.201.0.99均通过OSS /32下一跳188.5.107.1。有效NRPT同时有gmcc.net/.gmcc.net ->127.0.0.54。已学习地址直接listener查询由约4.6s降至约1.2s(服务冷启动恢复路由时首查较慢)。www.gmcc.net在内网DNS返回NXDOMAIN,不能当作网站不通;未进行所有子域枚举或业务登录/HTTP应用验证。NS诊断曾超时并有客户端TCP取消,last-error.json可能保留此历史Receive连接关闭记录,之后成功查询已验证,不代表任务停止。

共享源码

MemRelay文件net-oss-routing/net-oss-routing-4d5d97a.zip,file_id=2d49fe8f-97f8-4a72-b6ab-f1e02d33f240,42038字节,SHA256=361b51b12577dfe5366515f2953c24378a1f688334e456013e773c1cfb895598。git archive选定10个源码/测试文件(含tests目录项共11),不含aidocs/凭证/运行状态。HTTP PUT与上传完成状态已确认,本地临时zip已删除。

下一步与接手注意

没有未完成实现;若用户有具体业务子域访问异常,读取该域实际系统DNS答案和Find-NetRoute,再查ProgramData状态;不要改代理配置。范围为Windows系统DNS、直接连接及IPv4;独立DoH/代理/hosts和应用旧缓存可能绕开该流程,安装后可重新打开对应应用。相同IP的其他域名流量也受IP路由影响。新外网接口需NetAlias纳入;不声称所有IPv6或绕过系统DNS的连接已覆盖。之前checkpoint的“待用户确认IP范围/OSS禁用/域名未实现/工作区dirty”已过时。现PRD与架构/边界fact为revision3,用户不管代理规则id=c9dcce4b-b7ab-4268-aa69-544bc64d17b3,设计decision id=2e52652b-ee82-46f8-ac53-a73d0ad59d6b。