漫游笔记本:稳定名称还是固定办公地址?
找到一台笔记本、允许它的流量并保持会话存活,是三个不同的漫游问题。先确定你真正面对的是哪一个。
你在家里打开管理控制台,按名称搜索那台笔记本,得到的却是一个它离开办公室后就失效的地址。直觉是把办公地址搬到 VPN 适配器上,让一切继续运转。但这个补救通常会弄坏别的东西,因为找到设备、允许它的流量和保持会话存活是三个不同的问题。在选择地址方案之前,先把它们分开。
区分三个需求
写下三者中真正失效的是哪一个。人或工具找不到服务;服务器因为源地址不在名单上而拒绝请求;或者接口变化时应用断开。在表格上它们看起来一样,却需要不同的修复。
大多数漫游投诉落在第一个篮子里,并在 DNS 中解决。给稳定身份命名成本低,覆盖第一种情况。保留地址成本高,而且只有在那条策略反正要重写时才对第二种有帮助。
让名称成为稳定的那一样
给笔记本一个能解析到调用方可达地址的名称。在这个例子里,办公地址是192.168.50.42,远程接入池分配10.90.0.42,而laptop17.corp.example跟随实际连接。没有任何要求说最后一个八位组必须相同,围绕这种相同来设计只会制造无谓的工作。记录应指向调用方真正能用的地址,而不是这台笔记本曾经拥有过的每个接口。
dig +short laptop17.corp.example解析器会缓存答案,所以变化对所有人并非立即生效。较短的 TTL 有帮助,而应用的重连逻辑帮助更大。
当源地址允许列表才是真正的约束
源地址允许列表看到的是受保护服务在任何转换之后收到的地址。那往往是网关或 NAT 地址,而不是笔记本自己的地址,所以改 DNS 记录从来修不好被拒绝的请求。要么按实际到达的地址更新策略,要么用经过认证的身份取代名单。
在服务器上抓一条被接受的请求,读取源字段,然后从远程路径重做一遍。如果两个地址不同,策略就需要两条记录或另一种机制。把两个地址连同策略条目一起记下来,让下一个人明白为什么有两条。在同一链路上重用已经活跃的地址是另一个带自身检测规则的冲突问题。
连续性真正要求什么
连接连续性是最难的要求,也是最常被误读的一项。TCP 连接由两端的地址和端口共同标识,所以无论 DNS 怎么说,新的本地地址就是另一条连接。重要的应用必须重连,这意味着需要会话层或会重试的客户端,而不是网络小把戏。在移动过程中观察一个会话,断开是立刻发生的,而不是逐渐的。
ss -tnp state established '( dport = :443 )'克隆 MAC 地址也解决不了这个问题。DHCP 租约身份可以使用显式的客户端标识符,而两个共享同一身份的接口仍然需要协调的路由。把移动性当作应用与分配的设计问题,在地址跟随网络的同时保持设备身份稳定。