摘要
- RFC 3011 允许请求方指定一个不同于报文到达网络的地址分配子网,从而把观察到的来源拓扑与请求消耗的地址池分开。
- 服务器原样回送选项 118,只能证明这一处理环节进入了交互;它不能证明请求者身份、地址池使用权、路由可达性、地址无冲突或最终服务结果。
DHCP 服务器在挑选地址之前,首先要知道该看哪个地址池。RFC 2131 给出了一个符合直觉的答案:若中继填写了 giaddr,服务器据此识别客户端所在子网;若该字段为零,就看报文从服务器的哪个本地接口进入。报文走过的路径,通常足以代表资源应当落在哪个网络。
远程接入设备暴露了这个推论的边界。设备可以通过内部专网访问 DHCP 服务器,却替连接在多个外部网络上的用户分配地址。内部网与外部网甚至可能不存在普通 IP 连通。请求只能从内部送出,地址却必须来自外部池。若服务器忠实地按到达路径选池,它做得越“正确”,分配结果反而越错误。
2000 年 11 月发布的 RFC 3011 把这项例外变成公共协议。IPv4 Subnet Selection Option 携带一个四字节子网地址:把该子网内任意 IPv4 地址与掩码相与,使主机位归零。今天的 IANA BOOTP/DHCP 参数登记表 仍将它列为长度为四的 DHCP 选项 118。
对明确启用该能力的服务器而言,这不是可有可无的提示。选项 118 优先于依据 giaddr 或接收接口进行的普通判断。服务器必须从指定子网,或同一网络段上的另一个子网中提供地址,不得跨出这个边界。
因此,选项 118 并没有否定报文来源。内部接口仍然是服务器实际观察到的入口,giaddr 仍然可以描述可达的返回点。它只是拒绝让这项观察自动拥有地址池选择权。来源是事实;目标子网是请求;是否批准则是服务器的本地决策。
RFC 3011 特别保留了第三层事实:回复路径。续租时,服务器可能把 DHCPACK 直接发往已分配地址,但外部地址未必能从服务器所在的内部网路由到达。因此,凡携带选项 118 的请求,都必须在 giaddr 中给出一个请求方能够接收 DHCP 报文的 IPv4 地址。用于取地址的子网与用于收回复的地址,从此可以明确不同。
规范还设计了一张很窄的处理回执。服务器若启用并支持选项 118,就必须在回复中原样复制它,即使客户端没有在参数请求列表里另行索取。依赖该机制的客户端必须丢弃不含该选项的 DHCPOFFER 或 DHCPACK。
这项“拒收”规则解决的是混合部署问题。旧服务器可能不认识 118,按普通逻辑从内部池给出地址;认识它但被管理员配置为忽略的服务器,也会如此。两种回复在 DHCP 语法上都可能完全有效,却没有执行请求方需要的跨子网选择。缺少回送选项,就说明这项特殊合同并未成立。
但是,字节被原样回送并不等于全部事实都获证明。它不认证远程接入设备,不赋予该设备消耗任何外部池的权利,也不证明分配地址存在路由、没有冲突或真正交给了用户。回执只覆盖“服务器按这一能力处理了交互”这一小段链路。
安全风险正来自这个新自由。当时的 DHCP 本身没有认证机制。一个原本只能耗尽本地池的恶意请求方,若能任意指定目标子网,就可能把攻击扩展到多个远端池。选项没有创造稀缺,但扩大了一个请求者可以触及的稀缺面。
因此,RFC 3011 要求该功能默认关闭,必须通过配置主动启用;服务器还应能按客户端标识、请求来源或允许的目标子网进行限制。协议标准化了表达方式,却没有把表达能力升级为资源授权。
RFC 2132 提供了代码—长度—值的选项语法。RFC 3011 让代码 118 具有共同含义。可解析性解决了实现互通,服务器配置才决定是否行动。把二者混在一起,就像认为一句话只要语法正确便必须执行。
后续标准把相似的拓扑声明向受运营方控制的中继侧移动。RFC 3046 定义 DHCP Relay Agent Information,让中继加入电路标识与远端标识。RFC 3527 又增加 Link Selection 子选项,使分配网络可以不同于服务器联系中继所用的地址。
RFC 3527 延续而不是消除了三分结构。giaddr 可继续承担返回中继的地址;Link Selection 决定分配网络;最终地址属于客户端一侧。若客户端的选项 118 与中继的 Link Selection 同时出现,后者优先。优先级来自运营信任边界,而不是两项声明看起来有多相似。
即便如此,“在回复中又看见该子选项”也不总能证明服务器理解了它,因为 Relay Agent Information 容器可能被机械复制。RFC 3527 要求通过管理手段确保中继只把请求发送给支持能力的服务器。RFC 3118 定义了 DHCP 认证,但标准存在不能证明某个网络已经部署并正确使用它。
RFC 7969 后来梳理了按拓扑定制 DHCP 的多种工具,包括 Subnet Selection、Link Selection 与 Virtual Subnet Selection。机制增多不是因为拓扑失去意义,而是因为单一到达位置再也无法同时代表物理链路、逻辑网络、VPN、地址池、中继返回点与用户归属。
因此,可信记录不能只留一个租约结果。它应分别保存入接口、观察到的源、giaddr、客户端标识、选项 118、命中的策略版本、所选地址池、报价地址、回送选项与回复目的地。租约建立之后,还需要路由、邻居、用户会话与应用结果的独立证据。
按照 Lu Heng 对运行代码与现实层次的要求,RFC 3011 的价值恰恰在于它很小。它没有接管整个 DHCP 流程,只在管理员允许时替换“从哪个子网取地址”这一输入。共同标准保留了本地决策,却要求本地决策不能再伪装成网络路径的自然结果。
报文确实来自内部网;地址确实应来自外部网;回复仍需回到可达点。RFC 3011 的历史贡献,是让这三件同时成立的事实各自留下凭据,而不让其中任何一件冒充另外两件。
Sources
- RFC 3011, The IPv4 Subnet Selection Option for DHCP
- RFC Editor information page for RFC 3011
- RFC 2131, Dynamic Host Configuration Protocol
- RFC 2132, DHCP Options and BOOTP Vendor Extensions
- RFC 3046, DHCP Relay Agent Information Option
- RFC 3118, Authentication for DHCP Messages
- RFC 3527, Link Selection sub-option for DHCPv4
- RFC 7969, Customizing DHCP Configuration on the Basis of Network Topology
- IANA BOOTP/DHCP Parameters
- Lu Heng, Running-Code Primacy
- Lu Heng, Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Lu Heng, On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
